Meilleures pratiques Kubernetes. Mise Ă  niveau du cluster Kubernetes Zero Downtime

Meilleures pratiques Kubernetes. Création de petits conteneurs
Kubernetes Best Practices. Organisation Kubernetes avec l'
espace de noms Kubernetes Best Practices. Test de viabilité Kubernetes avec tests de préparation et de vivacité Kubernetes
Best Practices. DĂ©finition des requĂŞtes et des limites de
ressources Meilleures pratiques Kubernetes. Corriger la terminaison
DĂ©sactiver les meilleures pratiques de Kubernetes. Cartographie des services externes

Tout le monde sait combien il est bon de maintenir vos applications à jour. Kubernetes et Docker peuvent rendre le processus de mise à niveau beaucoup plus facile, vous pouvez donc créer un nouveau conteneur avec des dépendances mises à jour et le déployer facilement. En plus de mettre à jour les dépendances des applications, Kubernetes met constamment à jour les fonctionnalités et les politiques de sécurité.
Ainsi, les nœuds de base et l'infrastructure de Kubernetes doivent être à jour. Dans cette série, nous apprendrons comment le moteur Google Kubernetes peut facilement mettre à niveau le cluster Kubernetes.

Ainsi, lors de la mise à jour d'un cluster, vous devez mettre à jour les assistants et les nœuds, et les assistants doivent être mis à jour en premier. Voyons comment mettre à jour les deux éléments à l'aide du moteur Google Kubernetes. Ce système met automatiquement à jour l'assistant lors de la publication des versions ponctuelles. Cependant, en règle générale, il ne sera pas mis à jour automatiquement vers la nouvelle version, par exemple 1.7-1.8. Lorsque vous êtes prêt à passer à la nouvelle version, vous pouvez simplement cliquer sur le lien Mettre à niveau disponible dans la console GKE, après quoi une boîte de dialogue apparaîtra à l'écran. Il contient un avertissement indiquant que la modification de la version principale peut prendre plusieurs minutes, au cours desquelles vous ne pouvez pas modifier ce cluster, tandis que pendant la mise à niveau de l'assistant, vos déploiements et services continueront de fonctionner normalement. Cependant, toute l'infrastructure qui a besoin de l'API Kubernetes ne fonctionnera pas.



Cela signifie que QPTL et toutes les applications qui utilisent l'API Kubernetes pour obtenir des informations sur le cluster seront désactivées et vous ne pourrez apporter aucune modification au cluster.

Voyons comment vous pouvez résoudre ce problème en mettant à jour l'assistant sans aucun temps d'arrêt.



Bien que le cluster de zones GKE standard ne prenne en charge qu'un seul assistant, vous pouvez créer des clusters régionaux qui fournissent des assistants haute disponibilité multizones. Par conséquent, lors de la création de votre cluster, assurez-vous de choisir une option régionale.

Vos nœuds et assistants seront automatiquement créés dans trois zones et les assistants auront des adresses IP à charge équilibrée. Cela permettra à l'API Kubernetes de fonctionner correctement pendant la mise à niveau.

Lors de la mise à jour des nœuds, vous pouvez utiliser plusieurs stratégies différentes. Je veux attirer votre attention sur deux choses: les mises à jour continues et la migration à l'aide de pools de nœuds.

La façon la plus simple de mettre à jour les nœuds Kubernetes est d'utiliser la mise à jour continue, le mécanisme de mise à jour par défaut que GKE utilise pour mettre à jour vos nœuds. Cela fonctionne comme suit.



Les nœuds de l'ancienne version sont mis hors service les uns après les autres afin que tous les modules cessent de fonctionner en eux. Ensuite, ces nœuds sont supprimés et au lieu d'eux, de nouveaux nœuds de la version mise à jour de Kubernetes apparaissent l'un après l'autre. Une fois qu'un nœud a commencé à fonctionner, l'autre passe au processus de mise à jour, et cela continue jusqu'à ce que tous les nœuds soient mis à jour. Vous pouvez laisser GKE gérer ce processus pour vous en activant la mise à jour automatique des nœuds dans le pool de nœuds en sélectionnant Activé.



Si vous ne le faites pas, le tableau de bord GKE vous avertira lorsqu'une nouvelle mise à jour sera disponible. Dans ce cas, pour effectuer la mise à jour, vous devez cliquer sur le lien Mises à jour automatiques des nœuds et suivre les instructions.



Dans le même temps, il est très important de vous assurer que vos pods sont contrôlés à l'aide du jeu de réplicas, d'un jeu avec état ou de quelque chose de similaire. Ensuite, les foyers autonomes ne seront pas restructurés.

Bien que les mises à jour continues soient assez faciles à faire avec GKE, il présente encore quelques inconvénients. L'un d'eux est que lorsque vous effectuez une mise à niveau, la capacité de votre cluster diminue d'un nœud. Cet inconvénient est facilement éliminé en faisant évoluer le pool de nœuds en ajoutant de la capacité supplémentaire, puis en la réduisant après la mise à jour.

