📄 YAML
Quase tudo no Kubernetes é descrito em arquivos YAML: você escreve o que quer ("2 pods com esta imagem") e o cluster faz acontecer. Esta página mostra como ler, gerar, validar e aplicar esses arquivos.
Arquivos YAML são aplicados com o kubectl. O Painel Nuvion não tem um editor de YAML para os recursos do cluster.
🚀 Antes de começar
- Ter o acesso ao cluster configurado (veja Acesso ao Cluster).
📖 A estrutura de todo YAML do Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
name: exemplo
spec:
replicas: 1
| Campo | O que é |
|---|---|
apiVersion | A versão da API do recurso |
kind | O tipo (Pod, Deployment, Service...) |
metadata | Nome, rótulos (labels) e namespace |
spec | O que você deseja que exista |
📏 Regras do YAML
- Use 2 espaços para indentar. Nunca use Tab.
- Listas começam com
-(traço e espaço). - Textos com
:ou caracteres especiais ficam entre aspas. - Vários recursos no mesmo arquivo são separados por
---.
🚀 1. Ver o YAML de um recurso existente
kubectl get deployment NOME -o yaml
A saída traz campos extras, preenchidos pelo cluster (como status). Serve para consulta.
🚀 2. Gerar um modelo pronto
Em vez de escrever do zero, deixe o kubectl gerar e salve num arquivo:
kubectl create deployment meu-app --image=nginx:1.27 --replicas=2 --dry-run=client -o yaml > meu-app.yaml
O --dry-run=client não cria nada no cluster, apenas gera o texto.
🚀 3. Consultar a documentação de um campo
kubectl explain deployment.spec.replicas
kubectl explain deployment.spec.strategy
Esse comando explica cada campo, sem precisar sair do terminal.
🚀 4. Validar antes de aplicar
kubectl apply -f meu-app.yaml --dry-run=server
kubectl diff -f meu-app.yaml
O primeiro pede ao cluster para validar o arquivo sem criar nada. O segundo mostra o que vai mudar em relação ao que já existe.
🚀 5. Aplicar
kubectl apply -f meu-app.yaml
O apply cria o recurso se ele não existir e atualiza se existir. Use o mesmo
comando para criar e para alterar.
🚀 6. Alterar um recurso existente
Há duas formas:
| Forma | Comando | Quando usar |
|---|---|---|
| Editar o arquivo | Altere meu-app.yaml e rode kubectl apply -f meu-app.yaml | Recomendado: o arquivo continua sendo a fonte da verdade |
| Editar direto no cluster | kubectl edit deployment meu-app | Ajustes rápidos e de teste |
🚀 7. Excluir pelo arquivo
kubectl delete -f meu-app.yaml
✅ Como saber se deu certo
kubectl get deployment meu-app
O Deployment aparece com READY 2/2.
🔒 Boas práticas
- Guarde os arquivos YAML em um repositório (Git), sem senhas. Para dados sensíveis, use Secrets.
- Rode
kubectl diffantes de aplicar em produção. - Use um arquivo por aplicação, com nomes claros.
❗ Problemas comuns
| Mensagem | Causa | Solução |
|---|---|---|
error converting YAML to JSON | Erro de indentação ou Tab no arquivo | Revise os espaços (2 por nível) |
unknown field "..." | Campo escrito errado ou no lugar errado | Use kubectl explain para ver o nome correto |
no matches for kind | apiVersion ou kind incorretos | Confira com kubectl api-resources |
selector does not match template labels | matchLabels diferente de labels | Use o mesmo rótulo nos dois |
field is immutable | Campo que não pode ser alterado depois de criado | Exclua e crie de novo |
🧹 Limpeza
kubectl delete -f meu-app.yaml
rm meu-app.yaml
🧠 Dúvidas?
Fale com nosso time de suporte técnico da SaveinCloud!