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 a 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 desea aprender a crear un Clúster de Kubernetes, haga 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
En este ejemplo:
- Se creará una implementación denominada httpd-frontend , indicada por
metadata: name
campo. - La implementación creará 1 réplica del pod, indicada por
replicas
campo. - La plantilla Pod, o
spec: template
campo, indica que sus pods están etiquetados
.app: httpd-frontend
- La especificación de la plantilla Pod, o
template: spec
campo, indica que los Pods ejecutan un contenedor, httpd, que ejecuta httpd: image 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
La implementación creó un conjunto de réplicas, para enumerarlo use el siguiente comando.
kubectl get replicaset | grep httpd-frontend
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
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
En la captura de pantalla anterior, puede ver que el pod se creó después de eliminar el pod existente.
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
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
Para obtener la información completa del pod, se puede describir con el siguiente comando.
kubectl describe pod httpd-frontend
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
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.