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 Kubernetes, 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 ver y administrar grupos de nodos en un clúster de Kubernetes, debes tener 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.
Agregue un grupo de nodos
Cuando creas un clúster de Kubernetes 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 Kubernetes existente, completa los siguientes pasos:
Console
- En el menú de navegación, selecciona Kubernetes Engine > 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
- Haz clic en Guardar.
API
Abre la especificación del recurso personalizado
Cluster
con la CLI dekubectl
usando el editor interactivo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME -n platform \ --kubeconfig MANAGEMENT_API_SERVER
Reemplaza lo siguiente:
KUBERNETES_CLUSTER_NAME
: Es el nombre del clúster.MANAGEMENT_API_SERVER
: Es la ruta de 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.
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
: 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.GPU_PARTITION_SCHEME
: 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.
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
- En el menú de navegación, selecciona Kubernetes Engine > 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
Visualiza los grupos de nodos de un clúster de Kubernetes específico:
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME -n platform \ -o json --kubeconfig MANAGEMENT_API_SERVER | \ jq .status.workerNodePoolStatuses
El 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 Kubernetes Engine > 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
Cluster
con la CLI dekubectl
usando el editor interactivo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME -n platform \ --kubeconfig MANAGEMENT_API_SERVER
Reemplaza lo siguiente:
KUBERNETES_CLUSTER_NAME
: Es el nombre del clúster.MANAGEMENT_API_SERVER
: Es la ruta de 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.
Quita la entrada del grupo de nodos de la sección
nodePools
. Por ejemplo, en el siguiente fragmento, debes quitar los camposmachineTypeName
,name
ynodeCount
:nodePools: ... - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: 3
Asegúrate de quitar todos los campos del grupo de nodos que borrarás.
Guarda el archivo y sal del editor.