Qué es un archivo YAML en Kubernetes


Explicamos qué es un archivo YAML en Kubernetes y como se crean

oscar Escrito por oscar 24 July 2025 67 0

🧾 ¿Qué es un archivo YAML?

YAML (YAML Ain’t Markup Language) es un formato de texto plano utilizado para definir estructuras de datos de forma legible para los humanos.

En Kubernetes, los archivos YAML se usan para describir recursos del clúster como Pods, Services, Deployments, ConfigMaps, Secrets, Volumes, etc.

🧠 ¿Para qué se usan en Kubernetes?

Se usan para declarar el estado deseado del sistema. Tú defines en un archivo YAML lo que quieres (por ejemplo, 3 réplicas de una app corriendo Nginx) y Kubernetes se encarga de crear y mantener ese estado.

📁 ¿Dónde se crean?

Puedes crear archivos YAML:

  • En tu computador local (por ejemplo: deployment.yaml, service.yaml)
  • Usando un editor de texto como VS Code, Notepad++, Vim, etc.
  • Directamente desde línea de comandos con kubectl create y exportarlos con kubectl get <recurso> -o yaml

Ejemplo:

Creamos un pod de nginx como se explica a detalle en crear primer pod.

kubectl run mi-nginx --image=nginx

Luego

kubectl get pod nginx -o yaml > pod-nginx.yaml

Esto creara un archivo pod-nginx.yaml con la estructura del yaml de kubernetes, este archivo lo explicaremos a continuación.

✅ Precondiciones para realizar el ejemplo

  • Realizar la instalación correcta de un entorno de trabajo para kubernetes, tengo una Guía completa de comandos Minikube
  • Asegúrate de que Minikube está corriendo Abre PowerShell o CMD y ejecuta: minikube start
  • Revisa los comandos de kubectl
  • Valida si estas en el contexto correcto del clustes de minikube, en Contexto en kubectl te explico como.

🧱 Estructura de un archivo YAML de Kubernetes

Un archivo YAML típico tiene esta estructura:

apiVersion: <versión del recurso>
kind: <tipo de recurso> # Pod, Deployment, Service, ConfigMap, etc.
metadata:
  name: <nombre-del-recurso>
  labels:
    <clave>: <valor>
spec:
  <especificación-del-recurso>

🔍 ¿Qué significa cada parte?

Campo Explicación
apiVersion Versión de la API de Kubernetes. v1 para objetos básicos.
kind Tipo de objeto. En este caso: Pod.
metadata.name Nombre único del pod.
labels Etiquetas para identificar y seleccionar este pod.
spec Especificaciones del pod.
containers Lista de contenedores dentro del pod (puede haber más de uno).
image Imagen del contenedor (se descargará desde Docker Hub).
containerPort Puerto que el contenedor expondrá internamente.

🧩 Buenas prácticas con YAML

  • Indentación: Muy importante. Usa siempre 2 espacios por nivel (nunca tabs).
  • Divide por responsabilidades: Puedes tener un YAML por recurso (ej. deployment.yaml, service.yaml) o todo junto con --- como separador.
  • Versiona tus YAMLs: Usa Git para llevar control de tus manifiestos.
  • Usa comentarios: Puedes escribir comentarios con #.

💡 Tip: Comando para aplicar YAML

kubectl apply -f archivo.yaml

Puedes aplicar un solo archivo o un directorio con varios:

kubectl apply -f ./manifests/

Comentario

Debe aceptar antes de enviar