Saltar al contenido principal

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

info

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-deploy de 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.

tip

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.

aviso

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íntomaCausaSolución
executable file not foundLa imagen no tiene sh ni bashUse kubectl debug (paso 7)
container not foundNombre del contenedor incorrectoVea con kubectl describe pod
unable to upgrade connectionSin permiso o red bloqueadaVerifique su acceso (RBAC)
address already in use en port-forwardEl puerto local está ocupadoCambie 8080 por otro, como 8081
Pod en Pending o CrashLoopBackOffEl contenedor no está funcionandoUse Logs y Events

➡️ Próximo paso: YAML

🧠 ¿Dudas?​

¡Hable con nuestro equipo de soporte técnico de SaveinCloud!