Si les nœuds dans GKE sur Bare Metal échouent, par exemple en raison d'une mauvaise configuration du stockage, du réseau ou de l'OS, vous devez restaurer efficacement l'état du cluster. Après avoir restauré l'état du cluster, vous pouvez résoudre les problèmes liés à la défaillance des nœuds.
Ce document explique comment résoudre les scénarios de défaillance d'un nœud en réinitialisant un nœud et en le supprimant de force si nécessaire.
Si vous souhaitez ajouter des nœuds à un cluster ou en supprimer dans des circonstances normales où un nœud n'a pas échoué, consultez la page Mettre à jour des clusters.
Présentation
En cas de défaillance d'un nœud, vous ne pouvez parfois pas exécuter de commandes de réinitialisation sur les nœuds, car ceux-ci peuvent être inaccessibles. Vous devrez peut-être forcer la suppression du nœud du cluster.
Lorsque vous réinitialisez correctement un nœud et mettez à jour le cluster, les actions suivantes se produisent:
- Le nœud est réinitialisé, comme dans
kubeadm reset
, et la machine revient à l'état préinstallé. - Les références associées au nœud sont supprimées des ressources personnalisées du pool de nœuds et du cluster.
Nœud de calcul
Pour supprimer un nœud d'un cluster, commencez par le supprimer proprement:
Essayez de réinitialiser correctement le nœud. Une fois le nœud réinitialisé, il est supprimé du cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Remplacez les valeurs suivantes :
COMMA_SEPARATED_IP
: adresses IP des nœuds à réinitialiser, par exemple10.200.0.8,10.200.0.9
.CLUSTER_NAME
: nom du cluster cible contenant les nœuds défaillants.ADMIN_KUBECONFIG
: chemin d'accès au fichier kubeconfig du cluster d'administrateur.
Vous pouvez maintenant diagnostiquer le nœud et corriger les erreurs de configuration à l'origine de l'échec initial. Ignorez les étapes restantes de cette section.
Si l'étape précédente de réinitialisation du nœud échoue, vous pouvez forcer le retrait du nœud du cluster. Cette suppression forcée ignore l'étape précédente qui exécute les commandes de réinitialisation. Elle effectue uniquement l'étape qui consiste à supprimer les références associées au nœud du pool de nœuds et des ressources personnalisées du cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG \ --force
Vous pouvez maintenant diagnostiquer le nœud et corriger les erreurs de configuration à l'origine de l'échec initial.
Si vous avez forcé la suppression du nœud du cluster de nœuds à l'étape précédente, exécutez à nouveau la commande
bmctl reset
pour réinitialiser les nœuds:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Échec de nœud du plan de contrôle unique
Le processus est le même que pour les nœuds de calcul. Pour les nœuds du plan de contrôle, bmctl
nettoie également l'appartenance etcd
.
Pour supprimer un nœud d'un cluster, commencez par le supprimer proprement:
Essayez de réinitialiser correctement le nœud. Une fois le nœud réinitialisé, il est supprimé du cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Remplacez les valeurs suivantes :
COMMA_SEPARATED_IP
: adresses IP des nœuds à réinitialiser, par exemple10.200.0.8,10.200.0.9
.CLUSTER_NAME
: nom du cluster cible contenant les nœuds défaillants.ADMIN_KUBECONFIG
: chemin d'accès au fichier kubeconfig du cluster d'administrateur.
Vous pouvez maintenant diagnostiquer le nœud et corriger les erreurs de configuration à l'origine de l'échec initial. Ignorez les étapes restantes de cette section.
Si l'étape précédente de réinitialisation du nœud échoue, vous pouvez forcer le retrait du nœud du cluster. Cette suppression forcée ignore l'étape précédente qui exécute les commandes de réinitialisation. Elle effectue uniquement l'étape qui consiste à supprimer les références associées au nœud du pool de nœuds et des ressources personnalisées du cluster:
bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG \ --force
Vous pouvez maintenant diagnostiquer le nœud et corriger les erreurs de configuration à l'origine de l'échec initial.
Si vous avez forcé la suppression du nœud du cluster de nœuds à l'étape précédente, exécutez à nouveau la commande
bmctl reset
pour réinitialiser les nœuds:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Quorum perdu dans le plan de contrôle haute disponibilité
Si un trop grand nombre de nœuds de plan de contrôle dans un cluster à haute disponibilité bascule en état d'échec, le cluster perd le quorum et devient indisponible.
Pour récupérer un cluster qui a perdu le quorum, exécutez la commande suivante sur un nœud opérationnel restant:
bmctl restore --control-plane-node CONTROL_PLANE_NODE \ --cluster CLUSTER_NAME \ [--kubeconfig KUBECONFIG_FILE]
Remplacez les valeurs suivantes :
CONTROL_PLANE_NODE
: adresses IP d'un nœud sain qui fait partie du cluster.CLUSTER_NAME
: nom du cluster cible contenant les nœuds défaillants.KUBECONFIG_FILE
: en cas de récupération d'un cluster d'utilisateur, il s'agit du chemin d'accès au fichier kubeconfig du cluster d'utilisateur.
Après avoir récupéré les nœuds défaillants, exécutez la commande
bmctl reset
pour les réinitialiser:bmctl reset nodes \ --addresses COMMA_SEPARATED_IPS \ --cluster CLUSTER_NAME \ [--kubeconfig KUBECONFIG_FILE]
Remplacez les valeurs suivantes :
COMMA_SEPARATED_IP
: adresses IP des nœuds à réinitialiser, par exemple10.200.0.8,10.200.0.9
.CLUSTER_NAME
: nom du cluster cible contenant les nœuds défaillants.KUBECONFIG_FILE
: chemin d'accès au fichier kubeconfig du cluster d'administrateur.
Si les nœuds défaillants faisaient partie des pools de nœuds de l'équilibreur de charge, une fois les nœuds récupérés, ils peuvent entrer en conflit pour l'adresse IP virtuelle du plan de contrôle et rendre le nouveau cluster instable. Exécutez les commandes de réinitialisation sur les nœuds défaillants le plus rapidement possible après avoir récupéré les nœuds.
Étapes suivantes
Pour savoir comment ajouter ou supprimer des nœuds dans un cluster en l'absence de défaillance et vérifier l'état des nœuds, consultez la page Mettre à jour des clusters.