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 su aplicación se ejecuta correctamente dentro de contenedores, el siguiente desafío es orquestar y gestionar esos contenedores a escala. Aquí es donde Kubernetes resulta útil.

Para comenzar, debe definir el estado deseado de su aplicación utilizando archivos YAML. Un archivo describirá un Deployment, que gestiona las actualizaciones y el escalado, mientras que otro definirá un Service, que expone su 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én 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.

Ejecutando Minikube

Note
Definición

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

Después de instalar Minikube y agregarlo a la variable PATH de su sistema, abra PowerShell (o la terminal de su preferencia) y ejecute:

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

Una vez confirmado que Minikube está instalado, inicie su clúster local de Kubernetes con:

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

Despliegue: Implementación de la Aplicación

Comience 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 actualizaciones o retrocesos 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 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, se pueden aplicar 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 fundamental 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, dos Pods deberían aparecer en la salida.

Para confirmar que el Servicio está en ejecución y 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 su aplicación, ejecute el siguiente comando en PowerShell o en su terminal:

Este comando solicita a Minikube que devuelva la URL donde su aplicación está expuesta. Minikube verifica el Servicio que creó (my-app-service) y proporciona un enlace que puede abrir en su 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 equilibra 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

Suggested prompts:

What should I do if my pods are not starting as expected?

How can I update my application without downtime using Kubernetes?

Can you explain the difference between a Deployment and a Service in Kubernetes?

bookConfiguración y Lanzamiento de Despliegue en Kubernetes

Desliza para mostrar el menú

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

Para comenzar, debe definir el estado deseado de su aplicación utilizando archivos YAML. Un archivo describirá un Deployment, que gestiona las actualizaciones y el escalado, mientras que otro definirá un Service, que expone su 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én 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.

Ejecutando Minikube

Note
Definición

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

Después de instalar Minikube y agregarlo a la variable PATH de su sistema, abra PowerShell (o la terminal de su preferencia) y ejecute:

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

Una vez confirmado que Minikube está instalado, inicie su clúster local de Kubernetes con:

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

Despliegue: Implementación de la Aplicación

Comience 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 actualizaciones o retrocesos 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 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, se pueden aplicar 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 fundamental 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, dos Pods deberían aparecer en la salida.

Para confirmar que el Servicio está en ejecución y 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 su aplicación, ejecute el siguiente comando en PowerShell o en su terminal:

Este comando solicita a Minikube que devuelva la URL donde su aplicación está expuesta. Minikube verifica el Servicio que creó (my-app-service) y proporciona un enlace que puede abrir en su 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 equilibra 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