PODS

Un Pod en Kubernetes es la unidad más pequeña de despliegue y ejecución dentro del clúster. Un pod encapsula uno o más contenedores que comparten el mismo entorno de red, almacenamiento y configuración.
Características principales de un pod:
-
Uno o varios contenedores: Aunque lo más común es que un pod contenga un solo contenedor, puede tener varios (por ejemplo, un contenedor principal y un "sidecar" para tareas auxiliares).
-
Red compartida: Todos los contenedores dentro del pod comparten la misma dirección IP, el mismo puerto de red y las mismas interfaces de red.
-
Volúmenes compartidos: Los contenedores dentro del pod pueden compartir volúmenes para intercambiar datos entre ellos.
-
Ciclo de vida conjunto: Los contenedores dentro de un pod siempre se ejecutan juntos en el mismo nodo y se gestionan como una unidad. Si el pod muere, todos los contenedores dentro de él también se detienen.
📝 Manifiesto de Pod:
vi myapp.yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: httpd:latest
ports:
- containerPort: 80
🔧Comandos para PODs
# despliegue del Pod
kubectl apply -f myapp.yaml
# Eliminar el Pod
kubectl delete -f myapp.yaml
# Devuelve el listado de pods
kubectl get pods
# Describe un pod
kubectl describe pod <name>
# Devuelve el consumo de recursos de un nodo
kubectl top pod <name>
# Ejecutar un comando sobre un contenedor
kubectl exec <pod> -c <contenedor> <comando>
# Copia un fichero en un contenedor
kubectl cp /tmp/foo <pod-name>:/tmp/bar -c <container-name>
# Consulta de los de un contenedor
kubectl logs <pod-name> -c <container-name>
# Port forwarding
kubectl port-forward --address 0.0.0.0 pod/<pod-name> <host-port>:<pod-port>