Réparer automatiquement des nœuds


Cette page fournit des informations sur la réparation automatique de nœuds dans les clusters Google Kubernetes Engine (GKE).

Présentation

La réparation automatique de nœuds permet de maintenir les nœuds de votre cluster GKE en bon état de fonctionnement. Lorsque cette fonction est activée, GKE vérifie périodiquement l'état de chaque nœud de votre cluster. Si les vérifications d'état réalisées sur un nœud échouent de manière consécutive sur une période prolongée, GKE déclenche un processus de réparation pour ce nœud.

Paramètres pour Autopilot et Standard

Les clusters Autopilot réparent toujours les nœuds de manière automatique. Vous ne pouvez pas désactiver ce paramètre.

Dans les clusters standards, la réparation automatique des nœuds est activée par défaut pour les nouveaux pools de nœuds. Vous pouvez désactiver la réparation automatique pour un pool de nœuds existant, mais nous vous recommandons de conserver la configuration par défaut.

Critères de réparation

GKE utilise l'état du nœud pour déterminer s'il doit être réparé. Un nœud signalant un état Ready est considéré comme sain. GKE déclenche une action de réparation si plusieurs rapports d'état consécutifs d'un nœud signalent des états "non opérationnels" pendant un intervalle de temps dépassant un seuil donné. Un état "non opérationnel" peut signifier :

  • Un nœud renvoie l'état NotReady lors de plusieurs vérifications consécutives sur une durée dépassant le seuil de temps spécifié (environ 10 minutes).
  • Un nœud ne renvoie aucun état sur une durée dépassant le seuil de temps spécifié (environ 10 minutes).
  • Le disque de démarrage d'un nœud n'a plus d'espace disque disponible pendant une période prolongée (environ 30 minutes).

Vous pouvez vérifier manuellement et à tout moment les signaux d'état de votre nœud à l'aide de la commande kubectl get nodes.

Processus de réparation de nœud

Si GKE détecte qu'un nœud doit être réparé, celui-ci est drainé et recréé. GKE attend une heure que le drainage se termine. Si le drainage ne se termine pas, le nœud est arrêté et un autre nœud est créé.

Si plusieurs nœuds nécessitent une réparation, GKE peut les réparer en parallèle. Pour définir le nombre de réparations nécessaires, GKE tient compte de la taille du cluster et de la quantité de nœuds rompus. Sur un cluster de grande taille, GKE réparera davantage de nœuds en parallèle, mais le nombre de réparations de nœuds diminuera à mesure que le nombre de nœuds non opérationnels augmente.

Si vous désactivez la réparation automatique de nœuds n'importe quand durant le processus de réparation, les réparations en cours ne sont pas annulées et se poursuivent jusqu'à leur conclusion sur tous les nœuds en cours de réparation.

Historique des réparations de nœuds

GKE génère une entrée de journal pour les événements de réparation automatique. Vous pouvez vérifier son état à l'aide de la commande suivante :

gcloud container operations list

Réparation automatique des nœuds dans les nœuds TPU

Si vous utilisez un pool de nœuds des tranches TPU multi-hôte, qui est un pool de nœuds contenant au moins deux VM TPU interconnectées, les critères de réparation automatique des nœuds sont différents. Si un nœud TPU dans un pool de nœuds des tranches TPU multi-hôte n'est pas opérationnel et nécessite une réparation automatique, l'intégralité du pool de nœuds est recréé. Pour en savoir plus sur les conditions de nœud TPU, consultez la page Réparation automatique des nœuds TPU.

Activer la réparation automatique pour un pool de nœuds standard existant

Vous activez la réparation automatique de nœuds au niveau du pool de nœuds.

Si la réparation automatique est désactivée sur un pool de nœuds existant dans un cluster standard, utilisez les instructions suivantes pour l'activer :

gcloud

gcloud container node-pools update POOL_NAME \
    --cluster CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --enable-autorepair

Remplacez les éléments suivants :

  • POOL_NAME : nom de votre pool de nœuds.
  • CLUSTER_NAME : nom de votre cluster Standard.
  • COMPUTE_REGION : région Compute Engine du cluster. Pour les clusters zonaux, utilisez l'option --zone COMPUTE_ZONE.

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Cliquez sur l'onglet Nœuds.

  4. Sous Pools de nœuds, cliquez sur le nom du pool de nœuds que vous souhaitez modifier.

  5. Sur la page Détails du pool de nœuds, cliquez sur Modifier.

  6. Sous Gestion, cochez la case Activer la réparation automatique.

  7. Cliquez sur Enregistrer.

Vérifier que la réparation automatique des nœuds standard est activée pour un pool de nœuds

La réparation automatique des nœuds est activée au niveau du pool de nœuds. Vous pouvez vérifier que la réparation automatique des nœuds est activée pour un pool de nœuds de votre cluster à l'aide de Google Cloud CLI ou de la console Google Cloud.

gcloud

Décrivez le pool de nœuds :

gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME

Si la réparation automatique de nœud est activée, le résultat de la commande inclut les lignes suivantes :

management:
  ...
  autoRepair: true

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Sur la page Google Kubernetes Engine, cliquez sur le nom du cluster associé au pool de nœuds que vous souhaitez inspecter.

  3. Cliquez sur l'onglet Nœuds.

  4. Sous Pools de nœuds, cliquez sur le nom du pool de nœuds que vous souhaitez inspecter.

  5. Sous Gestion, dans le champ Réparation automatique, vérifiez que la réparation automatique est activée.

Désactiver la réparation automatique de nœuds

Vous pouvez désactiver la réparation automatique de nœuds pour un pool de nœuds existant dans un cluster Standard à l'aide de gcloud CLI ou de Google Cloud Console.

gcloud

gcloud container node-pools update POOL_NAME \
    --cluster CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --no-enable-autorepair

Remplacez les éléments suivants :

  • POOL_NAME : nom de votre pool de nœuds.
  • CLUSTER_NAME : nom de votre cluster Standard.
  • COMPUTE_REGION : région Compute Engine du cluster. Pour les clusters zonaux, utilisez l'option --zone COMPUTE_ZONE.

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Cliquez sur l'onglet Nœuds.

  4. Sous Pools de nœuds, cliquez sur le nom du pool de nœuds que vous souhaitez modifier.

  5. Sur la page Détails du pool de nœuds, cliquez sur Modifier.

  6. Sous Gestion, décochez la case Activer la réparation automatique.

  7. Cliquez sur Enregistrer.

Étape suivante