Reinicio de nodos de trabajador

Descubra cómo reiniciar un nodo de trabajador en un cluster de Kubernetes que ha creado con Kubernetes Engine (OKE).

Nota

Solo puede sincronizar nodos para reiniciar nodos de trabajador al utilizar clusters mejorados. Consulte Trabajar con clusters mejorados y clusters básicos.

Puede sincronizar nodos para reiniciar nodos con unidades de máquina virtual y unidades con hardware dedicado.

Puede sincronizar los nodos para reiniciar los nodos gestionados y los nodos autogestionados.

En ocasiones, el reinicio de un nodo de trabajador es la mejor manera de resolver un problema con la instancia informática que aloja el nodo de trabajador. Al reiniciar un nodo de trabajador, se enciende la instancia informática, lo que, por ejemplo, borraría todas las reglas de las iptables de la instancia informática. En el caso de las instancias informáticas de GPU con hardware dedicado, el reinicio de un nodo de trabajador puede resolver problemas como:

  • Reducción del rendimiento del trabajo o limitación térmica, causada por altas temperaturas de memoria de GPU.
  • Informes de menos del número esperado de GPU.
  • Errores NVLink, indicados por el error de inicio de NVIDIA Fabric Manager o por el error de ejecución de los trabajos de NCCL.

Con Kubernetes Engine, puede:

  • Reinicie nodos gestionados específicos.
  • Reinicie nodos autogestionados específicos.

Al sincronizar y reiniciar un nodo de trabajador, Kubernetes Engine automáticamente conecta y drena el nodo de trabajador antes de cerrarlo. La instancia informática que aloja el nodo de trabajador se reinicia. El comando de cierre que se envía a la instancia informática que aloja el nodo de trabajador depende del número de minutos que especifique como período de gracia de expulsión (el tiempo que se tarda en acordonar y drenar los nodos de trabajador):

  • Si especifica un período de gracia de expulsión de cero minutos, se envía un comando RESET a la instancia informática. La instancia se apaga inmediatamente y, a continuación, se vuelve a encender.
  • Si especifica un período de gracia de expulsión superior a cero minutos, se envía un comando SOFTRESET a la instancia informática. Tras esperar 15 minutos para que el sistema operativos se cierre, la instancia se apaga y, luego, se vuelve a encender.

Tenga en cuenta que la instancia en sí no termina y mantiene el mismo OCID y la misma dirección de red.

Tenga en cuenta las siguientes consideraciones al sincronizar para reiniciar los nodos de trabajador:

  • Debe sincronizar y reiniciar los nodos gestionados de forma individual. No puede seleccionar un pool de nodos gestionado y sincronizar y reiniciar todos los nodos gestionados que contiene.
  • Puede utilizar la consola, la CLI o la API para sincronizar y reiniciar los nodos gestionados.
  • Debe utilizar la CLI o la API para sincronizar y reiniciar los nodos autogestionados. No puede utilizar la consola para sincronizar y reiniciar nodos autogestionados.

Conexión de cables y drenaje al sincronizar y reiniciar nodos

Cuando selecciona un nodo de trabajador individual (ya sea un nodo gestionado o un nodo autogestionado) y especifica que desea sincronizar y reiniciar ese nodo, puede especificar las opciones Cordón y vaciado. En el caso de los nodos gestionados, las opciones de cordón y vaciado que especifique para un nodo gestionado sustituyen las opciones de cordón y vaciado especificadas para el pool de nodos.

Para obtener más información, consulte Cordoning and Draining Managed Nodes Before Shut Down or Termination.

