Dépannage des problèmes de noeud pour les grappes Kubernetes à l'aide du script Node Doctor

Découvrez comment utiliser le script Node Doctor pour vous aider à résoudre les problèmes liés aux instances de calcul hébergeant des noeuds de travail dans des grappes que vous avez créées à l'aide de Kubernetes Engine (OKE).

Le script Node Doctor est préinstallé sur les instances de calcul de noeud géré pour vous aider à résoudre les problèmes liés aux instances. Selon la façon dont vous l'exécutez, le script Node Doctor :

  • Affiche la sortie de dépannage qui identifie les zones à problèmes potentiels, avec des liens vers la documentation pour les résoudre.
  • Permet de regrouper les informations système dans un ensemble. My Oracle Support (MOS) fournit des instructions pour charger l'ensemble dans un ticket de soutien.

Si vous voyez des noeuds de travail avec une condition de noeud Kubernetes autre que "Actif" ou avec un état de noeud autre que "Prêt", utilisez le script Node Doctor pour résoudre les problèmes.

Vous pouvez exécuter le script Node Doctor comme suit :

  • utilisation de SSH
  • utilisation de la fonction d'exécution des commandes

Le guide de dépannage des noeuds de travail est un moyen pratique de démarrer le script Node Doctor à partir de la console. Le guide de dépannage des noeuds de travail fournit des commandes alimentées dynamiquement pour exécuter le script Node Doctor à l'aide de SSH ou de la fonction Exécuter une commande. Pour accéder au guide de dépannage des noeuds de travail, sélectionnez le bouton Dépanner les noeuds dans la page Détails du groupe de noeuds, sélectionnez Connexions SSH ou Exécuter la commande, puis suivez les instructions.

Note

  • Le script Node Doctor est préinstallé sur les instances de noeud de travail créées à partir du 19 juillet 2021. Le script Node Doctor n'est pas préinstallé sur les noeuds de travail créés avant le 19 juillet 2021. Pour savoir comment installer le script Node Doctor, voir Téléchargement, installation et mise à jour du script Node Doctor. Notez que pour installer le script Node Doctor sur ces noeuds, vous devez disposer d'un accès SSH.
  • Oracle publie périodiquement de nouvelles versions du script Node Doctor. Avant d'exécuter le script Node Doctor pour la première fois (même sur les noeuds de travail créés après le 19 juillet 2021), suivez les instructions sous Téléchargement, installation et mise à jour du script Node Doctor pour mettre à jour le script vers la dernière version. Il est également recommandé de mettre à jour le script Node Doctor de temps à autre.
  • Vous pouvez exécuter le script Node Doctor sur les noeuds de travail des groupes de noeuds gérés, mais pas dans les groupes de noeuds virtuels.

Utilisation de la fonction Run Command pour exécuter le script Node Doctor

Vous pouvez utiliser la fonction d'exécution de commande pour résoudre des problèmes de noeud et générer un ensemble de soutien à l'aide du script Node Doctor. Pour plus d'informations sur l'utilisation de la fonction Exécuter une commande, voir Exécution de commandes dans une instance.

Pour exécuter le script Node Doctor à l'aide de la fonction Run Command, procédez de l'une des façons suivantes :

  • Utilisez le guide de dépannage des noeuds de travail. Dans la page Détails du groupe de noeuds, sélectionnez Dépanner les noeuds pour afficher le guide de dépannage des noeuds de travail, sélectionnez Exécuter la commande et suivez les instructions.
  • Suivez les étapes de cette section.

Politique IAM requise

Pour les administrateurs : Pour écrire une politique pour la fonction Exécuter une commande, effectuez les opérations suivantes :

  1. Écrivez la politique suivante pour permettre à tout utilisateur d'utiliser la fonction Exécuter la commande pour exécuter des commandes, annuler des commandes et voir la sortie des commandes pour les instances d'un compartiment :
    Allow any-user to use instance-agent-command-execution-family in compartment id <compartment-ocid> where request.instance.id=target.instance.id
  2. Si vous voulez enregistrer la sortie du script Node Doctor dans un seau de stockage d'objets, écrivez la politique suivante :

    Allow any-user to manage objects in compartment id <compartment-ocid-of-bucket> where all { request.principal.type='instance', request.principal.compartment.id='<compartment-ocid-of-node>', target.bucket.name = '<bucket-name>' }
    

    où :

    • <compartment-ocid-of-bucket> est l'OCID du compartiment auquel appartient le seau de stockage d'objets.
    • <compartment-ocid-of-node> est l'OCID du compartiment auquel appartient l'instance de noeud de travail.

Créer la commande pour exécuter le script Node Doctor

