EN ESTA PÁGINA
Instalar cRPD en Kubernetes
Gestione contenedores que ejecutan aplicaciones en entornos de producción. Asegúrese de que no haya tiempo de inactividad. Por ejemplo, si un contenedor se cae, otro contenedor debe iniciarse. Kubernetes le proporciona un marco para ejecutar sistemas distribuidos de forma resistente. Kubernetes proporciona una plataforma para la automatización del despliegue, el escalado y las operaciones de contenedores de aplicaciones en clústeres de contenedores de host.
Prerrequisito
Instale Kubernetes en un sistema Linux y para implementar Kubernetes en un clúster de Linux de dos nodos, consulte Instalación de Kubernetes.
Cuando implementa Kubernetes, obtiene un clúster. Un clúster de Kubernetes consiste en un conjunto de máquinas de trabajo, denominadas nodos, que ejecutan aplicaciones en contenedores. Cada clúster tiene al menos un nodo de trabajo. Los nodos de trabajo alojan los pods que son los componentes de la aplicación.
En esta sección se describen los pasos para crear la imagen de Docker cRPD en Kubernetes.
Instalar Kubernetes
Para instalar Kubernetes:
Clúster de Kubernetes
Kubernetes coordina un clúster de computadoras que están conectadas para funcionar como una sola unidad. Kubernetes automatiza el despliegue y la programación de cRPD en un clúster de una manera eficiente.
Un clúster de Kubernetes consta de dos tipos de recursos:
-
La Primaria coordina el clúster
-
Los nodos son los trabajadores que ejecutan las aplicaciones
La empresa principal es responsable de administrar el clúster. La principal coordina todas las actividades del clúster, como la programación de aplicaciones, el mantenimiento del estado deseado de las aplicaciones, el escalado de aplicaciones y el despliegue de nuevas actualizaciones.
Un nodo es una máquina virtual o un equipo físico que sirve como máquina de trabajo en un clúster de Kubernetes. Cada nodo tiene un Kubelet, que es un agente para administrar el nodo y comunicarse con el maestro de Kubernetes. El nodo también debe tener herramientas para manejar operaciones de contenedor, como Docker o rkt. Un clúster de Kubernetes que gestione el tráfico de producción debe tener un mínimo de tres nodos.
Cuando implementa cRPD en Kubernetes, el principal inicia los contenedores de aplicaciones. La principal programa los contenedores para que se ejecuten en los nodos del clúster. Los nodos se comunican con el principal mediante la API de Kubernetes, que expone el principal. Los usuarios finales también pueden usar la API de Kubernetes directamente para interactuar con el clúster.
Un Pod siempre se ejecuta en un nodo. Un nodo es una máquina de trabajo en Kubernetes y puede ser una máquina virtual o física, dependiendo del clúster. Cada nodo es administrado por el primario. Un nodo puede tener varios pods, y el Kubernetes primario maneja automáticamente la programación de los pods en los nodos del clúster.
Cada nodo de Kubernetes ejecuta al menos:
-
Kubelet, un proceso responsable de la comunicación entre el Kubernetes primario y el Nodo; gestiona los Pods y los contenedores que se ejecutan en una máquina.
-
Un tiempo de ejecución de contenedor (como Docker, rkt) responsable de extraer la imagen del contenedor de un registro, desempaquetar el contenedor y ejecutar la aplicación.
Para crear un clúster de minikube:
Descargar imagen de cRPD Docker
-
Antes de importar el software cRPD, asegúrese de que Docker esté instalado en el host Linux y de que Docker Engine se esté ejecutando.
-
Asegúrese de registrarse en el soporte de Juniper antes de descargar el software cRPD.
Para descargar la imagen de la ventana acoplable:
Crear un pod cRPD mediante la implementación
Un pod de Kubernetes es un grupo de uno o más contenedores, unidos entre sí con fines de administración y creación de redes. Una implementación de Kubernetes comprueba el estado de su Pod y reinicia el contenedor del Pod si termina. Las implementaciones son la forma recomendada de administrar la creación y el escalado de pods.
Cuando se describe un estado deseado en una implementación y el controlador de implementación cambia el estado real al estado deseado. Puede usar implementaciones para crear nuevos ReplicaSets. Como alternativa, puede quitar implementaciones existentes y adoptar sus recursos con implementaciones nuevas.
Crear un pod cRPD usando YAML
Un pod es la unidad de ejecución básica de una aplicación de Kubernetes, la unidad más pequeña y sencilla del modelo de objetos de Kubernetes que se crea o implementa. Un Pod representa una unidad de implementación: una única instancia de una aplicación en Kubernetes, que puede consistir en un solo contenedor o en un pequeño número de contenedores que están estrechamente acoplados y que comparten recursos. Docker es el tiempo de ejecución de contenedor más común utilizado en un pod de Kubernetes.
Puede crear directamente un Pod o usar indirectamente un Controller en Kubernetes. Un controlador puede crear y administrar varios pods. Los controladores usan una plantilla de pod que usted proporciona para crear los pods. Las plantillas de pod son especificaciones de pod que se incluyen en otros objetos, como controladores de replicación, trabajos y conjuntos de demonios.
Para crear el pod cRPD mediante el archivo YAML
Cada Pod está diseñado para ejecutar una sola instancia de una aplicación determinada. Si desea escalar la aplicación horizontalmente (por ejemplo, ejecutar varias instancias), debe usar varios Pods, uno para cada instancia. En Kubernetes, esto generalmente se conoce como replicación.
Ver también
Crear un pod de cRPD usando el recurso de trabajo
Un trabajo crea uno o más pods y continuará reintentando la ejecución de los pods hasta que un número especificado de ellos finalice correctamente. Cuando se alcanza un número especificado de finalizaciones exitosas, la tarea se completa. También puede usar un trabajo para ejecutar varios Pods en paralelo. Al eliminar un trabajo, se limpiarán los pods que creó. La suspensión de un trabajo eliminará sus Pods activos hasta que se reanude el trabajo. Para crear el pod cRPD con el archivo crpd_job.yaml:
Crear un pod cRPD usando DaemonSet
DaemonSet garantiza que todos (o algunos) nodos ejecuten una copia de un Pod. A medida que se agregan nodos al clúster, se agregan pods a ellos. A medida que se eliminan los nodos del clúster, esos pods se recogen elementos no utilizados. Si se elimina el DaemonSet, se eliminan los Pods creados.
Creación del pod cRPD mediante el archivo crpd_daemonset.yaml
Cada Pod está diseñado para ejecutar una sola instancia de una aplicación determinada. Si desea escalar la aplicación horizontalmente (por ejemplo, ejecutar varias instancias), debe usar varios Pods, uno para cada instancia. En Kubernetes, esto generalmente se conoce como replicación.
Ver también
Escalar cRPD
Puede crear varias instancias de cRPD en función de la demanda mediante el –replicas parámetro del kubectl run comando. La implementación es un objeto que puede poseer y administrar sus ReplicaSets.
Deberíamos tener un pod antes de escalar.
Para escalar verticalmente:
Para reducir:
-
Ejecute el siguiente comando para reducir la escala del servicio a dos réplicas:
root@kubernetes-master:~# kubectl scale deployments crpdref --replicas=2deployment.apps/crpdref scaled
-
Ejecute el siguiente comando para enumerar las implementaciones:
root@kubernetes-master:~# kubectl get deployments -
Ejecute el siguiente comando para enumerar el número de pods. Puedes ver que los dos Pods fueron terminados:
root@kubernetes-master:~# kubectl get pods -o wide
Roll Update de la implementación de cRPD
Puede actualizar las instancias de Pod con nuevas versiones. Las actualizaciones continuas permiten que la actualización de las implementaciones se realice sin tiempo de inactividad al actualizar gradualmente las instancias de Pods con otras nuevas. Los nuevos Pods se programan en nodos con recursos disponibles. Las actualizaciones de reversión promueven una aplicación de un entorno a otro con integración continua y entrega continua de aplicaciones sin tiempo de inactividad. En Kubernetes, las actualizaciones se versionan y cualquier actualización de implementación se puede revertir a la versión estable anterior.
Para actualizar la implementación de cRPD con una nueva imagen y conservar la configuración después de la actualización:
Despliegue de pods de cRPD con recursos asignados
Los pods proporcionan dos tipos de recursos compartidos, a saber, redes y almacenamiento para los contenedores. Cuando los contenedores de un Pod se comunican con entidades fuera del Pod, deben coordinar cómo usan los recursos de red compartidos (como los puertos). Dentro de un Pod, los contenedores se comunican mediante localhost el uso de una dirección IP y un puerto.
Los contenedores dentro del Pod ven el nombre de host del sistema igual que el configurado name para el Pod.
Cualquier contenedor en un Pod puede habilitar el modo privilegiado, usando la privileged bandera en la especificación del contenedor. Esto es útil para contenedores que necesitan capacidades administrativas del sistema operativo, como manipulación de pilas de red o acceso a dispositivos de hardware. Los procesos dentro de un contenedor privilegiado tienen casi los mismos privilegios que están disponibles para los procesos fuera de un contenedor.
Para ver la implementación de Pod con recursos:
Despliegue de pods cRPD mediante volumen montado
An emptyDir es un tipo de volumen admitido en Kubernetes. Se crea cuando se asigna un Pod a un nodo y existe mientras el Pod se ejecute en ese nodo. Como su nombre lo dice, el emptyDir volumen está inicialmente vacío. Todos los contenedores del Pod pueden leer y escribir los mismos archivos en el emptyDir volumen, aunque ese volumen se puede montar en la misma ruta o en rutas diferentes en cada contenedor. Cuando se elimina un Pod de un nodo por cualquier motivo, los datos del emptyDir se eliminan permanentemente.
Para ver la implementación de cRPD Pod montando la ruta de almacenamiento en Kubernetes: