Déploiement roulant à Kubernetes

Déploiement roulant à Kubernetes

Dans cet article, nous examinerons les options de déploiement pour l'utilisation du système de conteneur-orchestration de Kubernetes pour déployer des conteneurs. Nous aurons appris à se déployer dans le cluster Kubernetes de diverses manières d'ici la fin de cet article. Si vous voulez vraiment en savoir plus sur ce sujet, continuez à lire l'article. Le code peut être trouvé dans les sections ci-dessous.

Que sont les déploiements à Kubernetes?

Les déploiements de Kubernetes ne sont que des répliques enveloppées dans un emballage Kubernetes. Le déploiement surveille le nombre de gousses de fonctionnement, tandis que le répliquant gère le nombre de gousses en cours d'exécution. Cela permet de rouler les mises à jour, les contrôles de santé POD et le recul facile des mises à jour.

Le déploiement ne contiendra qu'un seul répliquant pendant les opérations normales, garantissant que le nombre de gousses requises fonctionne.

Vous ne devez pas gérer le répliquant que le déploiement crée directement tout en utilisant des déploiements. Toutes les opérations effectuées sur un répliquant doivent plutôt être effectuées sur le déploiement, gérant le processus de mise à jour du réplicaset.

La possibilité d'exécuter des mises à jour de roulement est l'un des principaux avantages du déploiement. Les déploiements vous donnent beaucoup de flexibilité sur les mises à jour de roulement, vous permettant de mettre à jour progressivement la configuration de vos pods.

Quels sont les cas d'utilisation typiques pour le déploiement?

Les déploiements sont couramment utilisés dans les scénarios suivants:

  • Pour déployer un répliquant, créez un déploiement. En arrière-plan, le répliquant construit des pods. Vérifiez les progrès du déploiement pour vérifier s'il a réussi.
  • Mettez à jour le PodTemplateSpec du déploiement pour refléter la condition modifiée des pods. Le déploiement est chargé de gérer le transfert contrôlé des pods de l'ancien au nouveau répliquant et en formant un nouveau. Avec chaque nouveau répliquant, la révision du déploiement est mise à jour.
  • Augmenter la capacité du déploiement à gérer un trafic plus élevé.
  • Paute le déploiement d'un déploiement pour apporter divers modifications à son podTemplateSpec, puis reprendre pour commencer un nouveau déploiement.
  • Le statut de déploiement peut être utilisé pour déterminer si un déploiement a réussi ou non.
  • Supprimer tous les rédacteurs précédents dont vous n'avez plus besoin.

Conditions préalables:

Tout d'abord, vous devez installer le cluster Minikube et commencer Ubuntu 20.04. Ouvre maintenant un terminal pour exécuter les commandes. À cette fin, appuyez sur le raccourci «Ctrl + Alt + T» sur le clavier.

Vous pouvez également écrire la commande «Démarrer Minikube» dans le terminal. Après cela, attendez un moment jusqu'à ce qu'il commence. Ce qui suit est le résultat de cette instruction:

$ minikube start

Comment créer un déploiement?

Dans Kubernetes, les déploiements sont formés en spécifiant leurs exigences dans un fichier de définition YAML. Utilisons l'exemple d'un déploiement nommé Deploy.YAML avec les paramètres suivants pour voir comment un déploiement de mise à jour roulant est configuré:

$ Nano Deploy.yaml


L'ensemble du fichier de configuration peut être trouvé ici. Pour élever trois gousses, le code ci-dessous crée un répliquant. Dans l'exemple, le.métadonnées.La colonne de nom indique qu'un déploiement nommé Nginx-déploiement a été créé. Le déploiement produit trois gousses répliquées, selon le.spécifier.Attribut répliques.

Le déploiement.spécifier.Le champ de sélecteur spécifie comment il détermine les gousses à gérer. Dans ce cas, vous utiliserez le modèle de pod pour sélectionner une étiquette (App: Nginx). Des règles de sélection plus compliquées sont possibles si le modèle de pod correspond aux critères.


Pour créer le déploiement, exécutez la commande donnée après la configuration du déploiement YAML:

$ kubectl création -f déploiement.yaml

Utilisez la commande Kubectl Get Deployments pour voir si le déploiement a été créé, comme indiqué ci-dessous.

$ kubectl obtenir des déploiements


S'il y a des déploiements en cours, vous pouvez surveiller l'état de déploiement en écrivant cette commande.


Après quelques secondes, exécutez Kubectl pour obtenir à nouveau des déploiements pour voir les détails.

$ kubectl obtenir des déploiements


Pour inspecter le répliquant (RS) créé par le déploiement, utilisez la commande kubectl get rs. Voici le résultat.

$ kubectl obtenir Rs

Exécutez Kubectl Get Pods -show-Barnal pour voir les étiquettes produites automatiquement pour chaque pod. La sortie peut ressembler à ceci:

$ kubectl get gods - show-labels

Comment mettre à jour un déploiement?

Pour mettre à jour votre déploiement, suivez les étapes élaborées ci-dessous:

Changeons les pods nginx pour utiliser la version suivante de nginx: au lieu d'utiliser le nginx: 1.14.2 image, utilisez le 1.16.1 image.


Exécutez la commande donnée et affichez l'état de déploiement.


Une fois le déploiement terminé, utilisez Kubectl pour obtenir des déploiements pour voir le déploiement. Ce qui suit est la sortie:

$ kubectl obtenir des déploiements


Pour récupérer des détails sur votre déploiement, exécutez la commande suivante:

$ kubectl décrire les déploiements


Supposons que vous ayez fait une erreur lorsque vous modifiez le déploiement et tapé Nginx: 1.161 au lieu de nginx: 1.16.1 dans le nom de l'image:

Le déploiement devient bloqué. Vous pouvez vérifier les performances du déploiement ici:


Pour arrêter la montre de statut de déploiement ci-dessus, utilisez Ctrl-C.

Quels sont les avantages des mises à jour de roulement?

Les mises à jour roulantes permettent une intégration progressive des modifications, vous donnant plus de flexibilité et de contrôle sur la durée de vie de votre application. Voici quelques-uns des avantages de l'utilisation de mises à jour de roulement pour les grappes de Kubernetes:

  • Il n'y a pas de temps d'arrêt car les instances de pod de l'application sont toujours en cours d'exécution, même pendant une mise à niveau.
  • Permet aux développeurs de tester l'impact des changements dans un environnement de production sans interférer avec l'expérience utilisateur.
  • Il s'agit d'une technique de déploiement rentable car elle ne nécessite pas de ressources supplémentaires attribuées au cluster.
  • Les mises à niveau complexes peuvent être effectuées efficacement en apportant des modifications simples dans un fichier de déploiement, éliminant le besoin de migration manuelle de fichiers de configuration qui prend du temps.

Conclusion:

Cet article couvrait les bases des déploiements, le fonctionnement des mises à jour de roulement et une variété de choix de configuration pour les mises à jour fins et la planification des pods. Vous devriez maintenant être en mesure d'établir et de modifier les déploiements en toute confiance pour atteindre le bon état pour votre application.