Administre los grupos de nodos

Cuando creas un clúster de Kubernetes aislado de Google Distributed Cloud (GDC), la cantidad y el tipo de nodos que especificas crean el primer grupo de nodos del clúster. Puedes realizar las siguientes tareas relacionadas con el grupo de nodos de un clúster existente a medida que cambian sus requisitos de procesamiento:

  • Agrega un grupo de nodos nuevo: Agrega grupos de nodos nuevos a medida que aumente la demanda de las cargas de trabajo de tu clúster.

  • Ver un grupo de nodos: Consulta las características y el estado de tus grupos de nodos existentes.

  • Cambia el tamaño de un grupo de nodos: Aumenta o disminuye manualmente la cantidad de nodos en tus grupos de nodos para adaptarlos a las fluctuaciones del tráfico de la carga de trabajo.

  • Borra un grupo de nodos: Quita grupos de nodos si disminuye la demanda de las cargas de trabajo de tu clúster o si deseas borrar tipos de máquinas que ya no son convenientes para tus operaciones de contenedores.

Para obtener más información sobre los grupos de nodos en un clúster, consulta Acerca de los nodos.

Este documento está dirigido a los desarrolladores de aplicaciones del grupo de operadores de aplicaciones y a los administradores de TI del grupo de administradores de plataformas que son responsables de administrar los clústeres de Kubernetes dentro de su organización. Para obtener más información, consulta Públicos de la documentación de Google Distributed Cloud aislado.

Antes de comenzar

Para completar las tareas de este documento, debes tener los siguientes recursos y roles:

  • Para ver y administrar grupos de nodos en un clúster de Kubernetes compartido, pídele al administrador de IAM de tu organización que te otorgue los siguientes roles:

    • Administrador del clúster de usuario (user-cluster-admin)
    • Visualizador de nodos del clúster de usuario (user-cluster-node-viewer)

    Estos roles no están vinculados a un espacio de nombres.

  • Para ver y administrar grupos de nodos en un clúster de Kubernetes estándar, pídele al administrador de IAM de tu organización que te otorgue el rol de administrador de clústeres estándar (standard-cluster-admin). Este rol está vinculado al espacio de nombres de tu proyecto.

  • Para ejecutar comandos en un clúster de Kubernetes, asegúrate de tener los siguientes recursos:

    • Busca el nombre del clúster de Kubernetes o pregúntale a un miembro del grupo de administradores de la plataforma cuál es el nombre del clúster.

    • Accede y genera el archivo kubeconfig para el clúster de Kubernetes si no tienes uno.

    • Usa la ruta de acceso de kubeconfig del clúster de Kubernetes para reemplazar KUBERNETES_CLUSTER_KUBECONFIG en estas instrucciones.

Agregue un grupo de nodos

Para agregar un grupo de nodos a un clúster de Kubernetes existente, completa los siguientes pasos:

Console

  1. En el menú de navegación, selecciona Kubernetes Engine > Clústeres.
  2. Haz clic en el clúster de la lista. Se muestra la página Detalles del clúster.
  3. Selecciona Grupos de nodos > Agregar grupo de nodos.
  4. Asigna un nombre al grupo de nodos. No puedes modificar el nombre después de crear el grupo de nodos.
  5. Especifica la cantidad de nodos trabajadores que se crearán en el grupo de nodos.
  6. Selecciona la clase de máquina que mejor se adapte a los requisitos de tu carga de trabajo. Las clases de máquinas se muestran en los siguientes parámetros de configuración:
    • Tipo de máquina
    • CPU virtual
    • Memoria
  7. Haz clic en Guardar.

