Pods

Un pod en Kubernetes es la unidad más pequeña de despliegue y es la forma básica de organizar y ejecutar contenedores en un clúster de Kubernetes. Un pod puede contener uno o más contenedores que comparten recursos y se ejecutan en el mismo espacio de red y almacenamiento.

En Kubernetes, los pods son efímeros y pueden ser eliminados y recreados en cualquier momento. Los pods son administrados por el plano de control de Kubernetes y se ejecutan en los nodos de trabajo (Worker Nodes) del clúster.

Comandos generales

Crear un pod

Para crear un pod podemos ejecutar el siguiente comando:

kubectl run <nombre_del_pod> --image=<imagen_del_contenedor>

Por ejemplo:

kubectl run mi-web-apache --image=httpd:latest

Ver pods

Para ver los pods en un clúster de Kubernetes, podemos utilizar el comando kubectl get pods:

kubectl get pods

NOTA: usa -o wide para ver más detalles de los pods.

Para ver los detalles de un pod en particular, podemos utilizar el comando kubectl describe pod <nombre_del_pod>:

kubectl describe pod mi-web-apache

Logs de un pod

Para ver los logs de un pod, podemos utilizar el comando kubectl logs <nombre_del_pod>:

kubectl logs mi-web-apache

Ejecutar comandos en un pod

Para ejecutar un comando en un pod, podemos utilizar el comando kubectl exec -it <nombre_del_pod> -- <comando>:

kubectl exec -it mi-web-apache -- ls /usr/local/apache2/htdocs

Eliminar un pod

Para eliminar un pod, podemos utilizar el comando kubectl delete pod <nombre_del_pod>:

kubectl delete pod mi-web-apache

Aplicar mediante un manifiesto

También podemos crear un pod utilizando un manifiesto en formato YAML o JSON. Para ello, creamos un manifiesto con la definición del pod y luego lo aplicamos con el comando kubectl apply -f <archivo_de_configuracion>.

kubectl apply -f Kubernetes/manifests/mi-pod.yaml

Port-forwarding

Podemos redirigir el tráfico de un puerto de un pod o un servicio a un puerto local utilizando el comando kubectl port-forward <nombre_del_pod> <puerto_local>:<puerto_pod>. Por ejemplo, para redirigir el tráfico del puerto 80 de un pod al puerto 9000 de local, podemos ejecutar el siguiente comando:

kubectl port-forward <nombre_del_pod> 9000:80

Copiar ficheros

Para copiar ficheros entre el host y un pod, podemos utilizar el comando kubectl cp. Por ejemplo, para copiar un fichero del host al pod:

kubectl cp <fichero> <nombre_del_pod>:<directorio>

O para copiar un fichero del pod al host:

kubectl cp <nombre_del_pod>:<fichero> <directorio>