Ciclo de vida y estados de los Pods
Comprenda las distintas fases por las que pasa un Pod y cómo supervisar su estado.
Ciclo de vida y estados de los Pods es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 2 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.
Pods: un recorrido por su ciclo de vida
Los Pods no son estáticos; atraviesan distintas etapas, como si fuera un recorrido. Comprender este «ciclo de vida» es fundamental para gestionar sus aplicaciones eficazmente en Kubernetes.
Le ayuda a saber si su aplicación está sana, se está iniciando o ha encontrado un problema.

Las cinco etapas de vida de un Pod
Kubernetes clasifica los Pods en cinco fases principales. Estas fases ofrecen una visión general del estado actual de un Pod:
- Pending: Kubernetes ha aceptado el Pod, pero sus contenedores aún no se han iniciado.
- Running: al menos un contenedor del Pod está en ejecución o iniciándose.
- Succeeded: todos los contenedores del Pod han finalizado correctamente y no se reiniciarán.
- Failed: todos los contenedores han terminado y al menos uno ha fallado (por ejemplo, ha finalizado con un código distinto de cero).
- Unknown: no se ha podido determinar el estado del Pod, normalmente debido a problemas de comunicación.
Fase 1: Pods en estado Pending
Un Pod se encuentra en la fase Pending cuando el servidor de API de Kubernetes lo ha aceptado, pero uno o más de sus contenedores aún no se han creado o configurado.
Entre las causas habituales se incluyen:
- La imagen del contenedor todavía se está descargando.
- El clúster no tiene suficientes recursos (CPU o memoria) para programar el Pod.
- Los volúmenes todavía se están aprovisionando o montando.
Observación de un Pod en estado Pending
Veamos un ejemplo. Si intenta implementar un Pod con una imagen que no existe, podría quedarse bloqueado en «Pending» o mostrar un error al extraer la imagen.
Esta es una definición de Pod de ejemplo:
apiVersion: v1
kind: Pod
metadata:
name: pending-pod-demo
spec:
containers:
- name: my-container
image: non-existent-image:latest
ports:
- containerPort: 80Para comprobar su estado, usaría kubectl get pod. Podría ver algo parecido a esto:
$ kubectl get pod pending-pod-demo
NAME READY STATUS RESTARTS AGE
pending-pod-demo 0/1 ErrImagePull 0 5sErrImagePull indica que no se ha podido obtener la imagen, por lo que el Pod no ha alcanzado el estado Running.
Fase 2: Pods en ejecución
La fase Running significa que el Pod se ha vinculado a un nodo y que todos sus contenedores se han creado correctamente. Al menos un contenedor está en ejecución o se está iniciando o reiniciando.
Es importante tener en cuenta que un Pod en estado Running no significa automáticamente que la aplicación que contiene esté sana o funcione por completo. Solo significa que los contenedores están activos.
Poner un Pod en ejecución
Esta es una definición estándar de un Pod para un servidor web Nginx. Después de aplicarla, su Pod debería pasar rápidamente al estado 'Running'.
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80Una vez implementado, al usar kubectl get pod se mostraría lo siguiente:
$ kubectl get pod nginx-pod
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 10sEl valor 1/1 en READY confirma que hay un contenedor listo de un total de uno definido.
Fases 3 y 4: Succeeded y Failed
Estas fases representan los estados de finalización de un Pod:
- Succeeded: Un Pod entra en esta fase cuando todos sus contenedores han finalizado correctamente y no se reiniciarán. Es habitual en Pods que ejecutan tareas puntuales o trabajos por lotes.
- Failed: Un Pod se encuentra en la fase Failed cuando todos sus contenedores han finalizado y al menos uno de ellos ha terminado con un error (por ejemplo, con un código de estado distinto de cero).
Comprender estas fases le ayuda a diagnosticar la finalización de trabajos o los errores de las aplicaciones.
La misteriosa fase Unknown
La fase Unknown significa que no se pudo determinar el estado del Pod. Es una fase poco frecuente, pero crítica.
Normalmente ocurre cuando Kubelet (el agente) del nodo donde se ejecuta el Pod deja de comunicarse con el servidor de API de Kubernetes. Esto puede deberse a un problema de red, a un Kubelet bloqueado o a un problema con el propio nodo.
Estados de los contenedores dentro de los Pods
Aunque los Pods tienen fases generales, los contenedores individuales dentro de un Pod también tienen sus propios estados más detallados. Estos estados influyen directamente en la fase general del Pod:
- Waiting: El contenedor está esperando para iniciarse. Entre los motivos se incluyen la descarga de la imagen, la asignación de recursos o la espera a que finalicen los contenedores de inicialización.
- Running: El contenedor se está ejecutando activamente sin problemas.
- Terminated: El contenedor ha finalizado su ejecución. Puede haber terminado correctamente o con errores.
Comprobación del estado del Pod
Imagine que acaba de implementar un Pod nuevo. Ejecuta kubectl get pod my-app y ve el siguiente resultado:
NAME READY STATUS RESTARTS AGE
my-app 0/1 Pending 0 12s¿Cuál es la razón más probable por la que el Pod my-app se encuentra en estado Pending con 0/1 contenedores listos?
Resumen del ciclo de vida y próximos pasos
Ha aprendido que los Pods de Kubernetes avanzan por distintas fases: Pending, Running, Succeeded, Failed y Unknown. Estas fases proporcionan una visión general del estado operativo de un Pod.
También hemos abordado los estados de los contenedores individuales (Waiting, Running y Terminated), que contribuyen a la fase general del Pod. Supervisar estos estados con kubectl get pod y kubectl describe pod (que explorará más adelante) es fundamental para comprender el estado de su aplicación.
A continuación, profundizaremos en patrones avanzados de Pods y veremos cómo ejecutar varios contenedores ubicados conjuntamente dentro de un mismo Pod mediante el patrón sidecar.
Preguntas frecuentes
¿La lección «Ciclo de vida y estados de los Pods» es gratis?
Sí — el texto completo de «Ciclo de vida y estados de los Pods» 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 «Ciclo de vida y estados de los Pods»?
Comprenda las distintas fases por las que pasa un Pod y cómo supervisar su estado. 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 2 de 4.
¿Cuánto tiempo toma la lección «Ciclo de vida y estados de los Pods»?
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
- Pods: la unidad más pequeña
- Ciclo de vida y estados de los Pods
- Pods con varios contenedores (sidecars)
- Contenedores init y orden de inicio