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:
Quita su definición de la sección
nodePools
del archivo de configuración del clúster de usuario.Asegúrate de que no haya cargas de trabajo en ejecución en los nodos afectados.
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
: Incluyevsphere.datastore
yvsphere.tags
.pool-3
: Incluyetaints
ylabels
.pool-4
: IncluyeosImageType
ybootDiskSizeGB
.
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:
- Ejecuta
kubectl get nodes
para obtener el estado de los nodos. - Si deseas obtener un nodo que no esté listo, ejecuta
kubectl describe node NODE_NAME
para obtener más detalles.
- Ejecuta