Pular para o conteúdo principal

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

informação

O terminal do pod é aberto com o kubectl. O Painel Nuvion não tem terminal para pods.


🚀 Antes de começar​

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

dica

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.

aviso

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​

SintomaCausaSolução
executable file not foundA imagem não tem sh ou bashUse kubectl debug (passo 7)
container not foundNome do container erradoVeja com kubectl describe pod
unable to upgrade connectionSem permissão ou rede bloqueadaConfira seu acesso (RBAC)
address already in use no port-forwardA porta local está ocupadaTroque 8080 por outra, como 8081
Pod em Pending ou CrashLoopBackOffO container não está rodandoUse Logs e Events

➡️ Próximo passo: YAML

🧠 Dúvidas?​

Fale com nosso time de suporte técnico da SaveinCloud!