Cómo desplegar tu primer pod en un clúster de Kubernetes

En este artículo veremos cómo crear nuestro primer Pod en el Cluster Kubernetes. Veremos los pasos para crear un pod para Nginx.

Un Pod es la unidad básica de ejecución de una aplicación de Kubernetes. Es una colección de contenedores que se despliegan juntos en el mismo host. Los Pods en un cluster de Kubernetes se pueden utilizar de dos maneras:

  1. Pods que ejecutan un único contenedor: Esta es la forma más popular de utilizar un Pod. Kubernetes gestiona los pods en lugar de gestionar directamente los contenedores.
  2. Pods que ejecutanmúltiples contenedores que necesitan trabajar juntos: En este modelo, un pod puede tener múltiples contenedores que están estrechamente acoplados para compartir recursos.

Como ya se ha dicho que un Pod puede contener múltiples contenedores, siempre se recomienda tener un único contenedor cuando sea posible. Agrupar varios contenedores en un único Pod es un caso de uso relativamente avanzado. Deberías utilizar este patrón sólo en casos concretos en los que tus contenedores estén estrechamente acoplados.

Si desplegamos un único contenedor, generalmente podemos sustituir la palabra «pod» por «contenedor». Los pods permiten compartir datos y comunicarse entre sus componentes.

Un Pod siempre se ejecuta en un Nodo. Un Nodo es una máquina trabajadora en Kubernetes y puede ser una máquina virtual o física, según el clúster. Cada Nodo es gestionado por el Maestro. Un Nodo puede tener varios pods, y el maestro de Kubernetes se encarga automáticamente de programar los pods entre los Nodos del clúster.

Las 5 etapas del ciclo de vida de un pod

  1. Pendiente: El Pod ha sido aceptado por el sistema Kubernetes, pero no se ha creado una o más de las imágenes del Contenedor. Esto incluye el tiempo antes de ser programado, así como el tiempo de descarga de las imágenes a través de la red, lo que puede llevar un tiempo.
  2. En ejecución: el Pod se ha vinculado a un nodo y se han creado todos los Contenedores. Al menos un Contenedor sigue en ejecución, o está en proceso de iniciarse o reiniciarse.
  3. Con éxito: Todos los Contenedores del Pod han finalizado con éxito y no se reiniciarán.
  4. Fallado: Todos los Contenedores del Pod han terminado, y al menos un Contenedor ha terminado con un fallo. Es decir, el Contenedor ha salido con un estado distinto de cero o ha sido cerrado por el sistema.
  5. Desconocido: Por alguna razón no se ha podido obtener el estado del Pod, normalmente debido a un error de comunicación con el host del Pod.

Requisitos previos

  1. Cuenta de AWS (Crea si no tienes una)
  2. Cluster de Kubernetes (Busca «Configurar un Cluster de Kubernetes en una Instancia AWS EC2 Ubuntu 18.04 LTS usando kubeadm» si quieres aprender a crear un Cluster de Kubernetes).

Nota: También puedes utilizar VMs para crear un cluster si no quieres probar en Instancias AWS EC2.

Qué vamos a hacer

  1. Crear un Kubernetes Pod para NginX y eliminarlo

Crear un Kubernetes Pod para Nginx

Para crear nuestro primer pod, vamos a crear un nuevo directorio para crear nuestro archivo Object/Pod. Utiliza el siguiente comando para crear un nuevo directorio en tu sistema

mkdir mi-primer-pod
cd mi-primer-pod/

Antes de continuar, comprueba el estado del clúster.

Para comprobar los nodos disponibles en el clúster y para comprobar la versión del programa «kubectl«utiliza los siguientes comandos.

sudo kubectl get nodes
sudo kubectl version

Utiliza el siguiente comando para listar los pods en el espacio de nombres por defecto. Como éste será nuestro primer pod en el Cluster, no verás ningún pod en el espacio de nombres por defecto.

sudo kubectl get pods

Una vez que tengas nodos disponibles en el clúster, estarás listo para crear tu primer pod.

Crea un archivo«mi-primer-pod.yml» con el siguiente bloque de código

vim mi-primer-pod.yml

---
apiVersion: v1
kind: Pod
metadata:
  name: myfirstpod
  labels:
    app: web
spec:
  containers:
    - name: myfirstcontainer
      image: nginx
      ports:
        - containerPort: 80

Aquí,

  • apiVersion: APIVersion define el esquema versionado de esta representación de un objeto.
  • tipo: Tipo de objeto que quieres crear. Aquí es pod, ya que estamos creando un pod.
  • nombre: El nombre debe ser único dentro de un espacio de nombres.
  • etiquetas: Mapa de claves y valores de cadena que pueden utilizarse para organizar y categorizar los objetos
  • especificación: Especificación del comportamiento deseado del pod.

Ahora estás listo para crear tu pod utilizando los siguientes comandos.

sudo kubectl apply -f mi-primer-pod.yml

Puedes obtener los detalles de los pods utilizando el siguiente comando.

sudo kubectl get pods

Para confirmar si el Pod se está ejecutando realmente, ejecuta el siguiente comando. Esto ejecuta un comando dentro de nuestro pod (Nota: Es similar a ejecutar docker exec.)

sudo kubectl exec myfirstpod – service nginx status

Si ya no necesitas el pod, puedes eliminarlo utilizando el «comando kubectl delete».

sudo kubectl delete pods myfirstpod

Por último, para verificar si el pod ha sido eliminado, utiliza el siguiente comando

sudo kubectl get pods

Conclusión

En este artículo, hemos aprendido cosas básicas sobre los Pods, sus etapas del ciclo de vida. Hemos visto los pasos para crear nuestro primer Nginx Pod en Kubernetes. También vimos cómo se pueden extraer los detalles relativos al Pod. Junto con esto, exploramos el comando para eliminar el Pod.

También te podría gustar...