Substitua <ns> pelo namespace e <pod> pelo nome do recurso. Comandos destrutivos estão
marcados.
| Comando |
O que faz |
kubectl config get-contexts |
Lista contextos disponíveis |
kubectl config current-context |
Mostra o cluster atual |
kubectl config use-context <ctx> |
Troca de cluster |
kubectl config set-context --current --namespace=<ns> |
Fixa o namespace padrão |
kubectl cluster-info |
Endereços do control plane |
kubectl version --short |
Versão do cliente e do servidor |
Confirme o contexto antes de qualquer comando destrutivo. kubectx e kubens facilitam.
| Comando |
O que faz |
kubectl get pods -n <ns> |
Lista Pods |
kubectl get pods -A |
Todos os namespaces |
kubectl get pods -o wide |
Acrescenta nó e IP |
kubectl get pod <pod> -n <ns> -o yaml |
Estado real completo |
kubectl get all -n <ns> |
Recursos comuns (não é literalmente tudo) |
kubectl describe pod <pod> -n <ns> |
Detalhes e eventos |
kubectl get events -n <ns> --sort-by=.lastTimestamp |
Eventos em ordem |
kubectl api-resources |
Todos os tipos disponíveis no cluster |
kubectl explain deployment.spec.template |
Documentação do campo |
| Comando |
O que faz |
kubectl get pods -l app=loja |
Por label |
kubectl get pods -l 'env in (prod,hom)' |
Label com conjunto |
kubectl get pods --field-selector=status.phase=Pending |
Por campo |
kubectl get pods --sort-by=.status.startTime |
Ordena |
kubectl get pods --show-labels |
Mostra todas as labels |
kubectl get pods -w |
Acompanha mudanças |
| Comando |
O que faz |
kubectl logs <pod> -n <ns> |
Log do container atual |
kubectl logs <pod> -n <ns> --previous |
Log da execução anterior (crash) |
kubectl logs <pod> -c <container> -n <ns> |
Container específico |
kubectl logs -l app=loja -n <ns> --tail=50 --prefix |
Todos os Pods do label |
kubectl logs <pod> -f --since=10m |
Segue, últimos 10 minutos |
kubectl exec -it <pod> -n <ns> -- sh |
Shell no container |
kubectl debug -it <pod> -n <ns> --image=busybox --target=<container> |
Container efêmero (imagem sem shell) |
kubectl cp <ns>/<pod>:/caminho ./local |
Copia arquivo |
| Comando |
O que faz |
kubectl top pods -n <ns> |
Uso de CPU e memória (exige metrics-server) |
kubectl top nodes |
Uso por nó |
kubectl get endpointslice -n <ns> |
Endpoints por Service |
kubectl describe node <no> |
Capacidade, alocado, condições |
kubectl get pods -A --field-selector=status.phase!=Running |
O que não está rodando |
kubectl get --raw='/readyz?verbose' |
Saúde do API server |
kubectl auth can-i --list -n <ns> |
O que você pode fazer |
kubectl auth whoami |
Identidade e grupos do token |
| Comando |
O que faz |
kubectl apply -f arquivo.yaml |
Aplica |
kubectl apply -k overlays/prod |
Aplica com Kustomize |
kubectl diff -f arquivo.yaml |
O que mudaria — rode antes do apply |
kubectl apply --dry-run=server -f arquivo.yaml |
Valida contra o servidor e as políticas |
kubectl edit deployment <nome> -n <ns> |
Edita no editor (evite em produção) |
kubectl patch deployment <nome> -n <ns> -p '{"spec":{"replicas":3}}' |
Altera campo |
kubectl delete -f arquivo.yaml |
Destrutivo |
kubectl label pod <pod> ambiente=teste --overwrite |
Altera label |
| Comando |
O que faz |
kubectl scale deployment <nome> -n <ns> --replicas=5 |
Escala |
kubectl rollout status deployment/<nome> -n <ns> |
Acompanha o rollout |
kubectl rollout history deployment/<nome> -n <ns> |
Revisões |
kubectl rollout undo deployment/<nome> -n <ns> |
Reverte uma revisão |
kubectl rollout undo deployment/<nome> --to-revision=3 |
Revisão específica |
kubectl rollout restart deployment/<nome> -n <ns> |
Recria os Pods |
kubectl rollout pause/resume deployment/<nome> |
Pausa e retoma |
| Comando |
O que faz |
kubectl port-forward pod/<pod> 8080:80 -n <ns> |
Túnel para o Pod |
kubectl port-forward svc/<svc> 8080:80 -n <ns> |
Túnel para o Service |
kubectl run diag --rm -it --image=nicolaka/netshoot -n <ns> -- bash |
Pod temporário de rede |
kubectl proxy |
Proxy local para a API |
| Comando |
O que faz |
kubectl cordon <no> |
Impede novos Pods |
kubectl drain <no> --ignore-daemonsets --delete-emptydir-data |
Esvazia o nó |
kubectl uncordon <no> |
Volta a aceitar Pods |
kubectl taint nodes <no> chave=valor:NoSchedule |
Aplica taint |
kubectl get deploy <nome> -n <ns> -o jsonpath='{.spec.template.spec.containers[0].image}{"\n"}'
kubectl get pods -n <ns> -o custom-columns='NOME:.metadata.name,NO:.spec.nodeName'
kubectl get pods -A -o json | jq -r '.items[]
| select(.status.containerStatuses[]?.restartCount > 5)
| "\(.metadata.namespace)/\(.metadata.name)"'
# requests declarados por container
kubectl get pods -n <ns> -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[*].resources.requests}{"\n"}{end}'
kubectl get all não traz tudo: faltam Ingress, Secret, ConfigMap, PVC, CRDs.
--previous só existe se o container já reiniciou.
- Eventos expiram (padrão de uma hora); problema antigo pode não ter evento.
delete pod de um Deployment recria o Pod: é o jeito de “reiniciar” um.
edit em produção cria drift em relação ao Git; prefira mudar o manifest.
apply sobre recurso criado com create pode gerar conflito de campos gerenciados.