Résolution des problèmes de noeud pour les clusters Kubernetes à l'aide du script Node Doctor
Découvrez comment utiliser le script Node Doctor pour résoudre les problèmes liés aux instances de calcul hébergeant des noeuds de processus actif dans des clusters créés à l'aide de Kubernetes Engine (OKE).
Le script Node Doctor est préinstallé sur les instances de calcul de noeud gérées 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 :
- Imprime la sortie de dépannage qui identifie les zones de problèmes potentiels, avec des liens vers la documentation pour traiter ces zones.
- Collecte les informations système dans un bundle. My Oracle Support (MOS) fournit des instructions pour télécharger le lot vers un ticket d'assistance.
Si vous voyez des noeuds de processus actif dont la valeur Condition de noeud Kubernetes n'est pas Actif ou dont la valeur Etat de noeud n'est pas Prêt, utilisez le script Node Doctor pour résoudre les problèmes.
Vous pouvez exécuter le script Node Doctor de l'une des manières suivantes :
- à l'aide de SSH
- utilisation de la fonctionnalité Run Command
Le Guide de dépannage des noeuds de processus actif est un moyen pratique de démarrer le script Node Doctor à partir de la console. Le Guide de dépannage des noeuds de processus actif fournit des commandes remplies dynamiquement pour exécuter le script Node Doctor à l'aide de SSH ou de la fonction Exécuter la commande. Pour accéder au Guide de dépannage des noeuds de processus actif, cliquez sur le bouton Dépannage des noeuds sur la page Détails du pool de noeuds, sélectionnez Connexions SSH ou Commande d'exécution, puis suivez les instructions.
- Le script Node Doctor est préinstallé sur les instances de noeud de processus actif créées à partir du 19 juillet 2021. Le script Node Doctor n'est pas préinstallé sur les noeuds de processus actif créés avant le 19 juillet 2021. Pour savoir comment installer le script Node Doctor, reportez-vous à la section 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 à ces derniers.
- Oracle publie régulièrement 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 processus actif créés après le 19 juillet 2021), suivez les instructions de la section 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 des noeuds de processus actif dans des pools de noeuds gérés, mais pas dans des pools de noeuds virtuels.
Utilisation de la fonction Run Command pour exécuter le script Node Doctor
Vous pouvez utiliser la fonctionnalité Commande d'exécution pour dépanner les problèmes de noeud et générer un package de support technique à l'aide du script Node Doctor. Pour plus d'informations sur l'utilisation de la fonctionnalité Exécuter la commande, reportez-vous à la section Running Commands on an Instance.
Pour exécuter le script Node Doctor à l'aide de la fonction Run Command, effectuez l'une des opérations suivantes :
- Utilisez le Guide de dépannage des noeuds de travail. Sur la page Détails du pool de noeuds, cliquez sur Résoudre les problèmes liés aux noeuds pour afficher le Guide de dépannage des noeuds de processus actif, sélectionnez Commande d'exécution et suivez les instructions.
- Suivez les étapes de cette section.
Stratégie IAM requise
Pour les administrateurs : afin d'écrire une stratégie pour la fonctionnalité d'exécution de commande, procédez comme suit :
- Ecrivez la stratégie suivante pour permettre à tout utilisateur d'utiliser la fonctionnalité Exécuter la commande pour émettre des commandes, annuler des commandes et visualiser la sortie de commande 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
-
Pour enregistrer la sortie du script Node Doctor dans un bucket Object Storage, écrivez la stratégie 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 le bucket Object Storage appartient.<compartment-ocid-of-node>
est l'OCID du compartiment auquel l'instance de noeud de processus actif appartient.
Création de la commande permettant d'exécuter le script Node Doctor
Pour créer la commande permettant d'exécuter le script Node Doctor sur l'instance, procédez comme suit :
- Sur la page Détails du cluster, cliquez sur Pools de noeuds, puis sur le pool de noeuds gérés contenant le noeud géré à dépanner.
- Sous Noeuds, cliquez sur le nom du noeud à dépanner pour afficher la page Détails de l'instance.
- Sous Ressources, cliquez sur Commande d'exécution.
- Cliquez sur Créer une commande.
- Entrez le nom de la commande. Evitez de saisir des informations confidentielles.
- Dans la zone Délai d'expiration (en secondes), entrez le temps à allouer au module d'extension d'exécution de commandes sur les instances de calcul pour l'exécution de la commande sur l'instance. Le décompte démarre lorsque le module d'extension commence l'exécution de la commande. Pour ne pas définir de délai d'expiration, entrez 0.
- Dans la section Ajouter un script, téléchargez le script que le module d'extension d'exécution de commandes sur les instances 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ématiques potentielles, avec des liens vers la documentation pour traiter ces zones.sudo /usr/local/bin/node-doctor.sh --generate &> /dev/null && cat /tmp/oke-support-bundle.tar
pour collecter les informations système dans un bundle. My Oracle Support (MOS) fournit des instructions pour télécharger le lot vers un ticket d'assistance.
- Dans la section Type de sortie, sélectionnez l'emplacement dans lequel enregistrer la sortie de la commande :
- Sortie au format texte : la sortie est enregistrée en texte brut. Vous pouvez consulter la sortie sur la page Détails de l'instance.
- Sortie vers un bucket Object Storage : la sortie est enregistrée dans un bucket Object Storage. Sélectionnez un bucket. Dans la zone Nom d'objet, saisissez le nom du fichier de sortie. Evitez de saisir des informations confidentielles.
- Sortie vers une URL Object Storage : la sortie est enregistrée dans une URL Object Storage. Entrez l'URL.
- Cliquez sur Créer une commande.
Affichage de la sortie du script Node Doctor
Le mode d'affichage de la sortie du script Node Doctor varie selon que la sortie a été enregistrée dans un emplacement Object Storage ou dans un fichier texte brut, comme suit :
- Si la sortie du script Node Doctor a été enregistrée dans un emplacement Object Storage, effectuez l'une des opérations suivantes :
- Téléchargez l'objet de réponse à partir du bucket dans lequel il a été enregistré.
- Accédez à l'URL de demande pré-authentifiée d'Object Storage.
- Si la sortie du script Node Doctor a été enregistrée en texte brut, procédez comme suit :
- Ouvrez le menu de navigation et sélectionnez Compute. Sous Compute, sélectionnez Instances.
- Cliquez sur l'instance qui vous intéresse.
- Sous Ressources, cliquez sur Commande d'exécution.
- Recherchez la commande dans la liste, cliquez sur le menu , puis sur Afficher 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 lot d'informations pour le support à l'aide du script Node Doctor.
Pour exécuter le script Node Doctor à l'aide de SSH, procédez comme suit :
- Utilisez le Guide de dépannage des noeuds de travail. Sur la page Détails du pool de noeuds, cliquez sur Résoudre les problèmes liés aux noeuds pour afficher le Guide de dépannage des noeuds de processus actif, sélectionnez Connexions SSH et suivez les instructions.
- Suivez les étapes de cette section.
- Etablissez une connexion SSH avec l'instance de noeud de processus actif sur laquelle vous voulez exécuter le script Node Doctor.Pour obtenir des instructions détaillées sur l'établissement d'une connexion SSH, reportez-vous à Connexion aux noeuds gérés à l'aide de SSH. Les étapes sont les suivantes :
- Recherchez l'adresse IP de l'instance de noeud de processus actif à dépanner et notez-la.
Par exemple, sur la page Détails du cluster, cliquez sur Pools de noeuds, puis sur le pool de noeuds contenant le noeud de processus actif. Cliquez sur Noeuds, puis sur 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.
- Dans une fenêtre de terminal, entrez
ssh opc@<node_ip_address>
pour vous connecter au noeud de processus actif, où<node_ip_address>
est l'adresse IP de l'instance de noeud de processus actif que vous avez notée précédemment. Par exemple :
Si la clé privée SSH n'est pas stockée dans le fichier ou dans le chemin attendu par l'utilitaire SSH (par exemple, l'utilitaire SSH peut contenir la clé privée dans ~/.ssh/id_rsa), vous devez indiquer explicitement l'emplacement et le nom de fichier de la clé privée. Pour plus d'informations, reportez-vous à Connexion à des noeuds gérés à l'aide de SSH.ssh opc@192.0.2.254
- Recherchez l'adresse IP de l'instance de noeud de processus actif à dépanner et notez-la.
- Dans la fenêtre de terminal dans laquelle vous avez établi la connexion SSH avec l'instance de noeud de processus actif, 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ématiques potentielles, avec des liens vers la documentation pour traiter ces zones.sudo /usr/local/bin/node-doctor.sh --generate
pour collecter les informations système dans un bundle. My Oracle Support (MOS) fournit des instructions pour télécharger le lot vers un ticket d'assistance.
Téléchargement, installation et mise à jour du script Node Doctor
Le script Node Doctor est déjà préinstallé sur les noeuds de processus actif créés à partir du 19 juillet 2021.
Le script Node Doctor n'est pas préinstallé sur les noeuds de processus actif créés avant le 19 juillet 2021. Pour exécuter le script Node Doctor sur un tel noeud de processus actif, 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 processus actif.
Oracle publie régulièrement 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 processus actif 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é, procédez comme suit :
- Etablissez une connexion SSH avec le noeud de processus actif.Pour obtenir des instructions détaillées sur l'établissement d'une connexion SSH, reportez-vous à Connexion aux noeuds gérés à l'aide de SSH. Les étapes sont les suivantes :
- Recherchez l'adresse IP de l'instance de noeud de processus actif à dépanner et notez-la.
Par exemple, sur la page Détails du cluster, cliquez sur Pools de noeuds, puis sur le pool de noeuds contenant le noeud de processus actif. Cliquez sur Noeuds, puis sur 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.
- Dans une fenêtre de terminal, entrez
ssh opc@<node_ip_address>
pour vous connecter au noeud de processus actif, où<node_ip_address>
est l'adresse IP du noeud de processus actif que vous avez notée précédemment. Par exemple :
Si la clé privée SSH n'est pas stockée dans le fichier ou dans le chemin attendu par l'utilitaire SSH (par exemple, l'utilitaire SSH peut contenir la clé privée dans ~/.ssh/id_rsa), vous devez indiquer explicitement l'emplacement et le nom de fichier de la clé privée. Pour plus d'informations, reportez-vous à Connexion à des noeuds gérés à l'aide de SSH.ssh opc@192.0.2.254
- Recherchez l'adresse IP de l'instance de noeud de processus actif à dépanner et notez-la.
- Dans la fenêtre de terminal dans laquelle vous avez établi la connexion SSH avec le noeud de processus actif, téléchargez et installez le script Node Doctor dans le répertoire
/usr/local/bin
en saisissant la commande suivante :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
où
<region-name>
est la région dans laquelle se trouve le cluster. 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.
-
Une fois le script Node Doctor téléchargé et installé sur le noeud de processus actif, obtenez la dernière version du script Node Doctor en saisissant ce qui suit :
sudo /usr/local/bin/node-doctor.sh --update
Il est recommandé de maintenir le script Node Doctor à jour en exécutant la commande ci-dessus de temps à autre.
Vous pouvez désormais utiliser le script Doctor pour résoudre les problèmes liés aux noeuds de processus actif.