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.
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.
Fonctionnement des déploiements Kubernetes
- Créez un fichier YAML décrivant la configuration d’état du cluster souhaitée.
- Appliquez le fichier YAML au cluster via kubectl, l’interface de ligne de commande Kubernetes.
- 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.
- 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.
- Une fois que tous les contrôleurs ont été exécutés, kube-scheduler constate qu’il existe des pods dans l’état"en attente", car ils n’ont pas encore été planifiés pour s’exécuter sur un nœud. 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
Create
Déployez des pods Kubernetes et des ReplicaSets entièrement nouveaux.
Mise à 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.
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.
Azure Kubernetes Service (AKS)
Service Kubernetes hautement disponible, sécurisé et complètement managé. Déployez et gérez des applications conteneurisées dans le cloud.