Introducción

Un Pod en kubernetes es un grupo de uno o más contenedores que comparten un espacio de red y espacio de almacenamiento. Los Pods son la unidad de despliegue en Kubernetes. Un Pod representa un proceso en ejecución en su clúster.

En este post vamos a crear un Pod en Kubernetes y para ello, vamos a desplegar una imagen que nos ofrece un servidor web con una página estática.

Desplegando un Pod

Creando un Pod

Lo primero que vamos a hacer, es crear un fichero yaml con la descripción del recurso Pod, teniendo en cuenta lo siguiente:

* Los pods deben tener distinto nombre que el del contenedor.
* La imagen que vamos a desplegar es `iesgn/test_web:latest`.
* Le asignaremos una etiqueta en la descripción del Pod.

Antes que nada nos vamos a descargar la imagen con un docker pull iesgn/test_web:latest:

apiVersion: v1
kind: Pod
metadata:
 name: pod-test-web
 labels:
   service: pod-taller1
spec:
 containers:
   - image: iesgn/test_web:latest
     name: container-test-web

Una vez creado el fichero, vamos a crear el Pod en nuestro clúster de Kubernetes.

kubectl create -f test_web.yaml

Comprobando el estado del Pod

Para comprobar el estado del Pod, podemos ejecutar el siguiente comando:

kubectl get pod pod-test-web -o wide

Como podemos ver, el Pod se ha creado correctamente y está en estado Running.

Obteniendo información del Pod

Para obtener información del Pod, podemos ejecutar el siguiente comando:

kubectl get pod pod-test-web -o wide

O con el siguiente comando:

kubectl describe pod pod-test-web

Accediendo al Pod

En esta ocasión, vamos a acceder de forma interactiva y comprobaremos los ficheros que están en el DocumentRoot del servidor web.

kubectl exec -it pod-test-web -- /bin/bash
ls -la htdocs/

Creando una redirección

Vamos a crear una redirección con kubectl port-forward para poder acceder al Pod desde el navegador. Utilizaremos el puerto 8888 del localhost y redirigiremos el puerto 80 del Pod.

kubectl port-forward test-web 8888:80

Ahora, podemos acceder al Pod desde el navegador con la siguiente URL: http://localhost:8888.

Mostrando los logs del Pod

Para mostrar los logs del Pod, podemos ejecutar el siguiente comando:

kubectl logs test-web

De esta manera, podemos ver los logs del servidor web que hemos desplegado.

Eliminando el Pod

Para eliminar el Pod, podemos ejecutar el siguiente comando:

kubectl delete pod pod-test-web

kubectl get pod

Como podemos ver en la imagen anterior, el pod se ha eliminado correctamente.