Iniciar sesión / Registrar Cuenta

Contenedores

¿Qué es una implementación de Kubernetes?

Jump to section

Una implementación de Kubernetes es un objeto de recursos en Kubernetes que ofrece actualizaciones declarativas de las aplicaciones. Le permite describir el ciclo de vida de una aplicación, como las imágenes que desea utilizar, el número de pods que debe haber y la forma en que deben actualizarse. 

Un objeto de Kubernetes es una manera de informarle al sistema cómo quiere que sea la carga de trabajo del clúster. Una vez que se crea el objeto, el clúster se encarga de garantizar que persista, lo cual mantiene el estado deseado de su clúster de Kubernetes

La actualización manual de las aplicaciones en contenedores puede ser un proceso extenso y tedioso. Para implementar la versión más reciente de un servicio, se debe iniciar la nueva versión del pod, detener la anterior, esperar y verificar que la nueva se inicie correctamente y, en algunos casos, volver a una versión pasada si hubo algún problema.

Cuando se siguen estos pasos de forma manual, existe la posibilidad de que haya errores humanos, y escribir los scripts adecuados implica un esfuerzo considerable, lo cual podría obstaculizar el proceso de lanzamiento. 

Sin embargo, el procedimiento se vuelve automático y repetible con las implementaciones de Kubernetes. El backend de Kubernetes las gestiona en su totalidad, y el proceso completo de actualización se realiza del lado del servidor sin la interacción del cliente.

Las implementaciones garantizan la ejecución y la disponibilidad permanentes del número deseado de pods. El proceso de actualización también se registra completo, y se crean variantes con las opciones de pausar, continuar y restaurar una versión anterior.

Con el objeto de implementación de Kubernetes podrá hacer lo siguiente:

  • Implementar un pod o un conjunto de réplicas
  • Actualizar los pods y los conjuntos de réplicas
  • Restaurar versiones anteriores de la implementación
  • Ajustar una implementación
  • Pausar o continuar una implementación

Estrategias de gestión de aplicaciones con la implementación de Kubernetes

La gestión de las aplicaciones con una implementación de Kubernetes abarca la manera en que se actualizan. Una ventaja importante es la capacidad para iniciar y detener un conjunto de pods de manera predecible.

Estrategia de actualización gradual

La estrategia de actualización gradual ofrece una sustitución controlada y por etapas de los pods de la aplicación, lo cual garantiza que siempre haya una cantidad mínima disponible.

De forma predeterminada, la implementación asegura que el porcentaje máximo de pods que no esté disponible en ningún momento sea solo del 25 %; además, pondrá a su disposición un máximo del 25 % de los pods especificados en el estado deseado. 

No eliminará los pods viejos hasta que haya suficientes nuevos para mantener el umbral de disponibilidad, ni creará otros hasta que se eliminen los suficientes.

El objeto de implementación le permite controlar el rango de pods disponibles y excedentes mediante los campos maxSurge y maxUnavailable.

Esta estrategia no genera downtime durante el proceso de actualización. Sin embargo, la aplicación debe estar diseñada de forma que admita las operaciones de destrucción y creación de pods.

Durante el proceso de actualización se ejecutan dos versiones del contenedor al mismo tiempo, lo cual podría causar problemas para los usuarios del servicio.

Estrategia de recreación

La estrategia de recreación elimina todos los pods actuales antes de que se creen los nuevos. Primero, Kubernetes deja en desuso a todos los contenedores de la versión actual y, una vez que ya no están los anteriores, inicia todos los nuevos de modo simultáneo. 

La estrategia de implementación mediante la recreación genera cierto downtime cuando se detienen todos los contenedores con versiones antiguas y no hay ninguno nuevo que esté listo para gestionar las solicitudes entrantes. 

Sin embargo, no habrá dos versiones de los contenedores en ejecución al mismo tiempo, lo cual puede ser más sencillo para los usuarios del servicio.

Patrón de implementación declarativo para Kubernetes

Las implementaciones se crean con la escritura de un manifiesto, el cual se aplica al clúster de Kubernetes con el comando kubectl apply o un patrón de implementación declarativo. Los archivos de configuración para Kubernetes pueden escribirse en lenguaje YAML o JSON.

Al momento de crear una implementación, describirá el estado deseado, y Kubernetes lo aplicará por medio de la estrategia gradual o de recreación. 

El uso de un patrón declarativo le permite aprovechar la implementación de Kubernetes para automatizar los procesos de actualización y restauración de un grupo de pods. Los de Kubernetes son patrones de diseño reutilizables para las aplicaciones y los servicios de contenedores.  

Para actualizar una implementación, puede realizar cambios en la especificación de la plantilla del pod, lo cual activará la actualización de forma automática.

El ciclo de vida de la implementación consta de los estados en curso, completado y fallido. Está en curso mientras se realizan las tareas de actualización o ajuste de los pods. 

El estado "completado" indica que todas las tareas se completaron correctamente y que el sistema se encuentra en el estado deseado, mientras que "fallido" significa que hay algún error que impide finalizarlas. 

Puede verificar o supervisar el estado con el comando kubectl rollout status. 

Si necesita ayuda para comenzar a utilizar Kubernetes, realice este curso de capacitación con actividades prácticas, donde adquirirá el conocimiento básico sobre cómo diseñar y gestionar los contenedores para implementarlos en un clúster de Red Hat® OpenShift® o Kubernetes. 

Kubernetes para la empresa

Red Hat OpenShift es una plataforma Kubernetes para la empresa. Ofrece a los desarrolladores entornos de autoservicio para poder diseñar sus aplicaciones, y brinda operaciones automatizadas integrales en cualquier infraestructura.

Red Hat OpenShift incluye todos los elementos adicionales de tecnología que convierten a Kubernetes en una herramienta sólida y viable para la empresa; por ejemplo: registros, conexiones en red, telemetría, seguridad, automatización y servicios.

Gracias a Red Hat OpenShift, los desarrolladores pueden crear nuevas aplicaciones en contenedores, alojarlas e implementarlas en la nube con la escalabilidad, el control y la organización necesarios para convertir una idea brillante en un nuevo negocio, en poco tiempo y sin complicaciones.

Las herramientas que necesita para comenzar con Kubernetes

Red Hat OpenShift product logo

Desarrolle, implemente y gestione sus contenedores en cualquier lugar y según sea necesario.

Red Hat Enterprise Linux logo

Conserve los sistemas ligeros y ejecute sus contenedores de Linux con un sistema operativo optimizado y con un footprint mínimo.

Kubernetes tiene mucho más que ofrecer