Jump to section

¿Qué es una implementación de Kubernetes?

Copiar URL

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

La gestión de las aplicaciones con una implementación de Kubernetes abarca la forma 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.

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 declarativa. 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 basados en contenedores.  

Puede actualizar una implementación aplicando 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, como las de actualizar o ajustar los pods. 

El estado completado indica que se completaron todas las tareas correctamente y que el sistema se encuentra en el estado deseado, mientras que el fallido significa que no se pueden finalizar las tareas debido a un error. 

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

Si desea comenzar a utilizar Kubernetes, aprenda a diseñar y gestionar los contenedores para implementarlos en un clúster de Red Hat® OpenShift® y de Kubernetes. En el curso de capacitación, adquirirá el conocimiento básico para gestionar los contenedores a través de actividades prácticas con ellos y Kubernetes. 

Red Hat OpenShift es una plataforma Kubernetes para la empresa. Ofrece entornos de autoservicio a los desarrolladores para que puedan 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.

Artículos relacionados

ARTÍCULO

Diferencias entre los contenedores y las máquinas virtuales

Las máquinas virtuales (VM) y los contenedores de Linux son entornos informáticos empaquetados que combinan varios elementos de TI y los aíslan del resto del sistema.

ARTÍCULO

¿Qué es la organización de los contenedores?

La organización en contenedores automatiza la implementación, la gestión, la escalabilidad y la conexión en red de los contenedores.

ARTÍCULO

¿Qué es un contenedor de Linux?

Un contenedor de Linux es un conjunto de procesos separados del resto del sistema, los cuales pueden ejecutarse desde una imagen diferente que proporciona todos los archivos necesarios para que funcionen.

Más información sobre los contenedores

Productos

Plataforma de aplicaciones empresariales que ofrece servicios probados para lanzar aplicaciones al mercado en la infraestructura que usted escoja.

Contenido adicional

Capacitación

Curso de capacitación gratuito

Running Containers with Red Hat Technical Overview

Curso de capacitación gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Curso de capacitación gratuito

Developing Cloud-Native Applications with Microservices Architectures