Un grupo de nodos es un conjunto de nodos dentro de un clúster de Kubernetes que tienen la misma configuración. Los grupos de nodos usan una especificación NodePool. Cada nodo del grupo tiene una etiqueta de nodo de Kubernetes, que tiene el nombre del grupo de nodos como valor.
De forma predeterminada, todos los grupos de nodos nuevos ejecutan la misma versión de Kubernetes que el plano de control.
Cuando creas un clúster de usuario, la cantidad y el tipo de nodos que especificas crean el primer grupo de nodos del clúster. Puedes agregar grupos de nodos adicionales de diferentes tamaños y tipos a tu clúster. Todos los nodos en un grupo de nodos determinado son idénticos entre sí.
Los grupos de nodos personalizados son útiles cuando se programan pods que requieren más recursos que otros, como más memoria o espacio en el disco local. Puedes usar taints de nodos si necesitas más control sobre la programación de los pods.
Puedes crear y borrar grupos de nodos de forma individual sin afectar a todo el clúster. No puedes configurar un solo nodo en un grupo de nodos. Todos los cambios en la configuración afectan a todos los nodos del grupo de nodos.
Puedes cambiar el tamaño de los grupos de nodos en un clúster aumentando o disminuyendo la escala del grupo. Reducir la escala de un grupo de nodos es un proceso automatizado en el que se disminuye el tamaño del grupo y el sistema de GDC automáticamente vacía y expulsa un nodo arbitrario. No puedes seleccionar un nodo específico para quitarlo cuando reduces la escala de un grupo de nodos.
Antes de comenzar
Para administrar grupos de nodos en un clúster de usuario, debes tener el rol de administrador del clúster de usuario (rol user-cluster-admin).
Agregue un grupo de nodos
Cuando creas un clúster de usuario desde la consola de GDC, puedes personalizar el grupo de nodos predeterminado y crear grupos de nodos adicionales antes de que se inicialice la creación del clúster. Si debes agregar un grupo de nodos a un clúster de usuario existente, completa los siguientes pasos:
Console
- En el menú de navegación, selecciona Clústeres.
- Haz clic en el clúster de la lista. Se muestra la página Detalles del clúster.
- Selecciona Grupos de nodos > Agregar grupo de nodos.
- Asigna un nombre al grupo de nodos. No puedes modificar el nombre después de crear el grupo de nodos.
- Especifica la cantidad de nodos trabajadores que se crearán en el grupo de nodos.
- 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
- Opcional: Agrega etiquetas de pares clave-valor de Kubernetes para organizar los recursos de tu grupo de nodos.
- Haz clic en Guardar.
API
Abre la especificación del recurso personalizado
Clustercon la CLI dekubectlusando el editor interactivo:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ADMIN_CLUSTER_KUBECONFIGReemplaza lo siguiente:
USER_CLUSTER_NAME: Es el nombre del clúster de usuario.ADMIN_CLUSTER_KUBECONFIG: Es la ruta de acceso al archivo kubeconfig del clúster de administrador.
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: LABELSReemplaza 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: Es 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.
Guarda el archivo y sal del editor.
Visualiza grupos de nodos
Para ver los grupos de nodos existentes en un clúster de usuario, completa los siguientes pasos:
Console
- En el menú de navegación, selecciona Clústeres.
- Haz clic en el clúster de la lista. Se muestra la página Detalles del clúster.
- 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
Para ver los grupos de nodos de un clúster de usuario específico, haz lo siguiente:
kubectl get clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ -o json --kubeconfig ADMIN_CLUSTER_KUBECONFIG | \ jq .status.workerNodePoolStatusesEl resultado es similar a este:
[ { "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 } ]
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
En el menú de navegación, selecciona Clústeres.
Haz clic en el clúster que aloja el grupo de nodos que deseas borrar.
Selecciona Grupos de nodos.
Haz clic en delete Borrar junto al grupo de nodos que deseas borrar.
API
Abre la especificación del recurso personalizado
Clustercon la CLI dekubectlusando el editor interactivo:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ADMIN_CLUSTER_KUBECONFIGReemplaza lo siguiente:
USER_CLUSTER_NAME: Es el nombre del clúster de usuario.ADMIN_CLUSTER_KUBECONFIG: Es la ruta de acceso al archivo kubeconfig del clúster de administrador.
Quita la entrada del grupo de nodos de la sección
nodePools. Por ejemplo, en el siguiente fragmento, debes quitar los camposmachineTypeName,nameynodeCount:nodePools: ... - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: 3Asegúrate de quitar todos los campos del grupo de nodos que borrarás.
Guarda el archivo y sal del editor.
Tipos de máquinas de nodos trabajadores
Cuando creas un clúster de usuario en el dispositivo aislado de Google Distributed Cloud (GDC), creas grupos de nodos que son responsables de ejecutar tus cargas de trabajo de contenedores en el clúster. Aprovisionas nodos según los requisitos de tu carga de trabajo de contenedores y puedes actualizarlos a medida que evolucionan tus requisitos.
GDC proporciona tipos de máquinas predefinidos para tus nodos trabajadores que se pueden seleccionar cuando agregas un grupo de nodos.
Tipos de máquinas disponibles
GDC define tipos de máquinas con algunos parámetros para un nodo de clúster de usuario, que incluyen CPU, memoria y GPU.
GDC tiene varios tipos de máquinas para diferentes propósitos.
Por ejemplo, los clústeres de usuarios usan n2-standard-2-gdc para cargas de trabajo de contenedores de uso general. También puedes encontrar tipos de máquinas con optimización de memoria, como n2-highcpu-8-gdc. Si planeas ejecutar contenedores de aprendizaje profundo, debes aprovisionar máquinas con GPU, como a2-highgpu-1g-gdc.
A continuación, se incluye una lista de todos los tipos de máquinas predefinidos de GDC disponibles para los nodos trabajadores del clúster de usuario:
| Nombre | CPU virtuales | Memoria | Recuento de GPU |
|---|---|---|---|
| n2-standard-2-gdc | 2 | 8G | N/A |
| n2-standard-4-gdc | 4 | 16G | N/A |
| n2-highmem-4-gdc | 4 | 32G | N/A |
| n2-highcpu-8-gdc | 8 | 8G | N/A |
| n2-standard-8-gdc | 8 | 32G | N/A |
| n2-highmem-8-gdc | 8 | 64 G | N/A |
| a2-highgpu-1g-gdc | 12 | 85G | 1 |
| a2-ultragpu-1g-gdc | 12 | 170G | 1 |