Cómo crear un despliegue en Kubernetes

Los Despliegues representan un conjunto de Pods idénticos. Un Despliegue ejecuta múltiples copias de la aplicación. Sustituye automáticamente cualquier instancia que falle. Ayuda a garantizar que una o más instancias de la aplicación estén siempre en funcionamiento. Los Despliegues son gestionados por el controlador de Despliegue de Kubernetes. Los despliegues utilizan una plantilla Pod, que contiene una especificación para sus Pods.

Un despliegue de Kubernetes es un objeto de recurso en Kubernetes que proporciona actualizaciones declarativas a las aplicaciones.

Para saber más sobre las especificaciones del Despliegue, consulta ladocumentación de la API de Kubernetes

En este artículo, aprenderemos a crear un despliegue en Kubernetes y a realizar operaciones sobre él.

Requisitos previos

Cluster de Kubernetes con al menos 1 nodo trabajador.
Si quieres aprender a crear un Cluster de Kubernetes, haz clic aquí. Esta guía te ayudará a crear un cluster de Kubernetes con 1 Maestro y 2 Nodos en Instancias EC2 de AWS Ubuntu 18l04.

Qué vamos a hacer

Crear un despliegue

Crear un despliegue

Crea un archivo y añade la siguiente definición de despliegue en él.

vim my-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: httpd-frontend
  name: httpd-frontend
spec:
  replicas: 1
  selector:
    matchLabels:
      app: httpd-frontend
  template:
    metadata:
      labels:
        app: httpd-frontend
    spec:
      containers:
      - image: httpd:2.4-alpine
        name: httpd



mi-despliegue.yaml

En este ejemplo:

  • Se creará un Deployment llamado httpd-frontend, indicado por el campometadata: name.
  • El Despliegue creará 1 réplica del Pod, indicada por el camporeplicas.
  • La plantilla del Pod, o campospec: template, indica que sus Pods están etiquetadosapp: httpd-frontend.
  • La especificación de la plantilla Pod, o campotemplate: spec, indica que los Pods ejecutan un contenedor, httpd, que ejecuta la imagen httpd: en la versión 2.4-alpine.

Utiliza el siguiente comando para crear un despliegue

kubectl create -f my-deployment.yaml

Una vez creado un despliegue, puedes obtener sus detalles utilizando el siguiente comando

kubectl get deployment | grep httpd-frontend

get-deployment

El despliegue ha creado un replica-set, para listarlo utiliza el siguiente comando.

kubectl get replicaset | grep httpd-frontend

get-replicaset

Los pods creados por el replica-set se pueden listar utilizando el siguiente comando que listará los pods que coincidan con el nombre especificado.


kubectl get pods | grep httpd-frontend

get-pod

Ahora, puedes probar la autocreación del pod si el existente falla borrándolo.

Para eliminar el pod existente, utiliza los siguientes comandos.


kubectl get pods | grep httpd-frontend
kubectl delete pod httpd-frontend-74fd6fd8cd-8nj2s
kubectl get pods | grep httpd-frontend

borrar-pod

En la captura de pantalla anterior, puedes ver que el pod se ha creado después de eliminar el pod existente.

Ahora, aunque se elimine el conjunto de réplicas, el despliegue lo creará.

Para comprobarlo, elimina el conjunto de réplicas con el siguiente comando.


kubectl get replicaset | grep httpd-frontend
kubectl delete replicaset httpd-frontend-74fd6fd8cd
kubectl get replicaset | grep httpd-frontend

borrar-replicaset

En la captura de pantalla anterior puedes ver que incluso después de eliminar el conjunto de réplicas, éste se ha creado.

Para ver un poco más de información del pod, se puede utilizar «-o wide» en el comando siguiente.

kubectl get pods | grep httpd-frontend
kubectl get pods -o wide | grep httpd-frontend

get-pod-with-details

Para obtener la información completa del pod, se puede describir mediante el siguiente comando.

kubectl describe pod httpd-frontend

describir-pod

Ahora, si ya no necesitas que tu aplicación se despliegue utilizando el despliegue, se puede eliminar borrando el despliegue.

Utiliza los siguientes comandos para eliminar el despliegue.

kubectl get deployment | grep httpd-frontend
kubectl delete deployment httpd-frontend
kubectl get deployment | grep httpd-frontend

borrar-despliegue

En la captura de pantalla anterior, puedes ver que después de eliminar el despliegue no se ha creado. Pero si eliminas el pod o el conjunto de réplicas que se crearon como parte del despliegue, se crearán.

Conclusión

En este artículo, hemos aprendido a crear un despliegue y hemos probado la operación de eliminación de Pod, Replicaset y Despliegue.

También te podría gustar...