web-dev-qa-db-fra.com

Comment supprimer gracieusement un nœud de Kubernetes?

Je souhaite augmenter/réduire le nombre de machines pour augmenter/diminuer le nombre de nœuds dans mon cluster Kubernetes. Lorsque j’ajoute une machine, je peux l’enregistrer avec succès auprès de Kubernetes; Par conséquent, un nouveau nœud est créé comme prévu. Cependant, il n’est pas clair pour moi comment éteindre la machine en douceur plus tard. Un bon flux de travail serait:

  1. Marquez le nœud associé à la machine que je vais arrêter comme non programmable;
  2. Démarrez le (s) pod (s) en cours d’exécution dans le nœud d’autres nœuds;
  3. Supprimez gracieusement le ou les pods en cours d'exécution dans le nœud;
  4. Supprimer le noeud.

Si j'ai bien compris, même kubectl drain _ ( discussion ) ne fait pas ce que j’attends car il ne démarre pas les pods avant de les supprimer (il faut un contrôleur de réplication pour démarrer les pods par la suite, ce qui peut provoquer des temps morts). Est-ce que je manque quelque chose?

Comment dois-je éteindre correctement une machine?

31
Rafael

Listez les nœuds et obtenez le <node-name> vous voulez drainer ou (retirer du cluster)

kubectl get nodes

1) Drainez d'abord le noeud

kubectl drain <node-name>

Vous devrez peut-être ignorer les daemonsets et les données locales de la machine

kubectl drain <node-name> --ignore-daemonsets --delete-local-data

2) Éditer le groupe d'instances pour les nœuds (uniquement si vous utilisez kops)

kops edit ig nodes

Réglez les tailles MIX et MAX à votre guise. -1 Enregistrez simplement le fichier (rien d’autre à faire)

Vous pouvez toujours voir des pods dans le nœud drainé qui sont liés à des daemonsets tels que des plugins réseau, fluentd pour les journaux, kubedns/coredns, etc.

3) Enfin supprimer le noeud

kubectl delete node <node-name>

4) Engagez l'état pour KOPS dans s3:

kops update cluster --yes
26
Amit Thawait

Rafael. kubectl drain fonctionne comme vous le décrivez. Il y a des temps morts, comme si la machine était en panne.

Pouvez-vous décrire votre configuration? Combien de répliques avez-vous et êtes-vous provisionné de sorte que vous ne puissiez pas gérer les temps d'arrêt d'un seul réplica?

4
Matt Liggett