0Pricing
DevOps Bootcamp · Lección

Deployments para aplicaciones sin estado

Use Deployments para administrar aplicaciones sin estado, habilitando actualizaciones progresivas y reversiones.

Deployments para aplicaciones sin estado es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.

Conozca los Deployments de Kubernetes

¡Le damos la bienvenida a un concepto fundamental de Kubernetes: los Deployments! Son el recurso principal para administrar aplicaciones sin estado.

Piense en un Deployment como el plano de su aplicación. Indica a Kubernetes cuántas copias (réplicas) de su aplicación desea mantener en ejecución y cómo actualizarlas sin tiempo de inactividad.

Deployments para aplicaciones sin estado — ilustración 1

Más allá de los Pods y ReplicaSets

Ha aprendido sobre los Pods (la unidad más pequeña) y los ReplicaSets (que garantizan un número determinado de Pods).

Un Deployment se sitúa por encima de un ReplicaSet. Proporciona una abstracción de nivel superior para:

  • Crear y actualizar ReplicaSets.
  • Implementar nuevas versiones de su aplicación.
  • Volver a versiones anteriores si algo sale mal.

Esto hace que la administración de sus aplicaciones sea mucho más sencilla y segura.

Dentro del YAML de un Deployment

Al igual que otros recursos de Kubernetes, los Deployments se definen mediante YAML. Veamos la estructura básica:

  • apiVersion: Especifica la versión de la API de Kubernetes (por ejemplo, apps/v1).
  • kind: Siempre es Deployment para un recurso Deployment.
  • metadata: Contiene información como el name del Deployment y las labels opcionales.

Estos campos ayudan a Kubernetes a identificar y organizar sus Deployments.

Especificación de réplicas y plantilla

El núcleo de un Deployment es su sección spec. En ella se define:

  • replicas: El número deseado de Pods idénticos para su aplicación.
  • selector: Cómo encuentra el Deployment los Pods que administra (mediante etiquetas).
  • template: Es esencialmente una definición de Pod que describe los contenedores, volúmenes, etc., de cada Pod.

El template es lo que utiliza el Deployment para crear nuevos Pods.

Nuestro Deployment de Nginx

Este es un manifiesto sencillo de Deployment para un servidor web Nginx. Indica a Kubernetes que mantenga 3 Pods de Nginx en ejecución.

¡Intente comprender cada parte!

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

Creación de su Deployment

Una vez que tenga el archivo YAML de su Deployment (por ejemplo, nginx-deployment.yaml), puede crear el Deployment en su clúster de Kubernetes mediante el comando kubectl apply.

Kubernetes se asegurará entonces de que se creen y mantengan el número deseado de Pods.

kubectl apply -f nginx-deployment.yaml

Puede comprobar su estado con:

kubectl get deployments

Escalado vertical y reducción

¿Necesita más o menos instancias de su aplicación? ¡Los Deployments facilitan el escalado! Puede ajustar el campo replicas en su archivo YAML y volver a aplicarlo, o utilizar un comando directo:

kubectl scale deployment nginx-deployment --replicas=5

Este comando indicará de inmediato a su Deployment que cree 2 Pods de Nginx adicionales, hasta alcanzar un total de 5.

Actualizaciones sin tiempo de inactividad

Una de las mayores ventajas de los Deployments es su capacidad para realizar actualizaciones progresivas. Cuando actualiza la plantilla del Pod (por ejemplo, al cambiar la versión de la imagen), Kubernetes no apaga todos los Pods antiguos a la vez.

En su lugar, reemplaza gradualmente los Pods antiguos por otros nuevos, lo que garantiza que la aplicación siga disponible durante todo el proceso de actualización.

kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1

Revertir con facilidad

¿Ha cometido un error en una actualización? ¡No se preocupe! Los despliegues conservan un historial de sus revisiones, lo que le permite volver fácilmente a una versión anterior y estable.

Esto se denomina rollback y es una red de seguridad fundamental para los despliegues.

kubectl rollout undo deployment/nginx-deployment

También puede consultar el historial con kubectl rollout history deployment/nginx-deployment.

Hora del cuestionario sobre despliegues

Un desarrollador actualiza un Deployment de Nginx de la imagen nginx:1.14.2 a nginx:1.16.1. ¿Cuál es la principal ventaja de utilizar un Deployment de Kubernetes para esta actualización?

Despliegues: conclusiones clave

¡Excelente trabajo! Ha aprendido sobre los Deployments de Kubernetes, un recurso muy eficaz para administrar sus aplicaciones sin estado.

  • Los Deployments administran ReplicaSets, que a su vez administran Pods.
  • Definen el estado deseado, incluido el número de replicas.
  • Entre sus funciones clave se incluyen el escalado sencillo, las actualizaciones graduales sin tiempo de inactividad y los rollbacks simples a versiones anteriores.

A continuación, exploraremos los Services para exponer sus aplicaciones.

Preguntas frecuentes

¿La lección «Deployments para aplicaciones sin estado» es gratis?

Sí — el texto completo de «Deployments para aplicaciones sin estado» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.

¿Qué aprenderé en «Deployments para aplicaciones sin estado»?

Use Deployments para administrar aplicaciones sin estado, habilitando actualizaciones progresivas y reversiones. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar DevOps Bootcamp?

No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Deployments para aplicaciones sin estado»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?

Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Deployments para aplicaciones sin estado
  2. Services para el acceso de red
  3. ConfigMaps y Secrets
  4. Ingress y enrutamiento externo
← Volver a DevOps Bootcamp