Reinicio de nodos de trabajador

  • Para reiniciar un nodo gestionado específico:

    1. En la página de lista Clusters, seleccione el nombre del cluster que contiene el nodo de trabajador que desea reiniciar. Si necesita ayuda para encontrar la página de lista o el cluster, consulte Listing Clusters.
    2. En Recursos, seleccione Pools de nodos y, a continuación, seleccione el nombre del pool de nodos que contiene el nodo de trabajador que desea reiniciar.
    3. Seleccione Nodo de ciclo en el menú Acciones junto al nodo que desea reiniciar.

    4. En el cuadro de diálogo Nodo de ciclo:
      1. Seleccione Reboot node (Reiniciar nodo) en la lista Cycling options (Opciones de ciclo).
      2. Especifique cuándo y cómo acordonar y vaciar el nodo de trabajador antes de realizar la acción de reinicio especificando:

        • Período de gracia de expulsión (minutos): período de tiempo que se permite acordonar y vaciar el nodo de trabajador antes de realizar la acción. Acepte el valor predeterminado (60 minutos) o especifique una alternativa. Por ejemplo, puede que desee permitir 30 minutos para acordonar un nodo de trabajador y vaciarlo de sus cargas de trabajo. Para realizar la acción inmediatamente, sin acordonar ni drenar el nodo de trabajador, especifique 0 minutos.
        • Forzar acción después del período de gracia: indica si se debe realizar la acción al final del período de gracia de desalojo, incluso si el nodo de trabajador no se ha corregido y drenado correctamente. Por defecto, esta opción no está seleccionada.

        Consulte Cordoning and Draining Managed Nodes Before Shut Down or Termination.

      3. Seleccione Nodo de ciclo para iniciar la operación de reinicio.
    5. Supervise el progreso de la operación visualizando el estado de la solicitud de trabajo asociada en la página Detalles de cluster (consulte Obtención de detalles de una solicitud de trabajo).

  • Para reiniciar un nodo gestionado específico o un nodo autogestionado

    Para reiniciar un nodo gestionado específico o un nodo autogestionado, utilice el comando oci ce cluster reboot-cluster-node y los parámetros necesarios:

    oci ce cluster reboot-cluster-node --cluster-id <cluster-ocid> --node-id <instance-ocid> [OPTIONS]

    Por ejemplo:

    oci ce cluster reboot-cluster-node --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd --node-id ocid1.instance.oc1.iad.anu__flq --node-eviction-settings "{\"evictionGraceDuration\": \"PT0M\",\"isForceActionAfterGraceDuration\": true}"
  • Para reiniciar un nodo gestionado específico mediante la API de OCI:

    Ejecute la operación RebootClusterNode para reiniciar un nodo gestionado específico mediante la API de OCI.

    Para reiniciar un nodo gestionado o un nodo autogestionado mediante la API de Kubernetes:

    Nota

    Para utilizar la API de Kubernetes para reiniciar un nodo gestionado o un nodo autogestionado que utiliza una imagen personalizada (en lugar de una imagen de plataforma o una imagen de OKE), una política de IAM debe proporcionar acceso a la imagen personalizada. Si dicha política aún no existe, cree una política con la siguiente sentencia de política:

    ALLOW any-user to read instance-images in TENANCY where request.principal.type = 'cluster'

    Consulte Configuración de políticas para despliegue y creación de clusters.

    1. Cree un archivo yaml para definir un recurso personalizado NodeOperationRule, similar al siguiente:
      apiVersion: oci.oraclecloud.com/v1beta1
      kind: NodeOperationRule
      metadata:
        name: <rule-name>
      spec:
        actions:
          - "reboot"
        nodeSelector:
          matchTriggerLabel:
            oke.oraclecloud.com/node_operation: "<value>"
          matchCustomLabels:
            <custom-key>: "<value>"
        maxParallelism: <n>
        nodeEvictionSettings:
          evictionGracePeriod: <number-of-minutes>
          isForceActionAfterGraceDuration: <true|false>
      

      donde:

      • name: <rule-name> especifica el nombre que elija para el recurso personalizado NodeOperationRule. Por ejemplo, name: my-reboot-rule
      • oke.oraclecloud.com/node_operation: "<value>" especifica un valor de su elección para la clave de etiqueta oke.oraclecloud.com/node_operation. Los nodos que desea reiniciar deben tener este par clave-valor de etiqueta asociado. Por ejemplo:
            matchTriggerLabel:
              oke.oraclecloud.com/node_operation: "my-reboot-value"

        Tenga en cuenta que el valor que especifique para la clave de etiqueta oke.oraclecloud.com/node_operation debe cumplir los requisitos del tema Etiquetas y selectores de la documentación de Kubernetes. Solo están soportados los requisitos basados en la igualdad de Kubernetes.

      • matchCustomLabels también especifica una etiqueta personalizada con un par clave-valor de su elección con el formato <custom-key>: "<value>". Opcionalmente, puede especificar un par clave-valor de etiqueta personalizado para que se ajuste a su propio caso de uso particular. Por ejemplo:
            matchCustomLabels:
              deployment: "green"

        El par de clave-valor de etiqueta personalizada que especifique debe cumplir los requisitos del tema Etiquetas y selectores de la documentación de Kubernetes. Solo están soportados los requisitos basados en la igualdad de Kubernetes.

        Tenga en cuenta que si especifica un par clave-valor de etiqueta personalizada en el manifiesto, los nodos solo se reinician si tienen esta etiqueta personalizada y la etiqueta oke.oraclecloud.com/node_operation: "<value>".

      • maxParallelism: <n> especifica el número de nodos de trabajador que se deben reiniciar en paralelo, hasta un máximo de 20.
      • evictionGracePeriod: <number-of-minutes> especifica el tiempo que debe transcurrir para permitir acordonar y drenar los nodos de trabajador antes de reiniciarlos. Acepte el valor predeterminado (60 minutos) o especifique una alternativa. Por ejemplo, puede que desee permitir 30 minutos para acordonar nodos de trabajador y drenarlos de sus cargas de trabajo. Para reiniciar los nodos de trabajador inmediatamente, sin acordonarlos ni drenarlos, especifique 0 minutos.
      • isForceActionAfterGraceDuration: <true|false> especifica si se deben reiniciar los nodos de trabajador al final del período de gracia de desalojo, incluso si no se han corregido y drenado correctamente. El valor por defecto es false si no se especifica.

      Por ejemplo:

      apiVersion: oci.oraclecloud.com/v1beta1
      kind: NodeOperationRule
      metadata:
        name: my-reboot-rule
      spec:
        actions:
          - "reboot"
        nodeSelector:
          matchTriggerLabel:
            oke.oraclecloud.com/node_operation: "my-reboot-value"
          matchCustomLabels:
            deployment: "green"
        maxParallelism: 2
        nodeEvictionSettings:
          evictionGracePeriod: 300
          isForceActionAfterGraceDuration: true
      
    2. Utilice kubectl para aplicar el archivo yaml al cluster introduciendo:

      kubectl apply -f <filename>.yaml
    3. Utilice kubectl para confirmar que el recurso personalizado NodeOperationRule se ha creado correctamente introduciendo:

      kubectl get nor
    4. Utilice kubectl para agregar una etiqueta al nodo que especifique el valor para la clave de etiqueta oke.oraclecloud.com/node_operation introduciendo:

      kubectl label node <node-name> oke.oraclecloud.com/node_operation=<value>

      Por ejemplo:

      kubectl label node 10.0.10.53 oke.oraclecloud.com/node_operation=my-reboot-value
    5. Si ha incluido un elemento matchCustomLabels en el manifiesto para especificar un par clave-valor de etiqueta personalizado, utilice kubectl para agregar una etiqueta al nodo que especifique el par clave-valor introduciendo:
      kubectl label node <node-name> <custom-key>=<value>

      Por ejemplo:

      kubectl label node 10.0.10.53 deployment=green
    6. (Opcional) Puede ver la acción de reinicio del nodo en curso introduciendo:

      kubectl describe nor <rule-name>
      Por ejemplo:
      kubectl describe nor my-reboot-rule
      Salida de ejemplo:
      Name:         my-reboot-rule
      Namespace:   
      Labels:       <none>
      Annotations:  <none>
      API Version:  oci.oraclecloud.com/v1beta1
      Kind:         NodeOperationRule
      Metadata:
        Creation Timestamp:  2025-02-11T00:11:11Z
        Finalizers:
          nodeoperationrule.oci.oraclecloud.com/finalizers
        Generation:        1
        Resource Version:  244259806
        UID:               xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      Spec:
        Actions:
          reboot
        Max Parallelism:  2
        Node Eviction Settings:
          Eviction Grace Period:                 300
          Is Force Action After Grace Duration:  true
        Node Selector:
          Match Trigger Label:
            oke.oraclecloud.com/node_operation:  my-reboot-value
          Match Custom Label:
            deployment: green
      Status:
        Back Off Nodes:
        Canceled Nodes:
        In Progress Nodes:
        	Node Name:        10.0.10.53
          Work Request Id:  ocid1.clustersworkrequest.oc1.phx.aaaa______jda
        Pending Nodes:
        Succeeded Nodes:
      Events:
        Type    Reason                  Age   From               Message
        ----    ------                  ----  ----               -------
        Normal  StartedNodeOperation    1m   NodeOperationRule  Started node operation on node with work request ID: 10.0.10.105: ocid1.clustersworkrequest.oc1.phx.aaaa______jda
      ```