Solución de problemas de nodos para clusters de Kubernetes mediante el script de doctor de nodo

Descubra cómo utilizar el script de Node Doctor para ayudarle a resolver problemas con instancias informáticas que alojan nodos de trabajador en clusters que ha creado mediante Container Engine for Kubernetes (OKE).

El script Node Doctor está preinstalado en instancias informáticas de nodos gestionados para ayudarle a resolver problemas con las instancias. Según cómo se ejecute, el script Node Doctor:

  • Imprime la salida de resolución de problemas que identifica posibles áreas problemáticas, con enlaces a la documentación para abordar esas áreas.
  • Recopila información del sistema en un paquete. My Oracle Support (MOS) proporciona instrucciones para cargar el paquete en un ticket de soporte.

Si ve nodos de trabajo con una Condición del nodo de Kubernetes que no sea "Activa", o con un Estado del nodo que no sea "Listo", utilice el script Node Doctor para solucionar los problemas.

Puede ejecutar el script Node Doctor de las siguientes formas:

  • uso de SSH
  • uso de la función Run Command

La Guía de solución de problemas de nodos de trabajador es una forma práctica de iniciar el script de Node Doctor desde la consola. La Guía de solución de problemas de nodos de trabajador proporciona comandos rellenados dinámicamente para ejecutar el script Node Doctor mediante SSH o la función Ejecutar comando. Para acceder a la Guía de solución de problemas de nodos de trabajador, haga clic en el botón Solución de problemas de nodos de la página Detalles de pool de nodos, seleccione Conexiones SSH o Ejecutar comando y siga las instrucciones.

Nota

  • El script Node Doctor está preinstalado en instancias de nodo de trabajador creadas a partir del 19 de julio de 2021. Los nodos de trabajador creados antes del 19 de julio de 2021 no tienen el script de Node Doctor preinstalado. Para obtener información sobre cómo instalar el script Node Doctor, consulte Descarga, instalación y actualización del script Node Doctor. Tenga en cuenta que para instalar el script Node Doctor en dichos nodos, debe tener acceso SSH a ellos.
  • Oracle publica periódicamente nuevas versiones del script de Node Doctor. Antes de ejecutar el script de Node Doctor por primera vez (incluso en nodos de trabajador creados después del 19 de julio de 2021), siga las instrucciones de Descarga, instalación y actualización del script de Node Doctor para actualizar el script a la última versión. También se recomienda actualizar el script Node Doctor de vez en cuando.
  • Puede ejecutar el script Node Doctor en nodos de trabajador en pools de nodos gestionados, pero no en pools de nodos virtuales.

Uso de la función Run Command para ejecutar la secuencia de comandos Node Doctor

Puede usar la función Ejecutar comando para solucionar los problemas de los nodos y generar un grupo de soporte mediante el script de Node Doctor. Para obtener más información sobre el uso de la función Ejecutar comando, consulte Ejecución de comandos en una instancia.

Para ejecutar la secuencia de comandos Node Doctor mediante la función Run Command, realice una de las siguientes acciones:

  • Utilice la Guía de solución de problemas de nodos de trabajador. En la página Detalles de pool de nodos, haga clic en Solución de problemas de nodos para mostrar la Guía de solución de problemas de nodos de trabajador, seleccione Ejecutar comando y siga las instrucciones.
  • Siga los pasos de esta sección.

Política de IAM necesaria

Para administradores: para escribir una política para la función de ejecución de comando, realice lo siguiente:

  1. Escriba la siguiente política para permitir que cualquier usuario utilice la función Ejecutar comando para emitir comandos, cancelar comandos y ver la salida del comando para las instancias de un compartimento:
    Allow any-user to use instance-agent-command-execution-family in compartment id <compartment-ocid> where request.instance.id=target.instance.id
  2. Si desea guardar la salida del script Node Doctor en un cubo de Object Storage, escriba la siguiente política:

    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>' }
    

    donde:

    • <compartment-ocid-of-bucket> es el OCID del compartimento al que pertenece el cubo de Object Storage.
    • <compartment-ocid-of-node> es el OCID del compartimento al que pertenece la instancia de nodo de trabajador.

Creación del comando para ejecutar la secuencia de comandos Node Doctor

