Cómo crear un Deployment en Kubernetes

mi-implementación.yaml

Las implementaciones representan un conjunto de pods idénticos. Una implementación ejecuta varias copias de la aplicación. Reemplaza automáticamente cualquier instancia que falle. Ayuda a garantizar que una o más instancias de la aplicación estén siempre en funcionamiento. Las implementaciones son administradas por el controlador de implementación de Kubernetes. Las implementaciones usan una plantilla de pod, que contiene una especificación para sus pods.

Una implementación de Kubernetes es un objeto de recurso en Kubernetes que proporciona actualizaciones declarativas para las aplicaciones.

Para obtener más información sobre las especificaciones de implementación, consulte la Documentación de la API de Kubernetes

En este artículo, aprenderemos a crear una implementación en Kubernetes y realizar operaciones en ella.

requisitos previos

Clúster de Kubernetes con al menos 1 nodo trabajador.
Si quieres aprender a crear un Cluster de Kubernetes, haz clic aquí. Esta guía lo ayudará a crear un clúster de Kubernetes con 1 maestro y 2 nodos en instancias AWS Ubuntu 18l04 EC2.

Lo que haremos

Crear una implementación

Crear una implementación

Cree un archivo y agregue la siguiente definición de implementación 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-implementación.yaml

En este ejemplo:

  • Se creará una implementación denominada httpd-frontend, indicada por el campo de metadatos: nombre.
  • La implementación creará 1 réplica del Pod, indicada por el campo de réplicas.
  • La plantilla de pod, o especificación: campo de plantilla, indica que sus pods están etiquetados app: httpd-frontend.
  • La especificación de la plantilla de pod, o plantilla: campo de especificación, indica que los pods ejecutan un contenedor, httpd, que ejecuta la imagen httpd: en la versión 2.4-alpine.

Use el siguiente comando para crear una implementación

kubectl create -f my-deployment.yaml

Una vez que crea una implementación, puede obtener sus detalles con el siguiente comando.

kubectl get deployment | grep httpd-frontend

obtener implementación

La implementación creó un conjunto de réplicas, para enumerarlo, use el siguiente comando.

kubectl get replicaset | grep httpd-frontend

obtener-replicaset

Los pods creados por el conjunto de réplicas se pueden enumerar con el siguiente comando que enumerará los pods que coincidan con el nombre especificado.

kubectl get pods | grep httpd-frontend

conseguir-vaina

Ahora, puede probar la creación automática del pod si el existente falla eliminándolo.

Para eliminar el pod existente, use los siguientes comandos.

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

eliminar-pod

En la captura de pantalla anterior, puede ver que el pod se creó después de eliminar el pod existente.

Anuncio publicitario

Ahora, incluso si se elimina el conjunto de réplicas, la implementación lo creará.

Para probar esto, elimine 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

eliminar-replicaset

En la captura de pantalla anterior, puede ver que incluso después de eliminar el conjunto de réplicas, se creó.

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

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

obtener-pod-con-detalles

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

kubectl describe pod httpd-frontend

describe-pod

Ahora, si ya no necesita que su aplicación se implemente mediante la implementación, puede eliminarla eliminando la implementación.

Utilice los siguientes comandos para eliminar la implementación.

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

eliminar-implementación

En la captura de pantalla anterior, puede ver que después de eliminar la implementación, no se creó. Pero si elimina el pod o el conjunto de réplicas que se crearon como parte de la implementación, se crearán.

Conclusión

En este artículo, aprendimos a crear una implementación y probamos la operación de eliminación en Pod, Replicaset e Implementación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *