Saltar al contenido principal

📄 YAML

Casi todo en Kubernetes se describe en archivos YAML: usted escribe lo que quiere ("2 pods con esta imagen") y el clúster lo hace realidad. Esta página muestra cómo leer, generar, validar y aplicar esos archivos.

info

Los archivos YAML se aplican con kubectl. El Panel Nuvion no tiene un editor de YAML para los recursos del clúster.


🚀 Antes de comenzar​

📖 La estructura de todo YAML de Kubernetes​

apiVersion: apps/v1
kind: Deployment
metadata:
name: exemplo
spec:
replicas: 1
CampoQué es
apiVersionLa versión de la API del recurso
kindEl tipo (Pod, Deployment, Service...)
metadataNombre, etiquetas (labels) y namespace
specLo que usted desea que exista

📏 Reglas del YAML​

  • Use 2 espacios para indentar. Nunca use Tab.
  • Las listas comienzan con - (guion y espacio).
  • Los textos con : o caracteres especiales van entre comillas.
  • Varios recursos en el mismo archivo se separan con ---.

🚀 1. Ver el YAML de un recurso existente​

kubectl get deployment NOMBRE -o yaml

La salida trae campos adicionales, completados por el clúster (como status). Sirve para consulta.

🚀 2. Generar un modelo listo​

En lugar de escribir desde cero, deje que kubectl lo genere y guárdelo en un archivo:

kubectl create deployment meu-app --image=nginx:1.27 --replicas=2 --dry-run=client -o yaml > meu-app.yaml

--dry-run=client no crea nada en el clúster, solo genera el texto.

🚀 3. Consultar la documentación de un campo​

kubectl explain deployment.spec.replicas
kubectl explain deployment.spec.strategy

Ese comando explica cada campo, sin necesidad de salir de la terminal.

🚀 4. Validar antes de aplicar​

kubectl apply -f meu-app.yaml --dry-run=server
kubectl diff -f meu-app.yaml

El primero pide al clúster que valide el archivo sin crear nada. El segundo muestra qué va a cambiar respecto a lo que ya existe.

🚀 5. Aplicar​

kubectl apply -f meu-app.yaml

apply crea el recurso si no existe y lo actualiza si existe. Use el mismo comando para crear y para modificar.

🚀 6. Modificar un recurso existente​

Hay dos formas:

FormaComandoCuándo usar
Editar el archivoCambie meu-app.yaml y ejecute kubectl apply -f meu-app.yamlRecomendado: el archivo sigue siendo la fuente de la verdad
Editar directo en el clústerkubectl edit deployment meu-appAjustes rápidos y de prueba

🚀 7. Eliminar por el archivo​

kubectl delete -f meu-app.yaml

✅ Cómo saber si funcionó​

kubectl get deployment meu-app

El Deployment aparece con READY 2/2.

🔒 Buenas prácticas​

  • Guarde los archivos YAML en un repositorio (Git), sin contraseñas. Para datos sensibles, use Secrets.
  • Ejecute kubectl diff antes de aplicar en producción.
  • Use un archivo por aplicación, con nombres claros.

❗ Problemas comunes​

MensajeCausaSolución
error converting YAML to JSONError de indentación o Tab en el archivoRevise los espacios (2 por nivel)
unknown field "..."Campo mal escrito o en el lugar equivocadoUse kubectl explain para ver el nombre correcto
no matches for kindapiVersion o kind incorrectosVerifique con kubectl api-resources
selector does not match template labelsmatchLabels distinto de labelsUse la misma etiqueta en ambos
field is immutableCampo que no puede modificarse después de creadoElimine y cree de nuevo

🧹 Limpieza​

kubectl delete -f meu-app.yaml
rm meu-app.yaml

🧠 ¿Dudas?​

¡Hable con nuestro equipo de soporte técnico de SaveinCloud!