Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Configuración y Lanzamiento de Despliegue en Kubernetes | CI/CD y Automatización
Introducción a DevOps

bookConfiguración y Lanzamiento de Despliegue en Kubernetes

Ahora que tu aplicación funciona correctamente dentro de contenedores, el siguiente desafío es orquestar y gestionar esos contenedores a gran escala. Aquí es donde Kubernetes resulta útil.

Para comenzar, se debe definir el estado deseado de la aplicación utilizando archivos YAML. Un archivo describirá un Deployment, que gestiona actualizaciones y escalado, mientras que otro definirá un Service, que expone la aplicación a la red y la hace accesible para los usuarios.

Note
Estudiar más

YAML (YAML Ain't Markup Language) es un formato legible por humanos para archivos de configuración. Se utiliza frecuentemente para describir infraestructura, automatizar procesos y almacenar configuraciones de aplicaciones.

Un Deployment garantiza que siempre se esté ejecutando la cantidad deseada de instancias de la aplicación (Pods) y facilita la implementación de actualizaciones o la reversión a versiones anteriores. Un Service expone estos contenedores a la red y distribuye el tráfico entrante entre ellos.

Ejecutar Minikube

Note
Definición

Minikube es una herramienta ligera que permite ejecutar un clúster de Kubernetes local en tu computadora. Crea un entorno virtual donde puedes probar y explorar Kubernetes sin necesidad de servicios en la nube.

Después de instalar Minikube y agregarlo a la variable PATH de tu sistema, abre PowerShell (o la terminal de tu preferencia) y ejecuta:

Este comando verifica si Minikube está disponible y muestra la versión instalada.

Una vez que hayas confirmado que Minikube está instalado, inicia tu clúster local de Kubernetes con:

Este comando crea y lanza un clúster local de Kubernetes en tu máquina. Descarga los componentes necesarios e inicia el plano de control y los nodos de trabajo.

Despliegue: Implementación de la Aplicación

Comienza creando el archivo deployment.yaml. Un Deployment en Kubernetes garantiza que siempre se esté ejecutando una cantidad específica de Pods (instancias de la aplicación) y permite actualizarlos o revertirlos sin tiempo de inactividad.

deployment.yaml

deployment.yaml

copy

En este manifiesto, el parámetro replicas especifica cuántas instancias de Pod deben ejecutarse al mismo tiempo — en este caso, dos. Para saber qué Pods gestionar, el Deployment utiliza una combinación de selector y etiquetas: el selector actúa como un filtro para encontrar Pods con una etiqueta específica, y la plantilla de Pod define esa etiqueta. Cuando las etiquetas coinciden, el Deployment considera esos Pods como propios y se encarga de mantener su cantidad, actualizarlos y reiniciarlos si es necesario.

Todos los Pods se ejecutan en el puerto 3000. Todos pueden usar el mismo puerto porque cada Pod opera en su propio espacio de red aislado, por lo que no hay conflicto entre ellos.

Servicio: Acceso de red a la aplicación

Una vez que el Deployment está configurado, se necesita un Service para proporcionar acceso de red y balanceo de carga entre los Pods. Cree el archivo service.yaml:

service.yaml

service.yaml

copy

Este manifiesto define un Service llamado my-app-service que dirige el tráfico a los Pods con la etiqueta app: my-app. Escucha en el puerto 80 externamente y reenvía las solicitudes al puerto 3000 dentro de los Pods.

El tipo LoadBalancer es importante porque expone la aplicación externamente y distribuye el tráfico entre los Pods.

Despliegue de la aplicación en Kubernetes

Una vez que los archivos YAML estén listos, pueden aplicarse al clúster:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

El comando kubectl apply -f crea o actualiza recursos en el clúster según el contenido del archivo YAML.

Verificación del estado

Después de aplicar los archivos de configuración, es importante confirmar que todo se haya desplegado según lo esperado. Dado que los Pods y Servicios tardan un momento en iniciarse, comience listando los Pods en ejecución:

Si el archivo deployment.yaml especifica replicas: 2, deben aparecer dos Pods en la salida.

Para confirmar que el Servicio está en ejecución y es accesible:

Esto mostrará la dirección IP del Servicio y los puertos a través de los cuales se puede acceder a la aplicación.

Obtener la URL del Servicio

Para acceder a tu aplicación, ejecuta el siguiente comando en PowerShell o en tu terminal:

Este comando solicita a Minikube que devuelva la URL donde tu aplicación está expuesta. Minikube verifica el Servicio que creaste (my-app-service) y proporciona un enlace que puedes abrir en tu navegador.

Escalado de la Aplicación

Kubernetes facilita el ajuste de la cantidad de Pods en ejecución sin detener la aplicación.

Por ejemplo, para escalar de 2 a 4 réplicas:

Ejecutar kubectl get pods nuevamente ahora mostrará cuatro Pods activos.

Kubernetes proporciona herramientas potentes para gestionar aplicaciones contenerizadas a cualquier escala. Un Deployment garantiza que el número correcto de Pods esté en ejecución y puede actualizarse o revertirse fácilmente. Un Service expone la aplicación a la red y distribuye el tráfico entrante. Los archivos de configuración YAML hacen que la configuración sea clara y legible, mientras que los comandos kubectl permiten aplicar y gestionar estas configuraciones en tiempo real.

1. ¿Cuál es el propósito principal de un Deployment en Kubernetes?

2. ¿Por qué varios Pods pueden ejecutarse en el mismo número de puerto (por ejemplo, 3000) sin conflictos?

question mark

¿Cuál es el propósito principal de un Deployment en Kubernetes?

Select the correct answer

question mark

¿Por qué varios Pods pueden ejecutarse en el mismo número de puerto (por ejemplo, 3000) sin conflictos?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 9

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 3.7

bookConfiguración y Lanzamiento de Despliegue en Kubernetes

Desliza para mostrar el menú

Ahora que tu aplicación funciona correctamente dentro de contenedores, el siguiente desafío es orquestar y gestionar esos contenedores a gran escala. Aquí es donde Kubernetes resulta útil.

Para comenzar, se debe definir el estado deseado de la aplicación utilizando archivos YAML. Un archivo describirá un Deployment, que gestiona actualizaciones y escalado, mientras que otro definirá un Service, que expone la aplicación a la red y la hace accesible para los usuarios.

Note
Estudiar más

YAML (YAML Ain't Markup Language) es un formato legible por humanos para archivos de configuración. Se utiliza frecuentemente para describir infraestructura, automatizar procesos y almacenar configuraciones de aplicaciones.

Un Deployment garantiza que siempre se esté ejecutando la cantidad deseada de instancias de la aplicación (Pods) y facilita la implementación de actualizaciones o la reversión a versiones anteriores. Un Service expone estos contenedores a la red y distribuye el tráfico entrante entre ellos.

Ejecutar Minikube

Note
Definición

Minikube es una herramienta ligera que permite ejecutar un clúster de Kubernetes local en tu computadora. Crea un entorno virtual donde puedes probar y explorar Kubernetes sin necesidad de servicios en la nube.

Después de instalar Minikube y agregarlo a la variable PATH de tu sistema, abre PowerShell (o la terminal de tu preferencia) y ejecuta:

Este comando verifica si Minikube está disponible y muestra la versión instalada.

Una vez que hayas confirmado que Minikube está instalado, inicia tu clúster local de Kubernetes con:

Este comando crea y lanza un clúster local de Kubernetes en tu máquina. Descarga los componentes necesarios e inicia el plano de control y los nodos de trabajo.

Despliegue: Implementación de la Aplicación

Comienza creando el archivo deployment.yaml. Un Deployment en Kubernetes garantiza que siempre se esté ejecutando una cantidad específica de Pods (instancias de la aplicación) y permite actualizarlos o revertirlos sin tiempo de inactividad.

deployment.yaml

deployment.yaml

copy

En este manifiesto, el parámetro replicas especifica cuántas instancias de Pod deben ejecutarse al mismo tiempo — en este caso, dos. Para saber qué Pods gestionar, el Deployment utiliza una combinación de selector y etiquetas: el selector actúa como un filtro para encontrar Pods con una etiqueta específica, y la plantilla de Pod define esa etiqueta. Cuando las etiquetas coinciden, el Deployment considera esos Pods como propios y se encarga de mantener su cantidad, actualizarlos y reiniciarlos si es necesario.

Todos los Pods se ejecutan en el puerto 3000. Todos pueden usar el mismo puerto porque cada Pod opera en su propio espacio de red aislado, por lo que no hay conflicto entre ellos.

Servicio: Acceso de red a la aplicación

Una vez que el Deployment está configurado, se necesita un Service para proporcionar acceso de red y balanceo de carga entre los Pods. Cree el archivo service.yaml:

service.yaml

service.yaml

copy

Este manifiesto define un Service llamado my-app-service que dirige el tráfico a los Pods con la etiqueta app: my-app. Escucha en el puerto 80 externamente y reenvía las solicitudes al puerto 3000 dentro de los Pods.

El tipo LoadBalancer es importante porque expone la aplicación externamente y distribuye el tráfico entre los Pods.

Despliegue de la aplicación en Kubernetes

Una vez que los archivos YAML estén listos, pueden aplicarse al clúster:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

El comando kubectl apply -f crea o actualiza recursos en el clúster según el contenido del archivo YAML.

Verificación del estado

Después de aplicar los archivos de configuración, es importante confirmar que todo se haya desplegado según lo esperado. Dado que los Pods y Servicios tardan un momento en iniciarse, comience listando los Pods en ejecución:

Si el archivo deployment.yaml especifica replicas: 2, deben aparecer dos Pods en la salida.

Para confirmar que el Servicio está en ejecución y es accesible:

Esto mostrará la dirección IP del Servicio y los puertos a través de los cuales se puede acceder a la aplicación.

Obtener la URL del Servicio

Para acceder a tu aplicación, ejecuta el siguiente comando en PowerShell o en tu terminal:

Este comando solicita a Minikube que devuelva la URL donde tu aplicación está expuesta. Minikube verifica el Servicio que creaste (my-app-service) y proporciona un enlace que puedes abrir en tu navegador.

Escalado de la Aplicación

Kubernetes facilita el ajuste de la cantidad de Pods en ejecución sin detener la aplicación.

Por ejemplo, para escalar de 2 a 4 réplicas:

Ejecutar kubectl get pods nuevamente ahora mostrará cuatro Pods activos.

Kubernetes proporciona herramientas potentes para gestionar aplicaciones contenerizadas a cualquier escala. Un Deployment garantiza que el número correcto de Pods esté en ejecución y puede actualizarse o revertirse fácilmente. Un Service expone la aplicación a la red y distribuye el tráfico entrante. Los archivos de configuración YAML hacen que la configuración sea clara y legible, mientras que los comandos kubectl permiten aplicar y gestionar estas configuraciones en tiempo real.

1. ¿Cuál es el propósito principal de un Deployment en Kubernetes?

2. ¿Por qué varios Pods pueden ejecutarse en el mismo número de puerto (por ejemplo, 3000) sin conflictos?

question mark

¿Cuál es el propósito principal de un Deployment en Kubernetes?

Select the correct answer

question mark

¿Por qué varios Pods pueden ejecutarse en el mismo número de puerto (por ejemplo, 3000) sin conflictos?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 9
some-alt