Crea y administra grupos de nodos

En un clúster de usuario, puedes crear un grupo de nodos que tengan la misma configuración. Para ello, completa la sección nodePools de archivo de configuración del clúster. Luego, puedes administrar el grupo de nodos sin afectar a los demás nodos del clúster. Más información acerca de los grupos de nodos

Antes de comenzar

Si borras un grupo de nodos hará que se quiten los nodos del grupo de inmediato, sin importar si estos ejecutan cargas de trabajo.

Puedes actualizar el campo replicas de una sección nodePool sin interrumpir las cargas de trabajo. Pero, si actualizas cualquier otro campo, los nodos del grupo se borran y se vuelven a crear.

Si deseas adjuntar etiquetas a todas las VM en un grupo de nodos, tu cuenta de usuario de vCenter debe tener estos privilegios de etiquetado de vSphere:

  • vSphere Tagging.Assign o Unassign vSphere Tag
  • vSphere Tagging.Assign o Unassign vSphere Tag on Object (vSphere 7)

Cuando actualizas una sección nodePool, los clústeres de Anthos alojados en VMware crean un nodo nuevo y, luego, borran el nodo antiguo. Repite este proceso hasta que todos los nodos antiguos se hayan reemplazado por nodos nuevos. Esto significa que el clúster debe tener una dirección IP adicional disponible para usar durante la actualización.

Supongamos que un grupo de nodos tendrá N nodos al final de una actualización. Luego, debes tener al menos N + 1 direcciones IP disponibles para los nodos de ese grupo. Esto significa que, si cambias el tamaño de un clúster cuando agregas nodos a uno o más grupos, debes tener al menos una dirección IP más que la cantidad total de nodos que estarán en todos los grupos de nodos de clústeres al final del cambio de tamaño. Para obtener más información, consulta Verifica que haya suficientes direcciones IP disponibles.

Llena la sección nodePools del archivo de configuración del clúster

En el archivo de configuración del clúster de usuario, completa la sección nodePools.

Para cada grupo de nodos, debes especificar los siguientes campos:

  • nodePools.[i].name
  • nodePools[i].cpus
  • nodePools.[i].memoryMB
  • nodePools.[i].replicas

Los siguientes campos son opcionales:

  • nodePools[i].labels
  • nodePools[i].taints
  • nodePools[i].bootDiskSizeGB
  • nodePools[i].osImageType
  • nodePools[i].vsphere.datastore
  • nodePools[i].vsphere.tags

Crea grupos de nodos en un clúster nuevo

En el archivo de configuración de tu clúster de usuario, completa la sección nodePools y, luego, crea el clúster:

gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Reemplaza lo siguiente:

  • ADMIN_CLUSTER_KUBECONFIG: Es el archivo kubeconfig para el clúster de administrador.

  • USER_CLUSTER_CONFIG: el archivo de configuración del clúster de usuario

Actualiza los grupos de nodos en un clúster existente

En el archivo de configuración del clúster de usuario, edita la sección nodePools y, luego, actualiza el clúster:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Verifica tus cambios

Para verificar que tus grupos de nodos se hayan creado o actualizado según lo previsto, inspecciona los nodos del clúster:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG get nodes -o wide

Si necesitas revertir los cambios, edita el archivo de configuración del clúster y ejecuta gkectl update cluster.

Borra un grupo de nodos

Para borrar un grupo de nodos de un clúster de usuario, haz lo siguiente:

  1. Quita su definición de la sección nodePools del archivo de configuración del clúster de usuario.

  2. Asegúrate de que no haya cargas de trabajo en ejecución en los nodos afectados.

  3. Actualiza el clúster:

    gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
    

Examples

En la siguiente configuración de ejemplo, hay cuatro grupos de nodos, cada uno con atributos diferentes:

  • pool-1: Solo se especifican los atributos mínimos obligatorios.
  • pool-2: Incluye vsphere.datastore y vsphere.tags.
  • pool-3: Incluye taints y labels.
  • pool-4: Incluye osImageType y bootDiskSizeGB.
nodePools:
- name: pool-1
  cpus: 4
  memoryMB: 8192
  replicas: 5
- name: pool-2
  cpus: 8
  memoryMB: 16384
  replicas: 3
  vsphere:
    datastore: my_datastore
    tags:
    - category: "purpose"
      name: "testing"
- name: pool-3
  cpus: 4
  memoryMB: 8192
  replicas: 5
  taints:
    - key: "example-key"
      effect: NoSchedule
  labels:
    environment: production
    app: nginx
- name: pool-4
  cpus: 4
  memoryMB: 8192
  replicas: 5
  osImageType: cos
  bootDiskSizeGB: 40

Solución de problemas

  • En general, el comando gkectl update cluster proporciona información específica cuando falla. Si el comando se ejecutó de forma correcta y no ves los nodos, puedes solucionar el problema con la guía Diagnostica problemas de clústeres.

  • Es posible que haya recursos de clúster insuficientes, como la falta de direcciones IP disponibles durante la creación o actualización del grupo de nodos. Consulta el tema Cambia el tamaño de un clúster de usuario para obtener detalles sobre cómo verificar que las direcciones IP estén disponibles.

  • También puedes consultar la guía general de Solución de problemas.

  • No pasará de Creating node MachineDeployment(s) in user cluster….

    La creación o la actualización de los grupos de nodos en el clúster de usuario puede tomar un tiempo. Sin embargo, si el tiempo de espera es demasiado largo y sospechas que algo falló, puedes ejecutar los siguientes comandos:

    1. Ejecuta kubectl get nodes para obtener el estado de los nodos.
    2. Si deseas obtener un nodo que no esté listo, ejecuta kubectl describe node NODE_NAME para obtener más detalles.