💻 Terminal
A veces es necesario entrar dentro del pod para investigar: ver archivos,
probar una conexión, ejecutar un comando. kubectl exec abre una terminal dentro del
contenedor, como si se hubiera conectado por SSH.
La terminal del pod se abre con kubectl. El Panel Nuvion no tiene terminal para pods.
🚀 Antes de comenzar
- Tener el acceso al clúster configurado (vea Acceso al Clúster).
- Tener el Deployment
web-deployde la página Deploy.
🚀 1. Descubrir el nombre del pod
kubectl get pods -l app=web-deploy
🚀 2. Abrir una terminal en el pod
kubectl exec -it NOMBRE-DEL-POD -- sh
Estará dentro del contenedor. Pruebe algunos comandos:
ls /usr/share/nginx/html
cat /etc/nginx/nginx.conf
Escriba exit para salir.
Algunas imágenes tienen bash. Si existe, use -- bash en lugar de -- sh.
🚀 3. Ejecutar un único comando
Sin abrir terminal:
kubectl exec NOMBRE-DEL-POD -- ls /usr/share/nginx/html
🚀 4. Elegir el contenedor (pods con más de uno)
kubectl exec -it NOMBRE-DEL-POD -c NOMBRE-DEL-CONTENEDOR -- sh
🚀 5. Acceder a la aplicación sin exponerla al público
port-forward crea un túnel entre su computadora y el pod:
kubectl port-forward deployment/web-deploy 8080:80
Abra http://localhost:8080 en el navegador. Termine con Ctrl+C.
🚀 6. Copiar archivos desde y hacia el pod
kubectl cp NOMBRE-DEL-POD:/etc/nginx/nginx.conf ./nginx.conf
kubectl cp ./arquivo.txt NOMBRE-DEL-POD:/tmp/arquivo.txt
🚀 7. Depurar pods sin terminal (imágenes mínimas)
Algunas imágenes no tienen sh. Adjunte un contenedor de depuración temporal:
kubectl debug -it NOMBRE-DEL-POD --image=busybox --target=nginx
✅ Cómo saber si funcionó
El prompt de la terminal cambia al del contenedor, y los comandos muestran el contenido del pod.
Los cambios hechos dentro del pod se pierden cuando se recrea. Para cambios permanentes, modifique el Deployment o la imagen. En producción, use la terminal solo para consulta.
❗ Problemas comunes
| Síntoma | Causa | Solución |
|---|---|---|
executable file not found | La imagen no tiene sh ni bash | Use kubectl debug (paso 7) |
container not found | Nombre del contenedor incorrecto | Vea con kubectl describe pod |
unable to upgrade connection | Sin permiso o red bloqueada | Verifique su acceso (RBAC) |
address already in use en port-forward | El puerto local está ocupado | Cambie 8080 por otro, como 8081 |
Pod en Pending o CrashLoopBackOff | El contenedor no está funcionando | Use Logs y Events |
➡️ Próximo paso: YAML
🧠 ¿Dudas?
¡Hable con nuestro equipo de soporte técnico de SaveinCloud!