Crea y administra grupos de nodos

Cuando creas un clúster de usuario, debes configurar al menos un grupo de nodos, que es un grupo de nodos que tienen la misma configuración. Después de crear el clúster, puedes agregar nuevos grupos de nodos, actualizar la configuración de los grupos de nodos y borrarlos.

La forma en que creas, actualizas y borras grupos de nodos depende de si la API de Anthos On-Prem administra el clúster. La API de Anthos On-Prem administra un clúster de usuario si se cumple una de las siguientes condiciones:

Si la API de Anthos On-Prem administra un clúster de usuario, puedes usar la consola de Google Cloud para administrar los grupos de nodos. Si la API de Anthos On-Prem no administra el clúster de usuario, usa gkectl en la línea de comandos de la estación de trabajo de administrador para administrar los grupos de nodos.

Agregue un grupo de nodos

Si creaste el clúster en la consola de Google Cloud, puedes usarla para agregar un grupo de nodos. Sin embargo, debes usar la línea de comandos para establecer la siguiente configuración del grupo de nodos:

Antes de agregar otro grupo de nodos, verifica que haya suficientes direcciones IP disponibles en el clúster.

Consola

  1. En la consola de Google Cloud, ve a la página Clústeres de Anthos.

    Ir a la página Clústeres de Anthos

  2. Selecciona el proyecto de Cloud en el que se encuentra el clúster de usuario.

  3. En la lista de clústeres, haz clic en el nombre del clúster y, luego, en Ver detalles en el panel Detalles.

  4. Haz clic en Agregar grupo de nodos.

  5. Configura el grupo de nodos:

    1. Ingresa el nombre del grupo de nodos.
    2. Es la cantidad de CPU virtuales para cada nodo del grupo (mínimo 4 por trabajador del clúster de usuario).
    3. Ingresa el tamaño de memoria en mebibytes (MiB) para cada nodo en el grupo (mínimo 8,192 MiB por nodo trabajador del clúster de usuario y debe ser un múltiplo de 4).
    4. En el campo Nodos, ingresa la cantidad de nodos en el grupo (mínimo 3).
    5. Selecciona el Tipo de imagen de SO: Ubuntu Containerd, Ubuntu o COS.

    6. Ingresa laTamaño de disco de arranque en gibibytes (GiB) (el valor predeterminado es de 40 GiB).

  6. En la sección Metadatos del grupo de nodos (opcional), si deseas agregar etiquetas y taints de Kubernetes, haz lo siguiente:

    1. Haz clic en + Add Kubernetes Labels. Ingresa la Clave y el Valor de la etiqueta. Repite la acción según sea necesario.
    2. Haz clic en + Agregar taint. Ingresa la Clave, el Valor y el Efecto para el taint. Repite la acción según sea necesario.
  7. Haz clic en Crear.

  8. La consola de Google Cloud muestra el Estado del clúster: cambios en progreso. Haz clic en Mostrar detalles para ver la condición de estado del recurso y los mensajes de estado.

Línea de comandos

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

    Debes especificar los siguientes campos:

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

    Los siguientes campos son opcionales: Si no incluyes nodePools[i].bootDiskSizeGB o nodePools[i].osImageType, se usan los valores predeterminados.

    • nodePools[i].labels
    • nodePools[i].taints
    • nodePools[i].bootDiskSizeGB
    • nodePools[i].osImageType
    • nodePools[i].vsphere.datastore
    • nodePools[i].vsphere.tags
  2. Ejecuta el siguiente comando:

    gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
    

    Reemplaza lo siguiente:

    • [ADMIN_CLUSTER_KUBECONFIG] es la ruta de acceso del archivo kubeconfig del clúster de administrador.

    • [USER_CLUSTER_CONFIG] por la ruta de acceso del archivo de configuración del clúster de usuario.

Configuración de ejemplo

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

Actualizar un grupo de nodos

Puedes usar la línea de comandos para actualizar todos los campos de la sección nodePools del archivo de configuración de tu clúster de usuario. En la actualidad, los únicos campos de grupo de nodos que puedes actualizar mediante la consola de Google Cloud son los siguientes:

  • Cantidad de réplicas
  • Memoria
  • Cantidad de CPU virtuales