Pour créer la commande d'exécution du script Node Doctor sur l'instance :

  1. Dans la page Détails de la grappe, sélectionnez Groupes de noeuds et sélectionnez le groupe de noeuds gérés contenant le noeud géré à dépanner.
  2. Sous Noeuds, sélectionnez le nom du noeud à dépanner pour afficher la page Détails de l'instance.
  3. Sous Ressources, sélectionnez Exécuter la commande.
  4. Sélectionnez Créer une commande.
  5. Entrez le nom de la commande. Évitez d'entrer des informations confidentielles.
  6. Dans la zone Timeout in seconds (Délai d'attente en secondes), entrez le temps nécessaire à accorder au plugiciel d'exécution de commandes dans une instance de calcul pour exécuter la commande sur l'instance avant la temporisation. Le temporisateur démarre lorsque le plugiciel démarre la commande. Pour ne pas utiliser de temporisation, entrez 0.
  7. Dans la section Ajouter un script, chargez le script que le plugiciel d'exécution de commandes dans une instance de calcul doit exécuter sur l'instance. Sélectionnez l'option Coller le script et collez l'une des commandes suivantes dans la zone :
    • sudo /usr/local/bin/node-doctor.sh --check pour imprimer la sortie de dépannage qui identifie les zones à problèmes potentiels, avec des liens vers la documentation pour les traiter.
    • sudo /usr/local/bin/node-doctor.sh --generate &> /dev/null && cat /tmp/oke-support-bundle.tar pour collecter les informations système dans un ensemble. My Oracle Support (MOS) fournit des instructions pour charger l'ensemble dans un ticket de soutien.
    Note

    Les commandes de cette étape supposent que le script Node Doctor se trouve dans /usr/local/bin. Toutefois, dans certains cas, le script Node Doctor peut être situé dans /usr/bin plutôt que dans /usr/local/bin. Si le script Node Doctor est introuvable dans /usr/local/bin, modifiez les commandes et spécifiez /usr/bin à la place.
  8. Dans la section Type de sortie, sélectionnez l'emplacement pour enregistrer la sortie de la commande :
    • Sortie sous forme de texte : La sortie est enregistrée sous forme de texte brut. Vous pouvez vérifier la sortie dans la page Détails de l'instance.
    • Entrée dans un compartiment du service Stockage d'objets : La sortie est enregistrée dans un compartiment du service Stockage d'objets. Sélectionner un seau. Dans la zone Nom de l'objet, entrez le nom du fichier de sortie. Évitez d'entrer des informations confidentielles.
    • Sortir vers une URL du service Stockage d'objets : La sortie est enregistrée vers une URL du service Stockage d'objets. Entrer l'URL.
  9. Sélectionnez Créer une commande.

Affichage de la sortie du script Node Doctor

La façon d'afficher la sortie du script Node Doctor dépend du fait que la sortie ait été enregistrée dans un emplacement de stockage d'objets ou dans un fichier texte brut, comme suit :

  1. Si la sortie du script Node Doctor a été enregistrée dans un emplacement de stockage d'objets, effectuez l'une des opérations suivantes :
  2. Si la sortie du script Node Doctor a été enregistrée en tant que fichier texte brut, effectuez les opérations suivantes :
    1. Ouvrez le menu de navigation et sélectionnez Calcul. Sous Calcul, sélectionnez Instances.
    2. Sélectionnez l'instance qui vous intéresse.
    3. Sous Ressources, sélectionnez Exécuter la commande.
    4. Recherchez la commande dans la liste, sélectionnez le menu Actions (trois points), puis sélectionnez Voir les détails de la commande.

Utilisation de SSH pour exécuter le script Node Doctor

Si vous disposez d'un accès SSH à un noeud géré, vous pouvez exécuter le script Node Doctor à l'aide de SSH pour résoudre les problèmes de noeud et générer un ensemble de soutien à l'aide du script Node Doctor.

Pour exécuter le script Node Doctor à l'aide de SSH, effectuez l'une des opérations suivantes :

  • Utilisez le guide de dépannage des noeuds de travail. Dans la page Détails du groupe de noeuds, sélectionnez Dépanner les noeuds pour afficher le guide de dépannage des noeuds de travail, sélectionnez Connexions SSH et suivez les instructions.
  • Suivez les étapes de cette section.
  1. Établissez une connexion SSH avec l'instance de noeud de travail sur laquelle vous voulez exécuter le script Node Doctor.
    Pour des instructions détaillées pour établir une connexion SSH, voir Connexion à des noeuds gérés à l'aide de SSH. Les étapes générales sont les suivantes :
    1. Recherchez l'adresse IP de l'instance de noeud de travail que vous voulez dépanner et notez-la.

      Par exemple, dans la page Détails de la grappe, sélectionnez Groupes de noeuds, puis sélectionnez le groupe de noeuds contenant le noeud de travail. Sélectionnez Noeuds, puis sélectionnez le nom du noeud qui vous intéresse pour afficher la page Détails de l'instance. L'adresse IP de l'instance est affichée dans l'onglet Informations sur l'instance.

    2. Dans une fenêtre de terminal, entrez ssh opc@<node_ip_address> pour vous connecter au noeud de travail, où <node_ip_address> est l'adresse IP de l'instance du noeud de travail que vous avez notée précédemment. Par exemple, vous pouvez entrer :
      ssh opc@192.0.2.254
      Si la clé privée SSH n'est pas stockée dans le fichier ou le chemin attendu par l'utilitaire SSH (par exemple, l'utilitaire SSH peut attendre que la clé privée soit stockée dans ~/.ssh/id_rsa), vous devez spécifier explicitement le nom de fichier et l'emplacement de la clé privée. Pour plus d'informations, voir Connexion à des noeuds gérés à l'aide de SSH.
  2. Dans la fenêtre de terminal dans laquelle vous avez établi la connexion SSH avec l'instance de noeud de travail, entrez l'une des commandes suivantes :
    • sudo /usr/local/bin/node-doctor.sh --check pour imprimer la sortie de dépannage qui identifie les zones à problèmes potentiels, avec des liens vers la documentation pour les traiter.
    • sudo /usr/local/bin/node-doctor.sh --generate pour collecter les informations système dans un ensemble. My Oracle Support (MOS) fournit des instructions pour charger l'ensemble dans un ticket de soutien.
    Note

    Les commandes de cette étape supposent que le script Node Doctor se trouve dans /usr/local/bin. Toutefois, dans certains cas, le script Node Doctor peut être situé dans /usr/bin plutôt que dans /usr/local/bin. Si le script Node Doctor est introuvable dans /usr/local/bin, modifiez les commandes et spécifiez /usr/bin à la place.

Téléchargement, installation et mise à jour du script Node Doctor

Le script Node Doctor a déjà été préinstallé pour les noeuds de travail créés à partir du 19 juillet 2021.

Le script Node Doctor n'est pas préinstallé sur les noeuds de travail créés avant le 19 juillet 2021. Pour exécuter le script Node Doctor sur un tel noeud de travail, vous devez télécharger et installer le script. Pour télécharger et installer le script Node Doctor, vous devez disposer d'un accès SSH au noeud de travail.

Note

Périodiquement, Oracle publie de nouvelles versions du script Node Doctor. Avant d'exécuter le script Node Doctor pour la première fois (même sur les noeuds de travail créés après le 19 juillet 2021), suivez la dernière étape des instructions ci-dessous pour mettre à jour le script vers la dernière version. Il est également recommandé de mettre à jour le script Node Doctor de temps à autre.

Pour télécharger, installer et mettre à jour le script Node Doctor sur un noeud géré :

  1. Établissez une connexion SSH avec le noeud de travail.
    Pour des instructions détaillées pour établir une connexion SSH, voir Connexion à des noeuds gérés à l'aide de SSH. Les étapes générales sont les suivantes :
    1. Recherchez l'adresse IP de l'instance de noeud de travail que vous voulez dépanner et notez-la.

      Par exemple, dans la page Détails de la grappe, sélectionnez Groupes de noeuds, puis sélectionnez le groupe de noeuds contenant le noeud de travail. Sélectionnez Noeuds, puis sélectionnez le nom du noeud pour afficher la page Détails de l'instance. L'adresse IP de l'instance est affichée dans l'onglet Informations sur l'instance.

    2. Dans une fenêtre de terminal, entrez ssh opc@<node_ip_address> pour vous connecter au noeud de travail, où <node_ip_address> est l'adresse IP du noeud du travail que vous avez notée précédemment. Par exemple, vous pouvez entrer :
      ssh opc@192.0.2.254
      Si la clé privée SSH n'est pas stockée dans le fichier ou le chemin attendu par l'utilitaire SSH (par exemple, l'utilitaire SSH peut attendre que la clé privée soit stockée dans ~/.ssh/id_rsa), vous devez spécifier explicitement le nom de fichier et l'emplacement de la clé privée. Pour plus d'informations, voir Connexion à des noeuds gérés à l'aide de SSH.
  2. Dans la fenêtre de terminal dans laquelle vous avez établi la connexion SSH avec le noeud de travail, téléchargez et installez le script Node Doctor dans le répertoire /usr/local/bin en entrant :
    sudo curl -s -X GET https://objectstorage.<region-name>.oraclecloud.com/n/odx-oke/b/public/o/artifacts/prd/workernode/14d06c9-431/node-doctor --output /usr/local/bin/node-doctor.sh

    <region-name> est la région dans laquelle se trouve la grappe. Par exemple :

    sudo curl -s -X GET https://objectstorage.us-ashburn-1.oraclecloud.com/n/odx-oke/b/public/o/artifacts/prd/workernode/14d06c9-431/node-doctor --output /usr/local/bin/node-doctor.sh

    Avant d'exécuter le script Node Doctor pour la première fois, effectuez l'étape suivante.

  3. Lorsque le script Node Doctor a été téléchargé et installé sur le noeud de travail, obtenez la dernière version du script Node Doctor en entrant :

    sudo /usr/local/bin/node-doctor.sh --update

    Il est recommandé de garder le script Node Doctor à jour en exécutant la commande ci-dessus de temps à autre.

Vous pouvez maintenant utiliser le script Node Doctor pour résoudre les problèmes de noeud de travail.