💻 Terminal
Às vezes é preciso entrar dentro do pod para investigar: ver arquivos,
testar uma conexão, rodar um comando. O kubectl exec abre um terminal dentro do
container, como se você tivesse conectado por SSH.
O terminal do pod é aberto com o kubectl. O Painel Nuvion não tem terminal para pods.
🚀 Antes de começar
- Ter o acesso ao cluster configurado (veja Acesso ao Cluster).
- Ter o Deployment
web-deployda página Deploy.
🚀 1. Descobrir o nome do pod
kubectl get pods -l app=web-deploy
🚀 2. Abrir um terminal no pod
kubectl exec -it NOME-DO-POD -- sh
Você estará dentro do container. Teste alguns comandos:
ls /usr/share/nginx/html
cat /etc/nginx/nginx.conf
Digite exit para sair.
Algumas imagens têm o bash. Se existir, use -- bash no lugar de -- sh.
🚀 3. Rodar um único comando
Sem abrir terminal:
kubectl exec NOME-DO-POD -- ls /usr/share/nginx/html
🚀 4. Escolher o container (pods com mais de um)
kubectl exec -it NOME-DO-POD -c NOME-DO-CONTAINER -- sh
🚀 5. Acessar a aplicação sem expor ao público
O port-forward cria um túnel entre o seu computador e o pod:
kubectl port-forward deployment/web-deploy 8080:80
Abra http://localhost:8080 no navegador. Encerre com Ctrl+C.
🚀 6. Copiar arquivos de e para o pod
kubectl cp NOME-DO-POD:/etc/nginx/nginx.conf ./nginx.conf
kubectl cp ./arquivo.txt NOME-DO-POD:/tmp/arquivo.txt
🚀 7. Depurar pods sem terminal (imagens mínimas)
Algumas imagens não têm sh. Anexe um container de depuração temporário:
kubectl debug -it NOME-DO-POD --image=busybox --target=nginx
✅ Como saber se deu certo
O prompt do terminal muda para o do container, e os comandos mostram o conteúdo do pod.
Alterações feitas dentro do pod se perdem quando ele é recriado. Para mudanças permanentes, altere o Deployment ou a imagem. Em produção, use o terminal só para consulta.
❗ Problemas comuns
| Sintoma | Causa | Solução |
|---|---|---|
executable file not found | A imagem não tem sh ou bash | Use kubectl debug (passo 7) |
container not found | Nome do container errado | Veja com kubectl describe pod |
unable to upgrade connection | Sem permissão ou rede bloqueada | Confira seu acesso (RBAC) |
address already in use no port-forward | A porta local está ocupada | Troque 8080 por outra, como 8081 |
Pod em Pending ou CrashLoopBackOff | O container não está rodando | Use Logs e Events |
➡️ Próximo passo: YAML
🧠 Dúvidas?
Fale com nosso time de suporte técnico da SaveinCloud!