Cuando aumentas la cantidad de réplicas, los clústeres de Anthos alojados en VMware agregan la cantidad necesaria de nodos al clúster de usuario y, cuando disminuyes la cantidad de réplicas, se quitan los nodos. Cambiar la cantidad de réplicas para un grupo de nodos no interrumpe las cargas de trabajo. Asegúrate de tener direcciones IP disponibles si aumentas la cantidad de réplicas.

Si actualizas cualquier otro campo del grupo de nodos, se activa una actualización progresiva en el clúster. En una actualización progresiva, los clústeres de Anthos alojados en VMware crean un nodo nuevo y, luego, borran un nodo anterior. Este proceso se repite hasta que todos los nodos antiguos se hayan reemplazado por nodos nuevos. Este proceso no genera tiempo de inactividad, pero 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.

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

Consola

  1. En la consola de Google Cloud, ve a la página Clústeres de Anthos.

    Ir a la página Clústeres de Anthos

  2. Selecciona el proyecto de Cloud en el que se encuentra el clúster de usuario.

  3. En la lista de clústeres, haz clic en el nombre del clúster y, luego, en Ver detalles en el panel Detalles.

  4. Haz clic en la pestaña Nodos.

  5. Haz clic en el nombre del grupo de nodos que deseas modificar.

  6. Haz clic en Editar junto al campo que deseas modificar y, luego, en Listo.

  7. Haz clic en para volver a la página anterior.

  8. En la consola de Google Cloud, se muestra el Estado del clúster: cambios en progreso. Haz clic en Mostrar detalles para ver la condición de estado del recurso y los mensajes de estado.

Línea de comandos

  1. Modifica los valores de los campos que deseas cambiar en la sección nodePools del archivo de configuración del clúster de usuario.

  2. Actualiza el clúster:

    gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
    

    Reemplaza lo siguiente:

    • [ADMIN_CLUSTER_KUBECONFIG] es la ruta de acceso del archivo kubeconfig del clúster de administrador.

    • [USER_CLUSTER_CONFIG] por la ruta de acceso del archivo de configuración del clúster de usuario.

Actualiza la osImageType que usa un grupo de nodos

Si deseas actualizar un grupo de nodos para usar un osImageType diferente, debes usar la línea de comandos. Para cambiar el osImageType que usa un grupo de nodos, actualiza el archivo de configuración del grupo de nodos, como se muestra en el siguiente ejemplo, y ejecuta gkectl update cluster.

nodePools:
- name: np-1
  cpus: 4
  memoryMB: 8192
  replicas: 3
  osImageType: ubuntu_containerd

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:

Consola

  1. En la consola de Google Cloud, ve a la página Clústeres de Anthos.

    Ir a la página Clústeres de Anthos

  2. Selecciona el proyecto de Cloud en el que se encuentra el clúster de usuario.

  3. En la lista de clústeres, haz clic en el nombre del clúster y, luego, en Ver detalles en el panel Detalles.

  4. Haz clic en la pestaña Nodos.

  5. Haz clic en el nombre del grupo de nodos que deseas ver.

Línea de comandos

Ejecuta el siguiente comando:

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.

Borrar un grupo de nodos

Aunque puedes borrar grupos de nodos, tu clúster de usuarios debe tener al menos un grupo de nodos. Si borras un grupo de nodos hará que se quiten los nodos del grupo de inmediato, sin importar si estos ejecutan cargas de trabajo.

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

Consola

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

  2. En la consola de Google Cloud, ve a la página Clústeres de Anthos.

    Ir a la página Clústeres de Anthos

  3. Selecciona el proyecto de Cloud en el que se encuentra el clúster de usuario.

  4. En la lista de clústeres, haz clic en el nombre del clúster y, luego, en Ver detalles en el panel Detalles.

  5. Haz clic en la pestaña Nodos.

  6. Haz clic en el nombre del grupo de nodos que deseas borrar.

  7. Haz clic en Borrar.

  8. Haz clic en para volver a la página anterior.

  9. En la consola de Google Cloud, se muestra el Estado del clúster: cambios en progreso. Haz clic en Mostrar detalles para ver la condición de estado del recurso y los mensajes de estado.

Línea de comandos

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

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

  3. Actualiza el clúster:

    gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
    

    Reemplaza lo siguiente:

    • [ADMIN_CLUSTER_KUBECONFIG] es la ruta de acceso del archivo kubeconfig del clúster de administrador.

    • [USER_CLUSTER_CONFIG] por la ruta de acceso del archivo de configuración del clúster de usuario.

Soluciona 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.