Para crear el comando que ejecute el script Node Doctor en la instancia:

  1. En la página Detalles de cluster, haga clic en Pools de nodos y en el pool de nodos gestionados que contiene el nodo gestionado que desea solucionar.
  2. En Nodos, haga clic en el nombre del nodo que desea solucionar para mostrar la página Detalles de instancia.
  3. En Recursos, haga clic en Ejecutar comando.
  4. Haga clic en Crear comando.
  5. Introduzca un nombre para el comando. Evite introducir información confidencial.
  6. En el cuadro Timeout en segundos, introduzca la cantidad de tiempo que desea proporcionar al plugin Compute Instance Run Command para que ejecute el comando en la instancia antes del timeout. El temporizador se inicia cuando el plugin inicia el comando. Si no hay timeout, introduzca 0.
  7. En la sección Agregar script, cargue el script que desea que el plugin Compute Instance Run Command ejecute en la instancia. Seleccione la opción Pegar script y pegue uno de los siguientes comandos en el cuadro:
    • sudo /usr/local/bin/node-doctor.sh --check para imprimir la salida de resolución de problemas que identifica posibles áreas problemáticas, con enlaces a la documentación para abordar esas áreas.
    • sudo /usr/local/bin/node-doctor.sh --generate &> /dev/null && cat /tmp/oke-support-bundle.tar para recopilar información del sistema en un paquete. My Oracle Support (MOS) proporciona instrucciones para cargar el paquete en un ticket de soporte.
  8. En la sección Tipo de salida, seleccione la ubicación en la que desea guardar la salida del comando:
    • Generar salida como texto: la salida se guarda como texto sin formato. Puede revisar la salida en la página Detalles de instancia.
    • Generar salida a un cubo de almacenamiento de objetos: la salida se guarda en un cubo de Object Storage. Seleccionar un cubo. En el cuadro Nombre de objeto, introduzca un nombre para el archivo de salida. Evite introducir información confidencial.
    • Generar salida a una URL de almacenamiento de objetos: la salida se guarda en una URL de Object Storage. Introduzca la URL.
  9. Haga clic en Crear comando.

Visualización de la salida del script Node Doctor

La forma de ver la salida del script Node Doctor depende de si la salida se ha guardado en una ubicación de Object Storage o como un archivo de texto sin formato, de la siguiente manera:

  1. Si la salida del script Node Doctor se ha guardado en una ubicación de Object Storage, realice una de las siguientes acciones:
  2. Si la salida del script Node Doctor se ha guardado como archivo de texto sin formato, realice lo siguiente:
    1. Abra el menú de navegación y haga clic en Recursos informáticos. En Recursos informáticos, haga clic en Instancias.
    2. Haga clic en la instancia en la que está interesado.
    3. En Recursos, haga clic en Ejecutar comando.
    4. Busque el comando en la lista, haga clic en el menú Acciones (Menú Acciones) y, a continuación, haga clic en Ver detalles de comando.

Uso de SSH para ejecutar el script Node Doctor

Si tiene acceso SSH a un nodo gestionado, puede ejecutar el script Node Doctor mediante SSH para solucionar problemas de nodo y generar un paquete de soporte mediante el script Node Doctor.

