Kubernetes: implementaciones
Las implementaciones se actualizan y una versión superior del controlador de replicación. Gestionan la implementación de conjuntos de réplicas, que también es una versión mejorada del controlador de réplica. Tienen la capacidad de actualizar el conjunto de réplicas y también pueden retroceder a la versión anterior.
Proporcionan muchas características actualizadas de matchLabels y selectors. Tenemos un nuevo controlador en el maestro de Kubernetes llamado controlador de implementación que lo hace posible. Tiene la capacidad de cambiar la implementación a mitad de camino.
Cambiar la implementación
Updating- El usuario puede actualizar la implementación en curso antes de que se complete. En esto, se resolverá la implementación existente y se creará una nueva implementación.
Deleting- El usuario puede pausar / cancelar la implementación eliminándola antes de que se complete. La recreación de la misma implementación la reanudará.
Rollback- Podemos revertir la implementación o la implementación en curso. El usuario puede crear o actualizar la implementación usandoDeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec.
Estrategias de implementación
Las estrategias de implementación ayudan a definir cómo el nuevo RC debe reemplazar al RC existente.
Recreate- Esta función matará a todos los RC existentes y luego mostrará los nuevos. Esto da como resultado una implementación rápida, sin embargo, dará lugar a un tiempo de inactividad cuando los módulos antiguos estén inactivos y los módulos nuevos no aparezcan.
Rolling Update- Esta función baja gradualmente el antiguo RC y muestra el nuevo. Esto resulta en una implementación lenta, sin embargo, no hay implementación. En todo momento, en este proceso hay disponibles pocos pods antiguos y pocos pods nuevos.
El archivo de configuración de Implementación tiene este aspecto.
apiVersion: extensions/v1beta1 --------------------->1
kind: Deployment --------------------------> 2
metadata:
name: Tomcat-ReplicaSet
spec:
replicas: 3
template:
metadata:
lables:
app: Tomcat-ReplicaSet
tier: Backend
spec:
containers:
- name: Tomcatimage:
tomcat: 8.0
ports:
- containerPort: 7474
En el código anterior, lo único que es diferente del conjunto de réplicas es que hemos definido el tipo como implementación.
Crear despliegue
$ kubectl create –f Deployment.yaml -–record
deployment "Deployment" created Successfully.
Obtener la implementación
$ kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVILABLE AGE
Deployment 3 3 3 3 20s
Verificar el estado de la implementación
$ kubectl rollout status deployment/Deployment
Actualización de la implementación
$ kubectl set image deployment/Deployment tomcat=tomcat:6.0
Retroceder a la implementación anterior
$ kubectl rollout undo deployment/Deployment –to-revision=2