Pular para o conteúdo principal

📄 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.

informação

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​

📖 A estrutura de todo YAML do Kubernetes​

apiVersion: apps/v1
kind: Deployment
metadata:
name: exemplo
spec:
replicas: 1
CampoO que é
apiVersionA versão da API do recurso
kindO tipo (Pod, Deployment, Service...)
metadataNome, rótulos (labels) e namespace
specO 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:

FormaComandoQuando usar
Editar o arquivoAltere meu-app.yaml e rode kubectl apply -f meu-app.yamlRecomendado: o arquivo continua sendo a fonte da verdade
Editar direto no clusterkubectl edit deployment meu-appAjustes 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 diff antes de aplicar em produção.
  • Use um arquivo por aplicação, com nomes claros.

❗ Problemas comuns​

MensagemCausaSolução
error converting YAML to JSONErro de indentação ou Tab no arquivoRevise os espaços (2 por nível)
unknown field "..."Campo escrito errado ou no lugar erradoUse kubectl explain para ver o nome correto
no matches for kindapiVersion ou kind incorretosConfira com kubectl api-resources
selector does not match template labelsmatchLabels diferente de labelsUse o mesmo rótulo nos dois
field is immutableCampo que não pode ser alterado depois de criadoExclua 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!