Implementación rodante en Kubernetes

Implementación rodante en Kubernetes

En esta publicación, analizaremos las opciones de implementación para usar el sistema de orquestación de contenedores Kubernetes para implementar contenedores. Habremos aprendido a implementar en el clúster Kubernetes de varias maneras al final de este artículo. Si realmente quieres aprender más sobre este tema, sigue leyendo el artículo. El código se puede encontrar en las secciones a continuación.

¿Cuáles son las implementaciones en Kubernetes??

Las implementaciones de Kubernetes son solo replicasets envueltas en un envoltorio de Kubernetes. La implementación monitorea el número de vainas operativas, mientras que el replicAset gestiona el número de vainas en ejecución. Esto permite actualizaciones rodantes, controles de salud de POD y fácil reversión de actualizaciones.

La implementación solo contendrá una sola replicación durante las operaciones normales, asegurando que el número de vainas requeridas esté funcionando.

No debe administrar el replicAset que la implementación crea directamente mientras utiliza implementaciones. En su lugar, todas las operaciones realizadas en un replicAset deben realizarse en la implementación, administrando el proceso de actualización de replicación.

La capacidad de ejecutar actualizaciones rodantes es uno de los beneficios clave de la implementación. Las implementaciones le brindan mucha flexibilidad sobre las actualizaciones rodantes, lo que le permite actualizar la configuración de sus vainas gradualmente.

¿Cuáles son los casos de uso típicos para la implementación??

Las implementaciones se usan comúnmente en los siguientes escenarios:

  • Para implementar un replicAset, cree una implementación. En el fondo, el replicarset construye vainas. Verifique el progreso de la implementación para verificar si fue exitoso.
  • Actualice el PODTemplatesPEC de la implementación para reflejar la condición cambiada de las cápsulas. El despliegue se encarga de administrar la transferencia controlada de pods de los viejos a la nueva replicación y formar una nueva. Con cada nuevo replicAset, se actualiza la revisión de la implementación.
  • Aumentar la capacidad de la implementación para manejar un mayor tráfico.
  • Pausa el despliegue de un despliegue para realizar varios cambios en su podtemplatespec, luego reanudarlo para comenzar un nuevo despliegue.
  • El estado de implementación se puede usar para determinar si un despliegue ha tenido éxito o no.
  • Eliminar cualquier replicación anterior que ya no necesite.

Prerrequisitos:

Primero, debe instalar el clúster de Minikube y comenzar Ubuntu 20.04. Ahora abra un terminal para ejecutar los comandos. Para este propósito, presione el acceso directo "Ctrl+Alt+T" en el teclado.

También puede escribir el comando "Iniciar minikube" en la terminal. Después de esto, espere un tiempo hasta que comience. El siguiente es el resultado de esta instrucción:

$ minikube comienzo

Cómo crear una implementación?

En Kubernetes, las implementaciones se forman especificando sus requisitos en un archivo de definición de YAML. Usemos el ejemplo de una implementación llamada Deploy.YAML con los siguientes parámetros para ver cómo se configura una implementación de actualización continua:

$ nano despliegue.yaml


Se puede encontrar todo el archivo de configuración aquí. Para mencionar tres vainas, el siguiente código crea una réplica. En el ejemplo, el.metadatos.La columna de nombre indica que se ha creado una implementación llamada Nginx-Deployment. El despliegue produce tres vainas replicadas, según el.Especificaciones.Atributo de réplicas.

El despliegue.Especificaciones.El campo Selector especifica cómo determina qué vainas administrar. En este caso, usará la plantilla POD para seleccionar una etiqueta (aplicación: NGINX). Las reglas de selección más complicadas son posibles si la plantilla de POD se ajusta a los criterios.


Para crear la implementación, ejecute el comando dado después de configurar la implementación yaml:

$ kubectl create -f implement.yaml

Use el comando kubectl get implements para ver si se creó la implementación, como se muestra a continuación.

$ kubectl obtener implementaciones


Si hay implementaciones en curso, puede monitorear el estado de despliegue escribiendo este comando.


Después de unos segundos, ejecute Kubectl para obtener implementaciones nuevamente para ver los detalles.

$ kubectl obtener implementaciones


Para inspeccionar el replicarset (RS) creado por la implementación, use el comando kubectl get rs. Aquí está el resultado.

$ kubectl obtiene rs

Ejecute Kubectl Obtener pods -sabels para ver las etiquetas producidas automáticamente para cada vaina. La salida puede verse así:

$ Kubectl Get Go Vods-Show-etiquetas

Cómo actualizar una implementación?

Para actualizar su implementación, siga los pasos elaborados a continuación:

Cambiemos las vainas Nginx para emplear la siguiente versión de Nginx: en lugar de usar el Nginx: 1.14.2 imagen, usa el 1.dieciséis.1 imagen.


Ejecute el comando dado y vea el estado de despliegue.


Después de que se complete el despliegue, use Kubectl para obtener implementaciones para ver la implementación. El siguiente es la salida:

$ kubectl obtener implementaciones


Para recuperar detalles sobre su implementación, ejecute el siguiente comando:

$ kubectl describe implementaciones


Suponga que cometió un error al cambiar la implementación y escribió Nginx: 1.161 en lugar de Nginx: 1.dieciséis.1 En el nombre de la imagen:

El despliegue se estanca. Puede consultar el rendimiento del despliegue aquí:


Para detener el reloj de estado de implementación anterior, use CTRL-C.

¿Cuáles son los beneficios de las actualizaciones rodantes??

Las actualizaciones rodantes permiten la integración progresiva de los cambios, lo que le brinda más flexibilidad y control sobre la vida útil de su aplicación. Las siguientes son algunas de las ventajas de usar actualizaciones rodantes para clústeres de Kubernetes:

  • No hay tiempo de inactividad porque las instancias de POD de la aplicación siempre se están ejecutando, incluso durante una actualización.
  • Permite a los desarrolladores probar el impacto de los cambios en un entorno de producción sin interferir con la experiencia del usuario.
  • Es una técnica de implementación rentable porque no requiere recursos adicionales asignados al clúster.
  • Las actualizaciones complejas se pueden realizar de manera efectiva haciendo modificaciones simples a un archivo de implementación, eliminando la necesidad de la migración manual de los archivos de configuración que requieren mucho tiempo.

Conclusión:

Esta publicación cubrió los conceptos básicos de las implementaciones, cómo funcionan las actualizaciones rodantes y una variedad de opciones de configuración para actualizaciones de ajuste y programación de POD. Ahora debería poder establecer y alterar implementaciones con confianza para lograr el estado correcto para su aplicación.