API

  1. Abre la especificación del recurso personalizado Cluster con la CLI de kubectl usando el editor interactivo:

    kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE \
        --kubeconfig MANAGEMENT_API_SERVER
    

    Reemplaza lo siguiente:

    • KUBERNETES_CLUSTER_NAME: Es el nombre del clúster.
    • KUBERNETES_CLUSTER_NAMESPACE: Es el espacio de nombres del clúster. Para los clústeres compartidos, usa el espacio de nombres platform. Para los clústeres estándar, usa el espacio de nombres del proyecto del clúster.
    • MANAGEMENT_API_SERVER: Es la ruta de acceso a kubeconfig del servidor de la API zonal en la que se aloja el clúster de Kubernetes. Si aún no generaste un archivo kubeconfig para el servidor de la API en tu zona de destino, consulta Accede para obtener más detalles.
  2. Agrega una entrada nueva en la sección nodePools:

    nodePools:
    ...
    - machineTypeName: MACHINE_TYPE
      name: NODE_POOL_NAME
      nodeCount: NUMBER_OF_WORKER_NODES
      taints: TAINTS
      labels: LABELS
      acceleratorOptions:
        gpuPartitionScheme: GPU_PARTITION_SCHEME
    

    Reemplaza lo siguiente:

    • MACHINE_TYPE: Es el tipo de máquina para los nodos trabajadores del grupo de nodos. Consulta los tipos de máquinas disponibles para ver qué se puede configurar.
    • NODE_POOL_NAME: el nombre del grupo de nodos
    • NUMBER_OF_WORKER_NODES: Es la cantidad de nodos trabajadores que se aprovisionarán en el grupo de nodos.
    • TAINTS: Son los taints que se aplicarán a los nodos de este grupo de nodos. Este paso es opcional,
    • LABELS: Son las etiquetas que se aplicarán a los nodos de este grupo de nodos. Contiene una lista de pares clave-valor. Este campo es opcional.
    • GPU_PARTITION_SCHEME: Es el esquema de partición de GPU si ejecutas cargas de trabajo de GPU. Por ejemplo, mixed-2 La GPU no se particiona si no se configura este campo. Para conocer los perfiles de GPU multiinstancia (MIG) disponibles, consulta Perfiles de MIG compatibles.
  3. Guarda el archivo y sal del editor.

Visualiza grupos de nodos

Para ver los grupos de nodos existentes en un clúster de Kubernetes, completa los siguientes pasos:

Console

  1. En el menú de navegación, selecciona Kubernetes Engine > Clústeres.
  2. Haz clic en el clúster de la lista. Se muestra la página Detalles del clúster.
  3. Selecciona Grupos de nodos.

Se muestra la lista de grupos de nodos que se ejecutan en el clúster. En esta página, puedes administrar los grupos de nodos del clúster.

API

  • Visualiza los grupos de nodos de un clúster de Kubernetes específico:

    kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE \
        -o json --kubeconfig MANAGEMENT_API_SERVER | \
        jq .status.workerNodePoolStatuses
    

    Reemplaza lo siguiente:

    • KUBERNETES_CLUSTER_NAME: Es el nombre del clúster.
    • KUBERNETES_CLUSTER_NAMESPACE: Es el espacio de nombres del clúster. Para los clústeres compartidos, usa el espacio de nombres platform. Para los clústeres estándar, usa el espacio de nombres del proyecto del clúster.

    El resultado es similar a lo siguiente:

    [
      {
        "conditions": [
          {
            "lastTransitionTime": "2023-08-31T22:16:17Z",
            "message": "",
            "observedGeneration": 2,
            "reason": "NodepoolReady",
            "status": "True",
            "type": "Ready"
          },
          {
            "lastTransitionTime": "2023-08-31T22:16:17Z",
            "message": "",
            "observedGeneration": 2,
            "reason": "ReconciliationCompleted",
            "status": "False",
            "type": "Reconciling"
          }
        ],
        "name": "worker-node-pool",
        "readyNodes": 3,
        "readyTimestamp": "2023-08-31T18:59:46Z",
        "reconcilingNodes": 0,
        "stalledNodes": 0,
        "unknownNodes": 0
      }
    ]
    

Cambia el tamaño de los grupos de nodos

Puedes cambiar el tamaño de los grupos de nodos en un clúster de Kubernetes de forma manual aumentando o disminuyendo la escala del grupo. No puedes seleccionar un nodo específico para quitarlo cuando reduces la escala de un grupo de nodos.

Para ajustar la escala de un grupo de nodos en un clúster existente, completa los siguientes pasos:

Console

  1. En el panel, selecciona el proyecto en el que existe el clúster que deseas editar.
  2. En el menú de navegación, selecciona Kubernetes Engine > Clústeres.
  3. Selecciona el nombre del clúster con el que está asociado el grupo de nodos. Se muestra la página Detalles del clúster.
  4. Haz clic en la pestaña Grupos de nodos.
  5. Selecciona el ícono de Editar para el grupo de nodos al que deseas cambiarle el tamaño. Aparecerá el mensaje Editar grupo de nodos.
  6. Actualiza el campo Cantidad de nodos para reflejar la nueva cantidad de nodos requeridos en el grupo de nodos. Puedes aumentar o disminuir la cantidad de nodos para satisfacer los requisitos de tu carga de trabajo.

  7. Haz clic en Guardar.

  8. Vuelve a la pestaña Grupos de nodos de tu clúster y confirma que el grupo de nodos redimensionado tenga el estado Ready y la cantidad correcta de nodos. El grupo de nodos puede tardar unos minutos en ajustarse según tus especificaciones.

    Confirma que tu grupo de nodos esté listo con la consola.

