Comprender los Deployments
Aprenda cómo los Deployments automatizan la administración de Pods y ReplicaSets para aplicaciones sin estado.
Comprender los Deployments es una lección gratuita de Kubernetes Basics 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 Kubernetes Basics, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kubernetes Basics incluye 4 lecciones en total.
¿Qué son los Deployments?
¡Bienvenido! En Kubernetes, gestionar aplicaciones implica gestionar sus Pods. Sin embargo, gestionar directamente Pods individuales o incluso ReplicaSets puede resultar complejo.
Un Deployment es un objeto de nivel superior que simplifica la gestión de aplicaciones sin estado. Piense en él como el administrador de su aplicación.
- Define el estado deseado de su aplicación.
- Garantiza que ese estado se mantenga, incluso si los Pods fallan.
- Automatiza las actualizaciones y las reversiones.
¿Por qué usar Deployments?
Los Deployments ofrecen ventajas importantes para ejecutar aplicaciones de forma fiable en Kubernetes:
- Gestión automatizada: Se encargan de crear, escalar y eliminar Pods.
- Autorreparación: Si un Pod falla, el Deployment lo reemplaza automáticamente para mantener el número deseado de réplicas.
- Actualizaciones declarativas: Usted describe el nuevo estado deseado y el Deployment determina cómo alcanzarlo (por ejemplo, implementando nuevas versiones gradualmente).
Son la forma recomendada de gestionar aplicaciones sin estado.
Función principal de un Deployment
En esencia, un Deployment gestiona ReplicaSets. La función de un ReplicaSet es garantizar que un número determinado de réplicas de un Pod se estén ejecutando en todo momento.
Por tanto, un Deployment utiliza ReplicaSets para lograr su objetivo: garantizar que su aplicación tenga el número correcto de Pods en buen estado ejecutándose según su definición.
Esta abstracción facilita enormemente la definición y el mantenimiento del ciclo de vida de su aplicación.
Anatomía del YAML de un Deployment
Como la mayoría de los objetos de Kubernetes, los Deployments se definen mediante YAML. Estas son las secciones clave que normalmente encontrará:
apiVersionykind: Identifican el tipo de objeto (Deployment).metadata: Nombre, etiquetas, etc. del propio Deployment.spec: La definición principal, que incluye:replicas: El número deseado de Pods.selector: Cómo encuentra el Deployment los Pods que gestiona.template: El modelo de los Pods que se crearán.
La plantilla del Pod
El campo template dentro de spec de un Deployment es sumamente importante. Es, en esencia, una definición completa de un Pod.
Todos los Pods creados por este Deployment utilizarán esta plantilla. Esto significa que usted define:
- Las imágenes de contenedor que se utilizarán.
- Los puertos que se expondrán.
- Las variables de entorno.
- Las solicitudes y los límites de recursos.
- ¡Y mucho más!
Los cambios en esta plantilla desencadenan actualizaciones de su aplicación.
Crear un Deployment sencillo
Definamos un Deployment para un servidor web Nginx sencillo. Queremos 3 réplicas.
Observe que selector.matchLabels debe coincidir con template.metadata.labels. Esto indica al Deployment qué Pods le pertenecen.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80Aplicar el Deployment
Para crear este Deployment en su clúster de Kubernetes (por ejemplo, Minikube), utilice el comando kubectl apply. Guarde el YAML anterior como nginx-deployment.yaml.
kubectl creará el objeto Deployment. A continuación, el controlador del Deployment detectará este objeto y actuará: creará un ReplicaSet, que a su vez creará los 3 Pods de Nginx.
kubectl apply -f nginx-deployment.yamlInspeccionar su Deployment
Una vez aplicado, puede comprobar el estado de su Deployment y de los Pods que gestiona:
kubectl get deployments: Muestra su Deployment.kubectl get replicasets: Muestra el ReplicaSet creado por el Deployment.kubectl get pods -l app=nginx: Muestra los Pods gestionados por el Deployment (mediante su selector de etiquetas).kubectl describe deployment my-nginx-deployment: Proporciona información detallada sobre el Deployment, incluidos los eventos.
kubectl get deployments
kubectl get pods -l app=nginx
kubectl describe deployment my-nginx-deploymentMantener el estado deseado
Una de las funciones más potentes de los Deployments es su capacidad para mantener el estado deseado. Si ha definido replicas: 3, el Deployment garantizará que siempre haya 3 Pods en ejecución.
Intente eliminar manualmente uno de los Pods de Nginx (kubectl delete pod <pod-name>). ¡Verá que el Deployment crea rápidamente uno nuevo para reemplazarlo! Esto es la autorreparación en acción.
Comprobación rápida
¿Para gestionar qué tipo de aplicación se utiliza principalmente un Deployment?
Resumen: comprender los Deployments
¡Buen trabajo! Ha dado sus primeros pasos con los Deployments de Kubernetes.
- Los Deployments son objetos de alto nivel para gestionar aplicaciones sin estado.
- Automatizan la creación, el escalado y la autorreparación de los Pods mediante la gestión de ReplicaSets.
- Un Deployment se define mediante un manifiesto YAML, en el que se especifica el número deseado de
replicasy unatemplatepara los Pods. kubectl applycrea el Deployment, ykubectl get/describeayuda a supervisarlo.
A continuación, profundizaremos en los ReplicaSets y en cómo garantizan el número deseado de Pods.
Preguntas frecuentes
¿La lección «Comprender los Deployments» es gratis?
Sí — el texto completo de «Comprender los Deployments» 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 Kubernetes Basics, actualiza a CoddyKit PRO. El curso de Kubernetes Basics incluye 4 lecciones en total.
¿Qué aprenderé en «Comprender los Deployments»?
Aprenda cómo los Deployments automatizan la administración de Pods y ReplicaSets para aplicaciones sin estado. Practicas Kubernetes Basics 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 Kubernetes Basics?
No se requiere experiencia previa. Kubernetes Basics 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 «Comprender los Deployments»?
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 Kubernetes Basics?
Sí. Cada lección de Kubernetes Basics 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
- Comprender los Deployments
- Escalado de aplicaciones con ReplicaSets
- Actualizaciones progresivas y reversiones
- Estrategias de despliegue: blue-green y canary