stratégie de déploiement Kubernetes

Trouvez la stratégie de déploiement Kubernetes optimale pour votre application

Découvrir les options de déploiement Kubernetes

Que vous souhaitiez réduire le délai de commercialisation, créer des déploiements résilients sans temps d’arrêt, accélérer la mise en production d’applications et de fonctionnalités ou leur fréquence ou améliorer la flexibilité, il est essentiel de choisir la stratégie de déploiement Kubernetes adaptée pour proposer des applications et une infrastructure résilientes. Chaque stratégie de déploiement Kubernetes comporte des avantages correspondant à vos objectifs et vos besoins.

Vous débutez sur Kubernetes ? Apprendre les bases

Fonctionnement des déploiements Kubernetes

Avant d’implémenter une stratégie de déploiement Kubernetes, vous devez comprendre les éléments qui le composent et la manière dont ils fonctionnent ensemble.

Quels sont les éléments d’un déploiement Kubernetes ?

Fichier YAML

État désiré du cluster Kubernetes (configuration des pods) que vous décrivez, qui sert de base à un déploiement Kubernetes.

Pods

Conteneurs, ressources partagées et environnement que votre application ou votre workflow doivent exécuter.

ReplicaSet

Les groupes de pods configurés de manière identique sont nommés ReplicaSets. Ils s’assurent que le type et le nombre de pods décrits dans le fichier YAML d’un déploiement Kubernetes s’exécutent à tout moment. En cas d’échec d’un pod, un nouveau pod est créé.

kube-controller-manager

Modifie l’état actuel du cluster pour qu’il corresponde à l’état désiré décrit dans le fichier YAML en créant de nouveaux pods et ReplicaSets et en mettant à jour ou en supprimant ceux existants.

kube-scheduler

Détermine comment les pods et ReplicaSets sont déployés parmi les nœuds Worker et répartissent le trafic sur ces derniers.

Lancer

Processus de reconfiguration du cluster de son état actuel vers l’état voulu. Réalisé dans la plupart des cas sans temps d’arrêt.

Architecture de déploiement Kubernetes

Fonctionnement des déploiements Kubernetes

  1. Créez un fichier YAML décrivant la configuration d’état du cluster souhaitée.
  2. Appliquez le fichier YAML au cluster via kubectl, l’interface de ligne de commande Kubernetes.
  3. Kubectl envoie la requête à kube-apiserver, qui authentifie la requête avant l’enregistrement de la modification dans une base de données, etcd.
  4. kube-controller-manager surveille en continu le système pour vérifier l’arrivée de nouvelles requêtes et travaille à faire en sorte que l’état du système se rapproche de l’état désiré en créant des ReplicaSets, des déploiements et des pods dans le processus.
  5. Une fois tous les contrôleurs exécutés, kube-scheduler détecte la présence de pods dont l’état est « en attente », car leur exécution sur un nœud n’a pas encore été planifiée. Le planificateur recherche les nœuds appropriés aux pods, puis communique avec le kubelet de chaque nœud pour prendre le contrôle et lancer le déploiement.

Cas d’usage relatifs au déploiement Kubernetes

Déployez des applications conteneurisées et des workflows via Kubernetes de quatre manières. La stratégie de déploiement Kubernetes utilisée peut s’appuyer sur un ou plusieurs de ces cas d’usage.

Create

Déployez des pods Kubernetes et des ReplicaSets entièrement nouveaux.

Mettre à jour

Permet de déclarer un nouvel état désiré et de déployer de nouveaux pods et ReplicaSets de manière contrôlée.

Restaurer

Permet de rétablir l’état précédent d’un déploiement Kubernetes. Cette fonctionnalité est utile si l’état actuel est instable.

Mise à l'échelle

Permet d’augmenter le nombre de pods et de ReplicaSets du déploiement Kubernetes sans les modifier.

Stratégies de déploiement Kubernetes

La stratégie de déploiement Kubernetes la plus adaptée à votre scénario dépend de nombreux facteurs : la durée de temps d’arrêt évitable (le cas échéant), votre environnement de déploiement, le niveau de fiabilité de la stabilité d’une nouvelle version ou plateforme, le besoin de tester, ce que vous espérez apprendre, le coût et la disponibilité des ressources et les objectifs de l’entreprise. Voici quatre stratégies de déploiement couramment utilisées en production par les entreprises.

Propagé

La méthode de déploiement par défaut de Kubernetes fonctionne selon le principe de propagation. Ce déploiement remplace progressivement les pods un par un pour éviter les temps d’arrêt. Les anciens pods sont descendus en puissance une fois les nouveaux pods mis en place. Si vous rencontrez des difficultés lors du déploiement, vous pouvez suspendre ou annuler le déploiement Kubernetes sans mettre hors connexion l’ensemble du cluster.

Bleu/Vert

Au cours d’un déploiement bleu/vert , vous mettez en production une nouvelle version (bleue) de votre application ou workflow tandis que votre version actuelle (verte) est encore en cours d’exécution. Cela permet de tester la version bleue en production tout en exposant aux utilisateurs uniquement la version stable verte. Une fois testée, la version bleue remplace progressivement la version verte.

Contrôle de validité

Cette fonctionnalité permet aux clients de tester votre déploiement Kubernetes tout en mettant en production la nouvelle version pour un petit groupe d’entre eux. Vous exécutez un ReplicaSet de la nouvelle version en parallèle avec la version actuelle. Ensuite, au terme d’une période définie au cours de laquelle aucune erreur n’est survenue, faites monter en puissance la nouvelle version en supprimant l’ancienne.

Test A/B

À l’instar de la stratégie de déploiement Kubernetes de contrôle de validité, une stratégie de test A/B vise un groupe de clients spécifiques. Cependant, un déploiement de tests A/B ne cherche pas seulement a stabiliser une version. Il permet de tester l’efficacité d’une version du point de vue de la réalisation des objectifs de l’entreprise. La nouvelle version est distribuée aux utilisateurs en fonction de facteurs, tel que les cookies, la géolocalisation, le système d’exploitation, et le type d’appareil. Elle est souvent exécutée parallèlement à la version actuelle afin de monter en puissance, dans la mesure où la nouvelle version fait preuve de son efficacité.

Outils de déploiement Kubernetes

Tandis que vous utilisez la ligne de commande ou les fichiers YAML pour exécuter ces stratégies de déploiement Kubernetes, tirez davantage parti de vos clusters et déploiements en implémentant des services et outils de déploiement Kubernetes semblables à ceux-ci.

Azure DevOps

Chaîne logistique applicative complète permettant d’automatiser les déploiements Kubernetes. Trouvez le bon équilibre entre vitesse et sécurité tout en accélérant la distribution de code à grande échelle.

En savoir plus

Helm

Outil de création de package open source. Installez, mettez à niveau et gérez des applications Kubernetes à l’aide de graphiques créés par vos soins, gérez les versions, partagez et publiez.

En savoir plus

Service Azure Kubernetes (AKS)

Service Kubernetes hautement disponible, sécurisé et complètement managé. Déployez et gérez des applications conteneurisées dans le cloud.

En savoir plus

Lorsque vous êtes prêt, essayez gratuitement Kubernetes sur Azure