Réinitialiser un nœud défaillant dans les clusters Anthos sur bare metal

En cas de défaillance des nœuds des clusters Anthos sur solution Bare Metal (par exemple, en raison d'une mauvaise configuration du stockage, du réseau ou de l'OS), vous souhaitez restaurer efficacement l'état des clusters. Après avoir restauré l'état du cluster, vous pouvez résoudre le problème de défaillance du nœud.

Ce document explique comment effectuer une reprise après un échec de nœud en réinitialisant et en forçant la suppression d'un nœud si nécessaire.

Si vous souhaitez ajouter ou supprimer des nœuds d'un cluster dans des circonstances normales lorsqu'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, il est parfois impossible d'exécuter des commandes de réinitialisation sur celui-ci, car le nœud risque d'être inaccessible. 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:

  1. Le nœud est réinitialisé, comme pour kubeadm reset, et la machine revient à l'état préinstallé.
  2. Les références associées au nœud sont supprimées du pool de nœuds et des ressources personnalisées du cluster.

Nœud de calcul

Pour supprimer un nœud d'un cluster, commencez par essayer de le supprimer correctement:

  1. 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 exemple 10.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.

  2. Si l'étape précédente de réinitialisation du nœud échoue, vous pouvez forcer sa suppression du cluster. Cette suppression forcée ignore l'étape précédente qui exécute les commandes de réinitialisation et ne fait que 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.

  3. Si vous avez forcé la suppression du nœud du cluster à 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 du 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 essayer de le supprimer correctement:

  1. 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 exemple 10.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.

  2. Si l'étape précédente de réinitialisation du nœud échoue, vous pouvez forcer sa suppression du cluster. Cette suppression forcée ignore l'étape précédente qui exécute les commandes de réinitialisation et ne fait que 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.

  3. Si vous avez forcé la suppression du nœud du cluster à 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 trop de nœuds de plans de contrôle d'un cluster à haute disponibilité passent à l'état "Échec", le cluster perd le quorum et devient indisponible.

  1. Pour récupérer un cluster ayant 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 restant dans le cluster.
    • CLUSTER_NAME: nom du cluster cible contenant les nœuds défaillants.
    • KUBECONFIG_FILE : si vous récupérez un cluster d'utilisateur, il s'agit du chemin d'accès au fichier kubeconfig du cluster d'utilisateur.
  2. Après avoir récupéré les nœuds défaillants, exécutez la commande bmctl reset pour réinitialiser les nœuds:

    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 exemple 10.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, après leur récupération, ils peuvent entrer en conflit pour l'adresse IP virtuelle du plan de contrôle et rendre le nouveau cluster instable. Après avoir récupéré les nœuds, exécutez les commandes de réinitialisation sur les nœuds défaillants aussi vite que possible.

Étapes suivantes

Pour savoir comment ajouter ou supprimer des nœuds d'un cluster en cas de défaillance et vérifier l'état des nœuds, consultez la page Mettre à jour les clusters.