📄 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.
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
- Tener el acceso al clúster configurado (vea Acceso al Clúster).
📖 La estructura de todo YAML de Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
name: exemplo
spec:
replicas: 1
| Campo | Qué es |
|---|---|
apiVersion | La versión de la API del recurso |
kind | El tipo (Pod, Deployment, Service...) |
metadata | Nombre, etiquetas (labels) y namespace |
spec | Lo 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:
| Forma | Comando | Cuándo usar |
|---|---|---|
| Editar el archivo | Cambie meu-app.yaml y ejecute kubectl apply -f meu-app.yaml | Recomendado: el archivo sigue siendo la fuente de la verdad |
| Editar directo en el clúster | kubectl edit deployment meu-app | Ajustes 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 diffantes de aplicar en producción. - Use un archivo por aplicación, con nombres claros.
❗ Problemas comunes
| Mensaje | Causa | Solución |
|---|---|---|
error converting YAML to JSON | Error de indentación o Tab en el archivo | Revise los espacios (2 por nivel) |
unknown field "..." | Campo mal escrito o en el lugar equivocado | Use kubectl explain para ver el nombre correcto |
no matches for kind | apiVersion o kind incorrectos | Verifique con kubectl api-resources |
selector does not match template labels | matchLabels distinto de labels | Use la misma etiqueta en ambos |
field is immutable | Campo que no puede modificarse después de creado | Elimine 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!