Kubernetes - Déploiements

Les déploiements sont mis à niveau et une version supérieure du contrôleur de réplication. Ils gèrent le déploiement des jeux de répliques, qui est également une version mise à niveau du contrôleur de réplication. Ils ont la capacité de mettre à jour le jeu de réplicas et sont également capables de revenir à la version précédente.

Ils fournissent de nombreuses fonctionnalités mises à jour de matchLabels et selectors. Nous avons un nouveau contrôleur dans le maître Kubernetes appelé le contrôleur de déploiement qui le rend possible. Il a la capacité de modifier le déploiement à mi-chemin.

Modification du déploiement

Updating- L'utilisateur peut mettre à jour le déploiement en cours avant qu'il ne soit terminé. En cela, le déploiement existant sera réglé et un nouveau déploiement sera créé.

Deleting- L'utilisateur peut suspendre / annuler le déploiement en le supprimant avant qu'il ne soit terminé. La recréation du même déploiement le reprendra.

Rollback- Nous pouvons annuler le déploiement ou le déploiement en cours. L'utilisateur peut créer ou mettre à jour le déploiement en utilisantDeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec.

Stratégies de déploiement

Les stratégies de déploiement aident à définir comment le nouveau RC devrait remplacer le RC existant.

Recreate- Cette fonctionnalité tuera tous les RC existants et fera apparaître les nouveaux. Cela se traduit par un déploiement rapide, mais il en résultera des temps d'arrêt lorsque les anciens pods sont hors service et que les nouveaux pods ne sont pas montés.

Rolling Update- Cette fonction fait progressivement tomber l'ancien RC et fait apparaître le nouveau. Cela entraîne un déploiement lent, mais il n'y a pas de déploiement. À tout moment, peu d'anciens pods et peu de nouveaux pods sont disponibles dans ce processus.

Le fichier de configuration de Deployment ressemble à ceci.

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

Dans le code ci-dessus, la seule chose qui diffère du jeu de réplicas est que nous avons défini le genre comme déploiement.

Créer déploiement

$ kubectl create –f Deployment.yaml -–record
deployment "Deployment" created Successfully.

Récupérer le déploiement

$ kubectl get deployments
NAME           DESIRED     CURRENT     UP-TO-DATE     AVILABLE    AGE
Deployment        3           3           3              3        20s

Vérifier l'état du déploiement

$ kubectl rollout status deployment/Deployment

Mettre à jour le déploiement

$ kubectl set image deployment/Deployment tomcat=tomcat:6.0

Revenir au déploiement précédent

$ kubectl rollout undo deployment/Deployment –to-revision=2