Docker & DevOps Fundamentals · Lección

Pods: las unidades más pequeñas

Aprenda sobre los Pods, los componentes fundamentales de Kubernetes, y cómo definirlos y administrarlos.

Lección 2 de 411 pasos

Pods: las unidades más pequeñas es una lección gratuita de Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Docker & DevOps Fundamentals incluye 4 lecciones en total.

¿Qué es un Pod de Kubernetes?

En Kubernetes, la unidad más pequeña y fundamental que puede desplegar es un Pod. Piense en un Pod como una «casa» que contiene uno o más contenedores.

Los Pods son una abstracción sobre los contenedores. Representan un proceso en ejecución en su clúster y encapsulan contenedores de aplicaciones, recursos de almacenamiento, una dirección IP de red única y opciones que determinan cómo deben ejecutarse los contenedores.

Pods: las unidades más pequeñas — ilustración 1

Pod frente a contenedor: la diferencia

Quizá se pregunte: «¿Por qué necesito un Pod si ya tengo contenedores?». Esta es la diferencia clave:

  • Un Container (como un contenedor de Docker) es un paquete que incluye una aplicación y sus dependencias.
  • Un Pod es la abstracción de Kubernetes que agrupa uno o más contenedores y les proporciona recursos compartidos y una única identidad de red.

Mientras que un contenedor es el ejecutable real, un Pod es la forma en que Kubernetes administra y orquesta esos ejecutables.

¿Por qué usar Pods?

Los Pods ofrecen varias ventajas fundamentales:

  • Espacio de nombres de red compartido: Todos los contenedores de un Pod comparten la misma dirección IP y los mismos puertos de red. Pueden comunicarse entre sí mediante localhost.
  • Almacenamiento compartido: Los Pods pueden compartir volúmenes de almacenamiento, lo que permite que los contenedores del mismo Pod accedan a datos comunes.
  • Colocación y programación conjuntas: Se puede garantizar que los contenedores que necesitan trabajar estrechamente (por ejemplo, una aplicación y un agente de registro) se ejecuten en el mismo nodo y se programen siempre juntos.

Anatomía de la definición de un Pod

Los Pods se definen mediante archivos de configuración YAML. Estos son los componentes principales que encontrará:

  • apiVersion: Especifica la versión de la API de Kubernetes (por ejemplo, v1).
  • kind: El tipo de objeto de Kubernetes, que es Pod.
  • metadata: Información como el name y las labels del Pod.
  • spec: El estado deseado del Pod, incluidos los containers que se ejecutarán, los volumes y otras configuraciones.

Definición de un Pod de un solo contenedor

La mayoría de los Pods contienen un solo contenedor. Esto es habitual en aplicaciones sencillas. Esta es una definición YAML básica para un Pod que ejecuta un servidor web Nginx:

apiVersion: v1
kind: Pod
metadata:
  name: my-nginx-pod
  labels:
    app: webserver
spec:
  containers:
  - name: nginx-container
    image: nginx:latest
    ports:
    - containerPort: 80

Despliegue de su primer Pod

Para crear un Pod a partir de un archivo YAML, utilice el comando kubectl apply. Esto indica a Kubernetes que cree o actualice los recursos según su definición.

Supongamos que guarda la definición anterior del Pod de Nginx como nginx-pod.yaml. Lo desplegaría de la siguiente manera:

  • kubectl apply -f nginx-pod.yaml

Kubernetes programará entonces este Pod para que se ejecute en uno de sus nodos de trabajo.

Inspección de Pods: Get y Describe

Una vez desplegados, querrá comprobar el estado de sus Pods. Estos son dos comandos esenciales de kubectl:

  • kubectl get pods: Muestra una lista de todos los Pods del espacio de nombres actual, con su nombre, estado y nodo.
  • kubectl describe pod <pod-name>: Proporciona información detallada sobre un Pod específico, incluidos los eventos, el estado de los contenedores y los recursos asignados.

Estos comandos son fundamentales para la supervisión y la resolución de problemas.

Pods de varios contenedores: sidecars

Aunque los Pods de un solo contenedor son habituales, algunos casos se benefician de los Pods de varios contenedores. Un ejemplo clásico es el patrón Sidecar.

Un contenedor sidecar se ejecuta junto al contenedor principal de la aplicación en el mismo Pod y realiza tareas auxiliares como:

  • Agentes de registro y supervisión
  • Sincronización de datos
  • Proxy del tráfico de red

Comparten la red y el almacenamiento del Pod, lo que hace que la comunicación sea eficiente.

Ejemplo: Pod de varios contenedores

Este es un ejemplo de un Pod de varios contenedores. Incluye un servidor web Nginx y un contenedor sidecar busybox que escribe registros en un volumen compartido.

apiVersion: v1
kind: Pod
metadata:
  name: multi-container-pod
spec:
  volumes:
  - name: shared-log-volume
    emptyDir: {}
  containers:
  - name: web-server
    image: nginx:latest
    ports:
    - containerPort: 80
    volumeMounts:
    - name: shared-log-volume
      mountPath: /var/log/nginx
  - name: log-writer
    image: busybox:latest
    command: ["/bin/sh", "-c", "while true; do echo 'Hello from sidecar!' >> /var/log/app.log; sleep 5; done"]
    volumeMounts:
    - name: shared-log-volume
      mountPath: /var/log/app

Compruebe sus conocimientos sobre Pods

¿Cuál de las siguientes afirmaciones sobre los Pods de Kubernetes es VERDADERA?

Resumen: los Pods, la unidad principal

Acaba de aprender sobre los Pods de Kubernetes, los componentes fundamentales de sus aplicaciones en un clúster.

  • Los Pods encapsulan uno o más contenedores y les proporcionan recursos compartidos.
  • Ofrecen una red y un almacenamiento compartidos, y garantizan la colocación conjunta de los contenedores relacionados.
  • Los Pods se definen mediante YAML y se despliegan con kubectl apply.
  • kubectl get pods y kubectl describe pod le ayudan a supervisarlos.

A continuación, exploraremos más comandos de kubectl para interactuar con su clúster.

Gratis para empezar

Aprende Docker & DevOps Fundamentals con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
12
Lecciones
48

Preguntas frecuentes

¿La lección «Pods: las unidades más pequeñas» es gratis?

Sí — el texto completo de «Pods: las unidades más pequeñas» 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 Docker & DevOps Fundamentals, actualiza a CoddyKit PRO. El curso de Docker & DevOps Fundamentals incluye 4 lecciones en total.

¿Qué aprenderé en «Pods: las unidades más pequeñas»?

Aprenda sobre los Pods, los componentes fundamentales de Kubernetes, y cómo definirlos y administrarlos. Practicas Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals?

No se requiere experiencia previa. Docker & DevOps Fundamentals 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 «Pods: las unidades más pequeñas»?

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 Docker & DevOps Fundamentals?

Sí. Cada lección de Docker & DevOps Fundamentals 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. Arquitectura de Kubernetes
  2. Pods: las unidades más pequeñas
  3. Comandos esenciales de kubectl
  4. Namespaces y labels para la organización
← Volver a Docker & DevOps Fundamentals