API

  1. Abre la especificación del recurso personalizado de Cluster con la CLI de kubectl usando el editor interactivo:

    kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE \
        --kubeconfig MANAGEMENT_API_SERVER
    

    Reemplaza lo siguiente:

    • KUBERNETES_CLUSTER_NAME: Es el nombre del clúster que aloja el grupo de nodos.
    • KUBERNETES_CLUSTER_NAMESPACE: Es el espacio de nombres del clúster. Para los clústeres compartidos, usa el espacio de nombres platform. Para los clústeres estándar, usa el espacio de nombres del proyecto del clúster.
    • MANAGEMENT_API_SERVER: Es la ruta de acceso a kubeconfig del servidor de la API zonal en la que se aloja el clúster de Kubernetes. Si no generaste un archivo kubeconfig para el servidor de la API en tu zona de destino, consulta Recursos del servidor de la API de administración zonal.
  2. Actualiza el campo nodeCount del grupo de nodos al que se le cambiará el tamaño:

    nodePools:
    # Several lines of code are omitted here.
    - machineTypeName: n2-standard-2-gdc
      name: nodepool-1
      nodeCount: NUMBER_OF_WORKER_NODES
    

    Reemplaza NUMBER_OF_WORKER_NODES por la cantidad actualizada de nodos trabajadores que se aprovisionarán en el grupo de nodos.

  3. Guarda el archivo y sal del editor.

  4. Para verificar que se completó el ajuste de escala de nodos, consulta la configuración del grupo de nodos:

    kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE -o json \
        --kubeconfig MANAGEMENT_API_SERVER | jq .status.workerNodePoolStatuses
    

    Confirma que el número readyNodes refleje la cantidad de nodos que estableciste para el grupo de nodos. El grupo de nodos puede tardar unos minutos en ajustarse según tus especificaciones.

Borrar un grupo de nodos

Cuando se borra un grupo de nodos, se borran los nodos y las rutas a ellos. Estos nodos expulsan y reprograman los Pods que se ejecutan en ellos. Si los Pods tienen selectores de nodo específicos, pueden mantenerse en una condición no programable si ningún otro nodo en el clúster cumple con los criterios.

Asegúrate de tener al menos tres nodos trabajadores antes de borrar un grupo de nodos para garantizar que tu clúster tenga suficiente espacio de procesamiento para ejecutarse de manera eficaz.

Para borrar un grupo de nodos, completa los siguientes pasos:

Console

  1. En el menú de navegación, selecciona Kubernetes Engine > Clústeres.

  2. Haz clic en el clúster que aloja el grupo de nodos que deseas borrar.

  3. Selecciona Grupos de nodos.

  4. Haz clic en Borrar junto al grupo de nodos que deseas borrar.

API

  1. Abre la especificación del recurso personalizado de Cluster con la CLI de kubectl usando el editor interactivo:

    kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE \
        --kubeconfig MANAGEMENT_API_SERVER
    

    Reemplaza lo siguiente:

    • KUBERNETES_CLUSTER_NAME: Es el nombre del clúster.
    • KUBERNETES_CLUSTER_NAMESPACE: Es el espacio de nombres del clúster. Para los clústeres compartidos, usa el espacio de nombres platform. Para los clústeres estándar, usa el espacio de nombres del proyecto del clúster.
    • MANAGEMENT_API_SERVER: Es la ruta de acceso a kubeconfig del servidor de la API zonal en la que se aloja el clúster de Kubernetes. Si no generaste un archivo kubeconfig para el servidor de la API en tu zona de destino, consulta Recursos del servidor de la API de administración zonal.
  2. Quita la entrada del grupo de nodos de la sección nodePools. Por ejemplo, en el siguiente fragmento, debes quitar los campos machineTypeName, name y nodeCount:

    nodePools:
    # Several lines of code are omitted here.
    - machineTypeName: n2-standard-2-gdc
      name: nodepool-1
      nodeCount: 3
    

    Asegúrate de quitar todos los campos del grupo de nodos que borrarás.

  3. Guarda el archivo y sal del editor.