De plus, la nature entièrement automatisée des mises à jour continues facilite la mise à jour, mais vous laisse moins de contrôle sur le processus. Si quelque chose se passe mal et que vous devez revenir à l'ancienne version, il faudra du temps pour arrêter les mises à jour et annuler toutes les modifications qui ont déjà été apportées. Voyons comment vous pouvez utiliser des pools de plusieurs nœuds pour mettre à niveau votre cluster.



Ainsi, au lieu de mettre à jour le pool de nœuds actif à l'aide de mises à jour continues, vous créez un pool de nœuds entièrement nouveau, attendez que tous les nœuds démarrent, puis transférez les charges de travail un nœud à la fois. En exécutant vous-même ces commandes, vous contrôlez mieux le processus de migration, tandis que GKE continue de gérer vos nœuds.
Supposons qu'un cluster Kubernetes se compose de 3 machines virtuelles. Vous pouvez afficher les nœuds à l'aide de la commande get nodes.



Pour créer un nouveau pool de nœuds nommé pool-two, vous devez utiliser la commande appropriée, en la configurant exactement de la même manière que la commande pour l'ancien pool.



Facultativement, vous pouvez également utiliser l'interface graphique pour créer un nouveau pool de nœuds. Pour plus d'informations à ce sujet, utilisez le lien de création de pool de nœuds situé sous cette vidéo.

Si vous vérifiez à nouveau le nombre de nœuds, vous trouverez trois nouveaux nœuds avec le nom de pool-deux, cependant, les pods seront toujours sur les anciens nœuds.



Déplaçons-les vers un nouveau pool de nœuds, en déplaçant un nœud à la fois en mode roulant. Pour ce faire, utilisez la commande de cordon pour chaque ancien noeud pour les protéger et empêcher la formation de nouveaux foyers en eux.



Dès que tous les anciens nœuds seront clôturés, la création de foyers ne sera prévue que dans les nouveaux nœuds. Cela signifie que vous pouvez commencer à supprimer des pods d'anciens nœuds, et Kubernetes prévoit automatiquement de les créer dans de nouveaux nœuds. Ensuite, vous devez «drainer» chaque nœud, ce qui entraînera la suppression de tous les foyers du nœud.



Après avoir fait cela pour un nœud, assurez-vous que les nouveaux pods sont prêts et fonctionnent déjà, puis passez au nœud suivant. Si vous avez rencontré des problèmes lors de la migration, exécutez uncordon pour l'ancienne piscine, puis exécutez cordon et drain pour la nouvelle piscine. Dans ce cas, les pods seront automatiquement retransférés dans l'ancien pool. Une fois que tous les pods ont été transférés en toute sécurité, vous pouvez supprimer l'ancien pool. Pour ce faire, remplacez le pool par défaut par le pool que vous souhaitez supprimer.



Le moteur Google Kubernetes vous permet de maintenir votre cluster Kubernetes à jour en quelques clics. Je recommande fortement d'utiliser les clusters régionaux GKE pour les assistants à haute disponibilité et les mises à jour automatiques des nœuds afin d'assurer des mises à jour correctes et sans problème.

Si vous avez besoin d'un contrôle supplémentaire sur le processus de mise à jour des nœuds, vous pouvez le fournir à l'aide de pools, sans renoncer aux avantages de la plate-forme de gestion fournie par GKE.

Si vous n'utilisez pas GKE, utilisez la méthode de roulement de mise à jour continue ou les nœuds de pool de nœuds pour mettre à jour les nœuds de votre cluster. Mais rappelez-vous que dans ce cas, vous devez ajouter manuellement de nouveaux nœuds au cluster et effectuer vous-même les mises à jour critiques, ce qui peut ne pas être assez simple.

A suivre très prochainement ...


Un peu de publicité :)


Merci de rester avec nous. Aimez-vous nos articles? Vous voulez voir des matériaux plus intéressants? Soutenez-nous en passant une commande ou en recommandant à vos amis des VPS basés sur le cloud pour les développeurs à partir de 4,99 $ , un analogue unique de serveurs d'entrée de gamme que nous avons inventés pour vous: Toute la vérité sur les VPS (KVM) E5-2697 v3 (6 cœurs) 10 Go DDR4 480 Go SSD 1 Gbit / s à partir de 19 $ ou comment diviser le serveur? (les options sont disponibles avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go de DDR4).

Dell R730xd 2 fois moins cher au centre de données Equinix Tier IV à Amsterdam? Nous avons seulement 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV à partir de 199 $ aux Pays-Bas!Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - à partir de 99 $! En savoir plus sur la création d'un bâtiment d'infrastructure. classe c utilisant des serveurs Dell R730xd E5-2650 v4 coûtant 9 000 euros pour un sou?

All Articles