Para ejecutar la secuencia de comandos Node Doctor mediante SSH, realice una de las siguientes acciones:

  • Utilice la Guía de solución de problemas de nodos de trabajador. En la página Detalles de pool de nodos, haga clic en Solución de problemas de nodos para mostrar la Guía de solución de problemas de nodos de trabajador, seleccione Conexiones SSH y siga las instrucciones.
  • Siga los pasos de esta sección.
  1. Establezca una conexión SSH con la instancia de nodo de trabajador en la que desea ejecutar el script Node Doctor.
    Para obtener instrucciones detalladas sobre cómo establecer una conexión SSH, consulte Conexión a nodos gestionados mediante SSH. En un nivel superior, los pasos son los siguientes:
    1. Busque la dirección IP de la instancia de nodo de trabajador que desea solucionar y anótela.

      Por ejemplo, en la página Detalles de cluster, haga clic en Pools de nodos y, a continuación, en el pool de nodos que contiene el nodo de trabajador. Haga clic en Nodos y, a continuación, haga clic en el nombre del nodo en el que está interesado para mostrar la página Detalles de instancia. La dirección IP de la instancia se muestra en el separador Información de instancia.

    2. En una ventana de terminal, introduzca ssh opc@<node_ip_address> para conectarse al nodo de trabajador, donde <node_ip_address> es la dirección IP de la instancia de nodo de trabajador que anotó anteriormente. Puede introducir, por ejemplo:
      ssh opc@192.0.2.254
      Si la clave privada SSH no está almacenada en el archivo o en la ruta de acceso que la utilidad SSH espera (por ejemplo, la utilidad SSH puede esperar que la clave privada se almacene en ~/.ssh/id_rsa), debe especificar explícitamente la ubicación y el nombre de archivo de la clave privada. Para obtener más información, consulte Conexión a nodos gestionados con SSH.
  2. En la ventana de terminal en la que ha establecido la conexión SSH con la instancia de nodo de trabajador, introduzca uno de los siguientes comandos:
    • sudo /usr/local/bin/node-doctor.sh --check para imprimir la salida de resolución de problemas que identifica posibles áreas problemáticas, con enlaces a la documentación para abordar esas áreas.
    • sudo /usr/local/bin/node-doctor.sh --generate para recopilar información del sistema en un paquete. My Oracle Support (MOS) proporciona instrucciones para cargar el paquete en un ticket de soporte.

Descarga, instalación y actualización del script Node Doctor

Los nodos de trabajador creados a partir del 19 de julio de 2021 ya tienen preinstalado el script de Node Doctor.

Los nodos de trabajador creados antes del 19 de julio de 2021 no tienen el script de Node Doctor preinstalado. Para ejecutar el script Node Doctor en dicho nodo de trabajador, debe descargar e instalar el script. Para descargar e instalar el script Node Doctor, debe tener acceso SSH al nodo de trabajador.

Nota

De forma periódica, Oracle publica nuevas versiones del script Node Doctor. Antes de ejecutar el script Node Doctor por primera vez (incluso en nodos de trabajador creados después del 19 de julio de 2021), siga el paso final de las siguientes instrucciones para actualizar el script a la última versión. También se recomienda actualizar el script Node Doctor de vez en cuando.

Para descargar, instalar y actualizar el script de Node Doctor en un nodo gestionado:

  1. Establezca una conexión SSH con el nodo de trabajador.
    Para obtener instrucciones detalladas sobre cómo establecer una conexión SSH, consulte Conexión a nodos gestionados mediante SSH. En un nivel superior, los pasos son los siguientes:
    1. Busque la dirección IP de la instancia de nodo de trabajador que desea solucionar y anótela.

      Por ejemplo, en la página Detalles de cluster, haga clic en Pools de nodos y, a continuación, en el pool de nodos que contiene el nodo de trabajador. Haga clic en Nodos y, a continuación, en el nombre del nodo para ver la página Detalles de instancia. La dirección IP de la instancia se muestra en el separador Información de instancia.

    2. En una ventana de terminal, introduzca ssh opc@<node_ip_address> para conectarse al nodo de trabajador, donde <node_ip_address> es la dirección IP del nodo de trabajador que anotó anteriormente. Puede introducir, por ejemplo:
      ssh opc@192.0.2.254
      Si la clave privada SSH no está almacenada en el archivo o en la ruta de acceso que la utilidad SSH espera (por ejemplo, la utilidad SSH puede esperar que la clave privada se almacene en ~/.ssh/id_rsa), debe especificar explícitamente la ubicación y el nombre de archivo de la clave privada. Para obtener más información, consulte Conexión a nodos gestionados con SSH.
  2. En la ventana de terminal en la que ha establecido la conexión SSH con el nodo de trabajador, descargue e instale el script Node Doctor en el directorio /usr/local/bin introduciendo:
    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

    donde <region-name> es la región en la que se encuentra el cluster. Por ejemplo:

    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

    Antes de ejecutar el script Node Doctor por primera vez, complete el siguiente paso.

  3. Cuando se haya descargado e instalado el script de Node Doctor en el nodo de trabajador, obtenga la última versión del script de Node Doctor introduciendo:

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

    Se recomienda mantener actualizado el script de Node Doctor ejecutando el comando anterior de vez en cuando.

Ahora puede utilizar el script de Node Doctor para solucionar las incidencias del nodo de trabajo.