6
votes

Ajouter ou modifier le libellé du pool de nœuds existant dans GKE

J'ai créé un cluster GKE avec un pool de nœuds, mais j'ai oublié d'étiqueter les nœuds ... Dans l'interface utilisateur de Google Cloud Platform, je ne peux pas modifier ou ajouter des étiquettes Kubernetes pour le pool de nœuds existant ... Comment puis-je le faire sans recréer tout le pool de nœuds ?

Le champ d'étiquette n'est pas modifiable


0 commentaires

3 Réponses :


0
votes

Vous pouvez modifier la configuration de votre nœud, y compris les étiquettes, avec kubectl :

kubectl edit node <your node name>

Utilisez kubectl get node pour obtenir une liste de vos nœuds. Si vous rencontrez des problèmes pour vous connecter à votre cluster GKE, consultez la documentation ici .


2 commentaires

Non, cette solution ne m'aidera pas car si je redimensionne mon pool de nœuds à 0 et après cela redimensionner à 3, les étiquettes disparaîtront car il y aura de nouveaux nœuds.


Bon point. Je pense que nous n'avons plus d'options, car l'API de mise à jour du pool de nœuds ne gère pas les étiquettes .



4
votes

Il n'est pas possible de modifier les libellés sans recréer les nœuds. Par conséquent, GKE ne prend pas en charge la mise à jour des libellés sur les pools de nœuds.

Dans GKE, les étiquettes Kubernetes sont appliquées aux nœuds par le binaire kubelet qui les reçoit sous forme d'indicateurs transmis via le script de démarrage du nœud. Comme il est tout aussi perturbateur (ou plus perturbateur) de recréer tous les nœuds dans un pool de nœuds que de créer un nouveau pool de nœuds, la mise à jour des étiquettes n'est pas une opération prise en charge pour mettre à jour un pool de nœuds.


3 commentaires

Mais je ne comprends pas la raison pour laquelle c'est impossible. Je vous propose simplement d'ajouter la possibilité d'ajouter la teinte et l'étiquette après la création du pool de nœuds. Il n'y a aucun sens de recréer ou de redémarrer les nœuds du pool pour ajouter une étiquette ou une altération! Alors, quel est le problème?


La façon dont les étiquettes sont actuellement ajoutées se fait via des arguments kubelet. Si le kubelet redémarre, il réappliquera les étiquettes avec lesquelles il a été démarré, effaçant toutes les modifications que vous avez apportées autrement (comme indiqué dans l'autre réponse). La communauté Kubernetes travaille sur la suppression de la capacité du kubelet à s'auto-étiqueter, de sorte que la façon dont cela fonctionne changera à l'avenir et une fois que ce changement sera dans GKE, je m'attendrais à ce que l'API du pool de nœuds de mise à jour prenne en charge le changement dynamique des étiquettes.


Cool. Attendons.



0
votes

Créez un nouveau pool de nœuds comme vous le souhaitez, puis migrez-y votre charge de travail. Détruisez ensuite l'ancienne piscine.

En fonction de votre charge de travail, il peut y avoir un «blip» dans votre service lorsque les pods sont déplacés vers le nouveau nœud.

Je définis deux pools de nœuds: bleu et vert. À tout moment, une seule piscine est en place.

Si j'ai besoin de faire un changement:

  1. Je m'assure que l'automatisation du pool de nœuds descendants correspond au moins à la configuration du pool up.
  2. Ensuite, je fais le changement dans l'automatisation que je veux dans la piscine en panne.
  3. Ensuite, j'évoque cette piscine.
  4. Je garde la migration des charges de travail vers le nouveau pool de nœuds à l'aide de cordon / drain.
  5. Ensuite, je détruis l'ancienne piscine.
  6. Ensuite, je m'assure que l'automatisation de l'ancien, maintenant en bas, correspond à la nouvelle piscine.

Et je suis prêt pour mon prochain changement.

David


0 commentaires