Cuando creas un clúster de Kubernetes aislado de Google Distributed Cloud (GDC), el número y el tipo de nodos que especifiques crearán el primer grupo de nodos del clúster. Puedes realizar las siguientes tareas en grupos de nodos de un clúster ya creado a medida que cambien sus requisitos de computación:
Añadir un grupo de nodos: añade grupos de nodos a medida que aumente la demanda de las cargas de trabajo de tu clúster.
Ver un grupo de nodos: consulta las características y el estado de los grupos de nodos que ya tienes.
Cambiar el tamaño de un grupo de nodos: aumenta o reduce manualmente el tamaño de tus grupos de nodos para adaptarlos a las fluctuaciones del tráfico de las cargas de trabajo.
Eliminar un grupo de nodos: elimina grupos de nodos si la demanda de las cargas de trabajo de tu clúster disminuye o si quieres eliminar tipos de máquinas que ya no son adecuados para tus operaciones de contenedores.
Para obtener más información sobre los grupos de nodos de un clúster, consulta Acerca de los nodos.
Este documento está dirigido a los desarrolladores de aplicaciones del grupo de operadores de aplicaciones y a los administradores de TI del grupo de administradores de plataformas que se encargan de gestionar los clústeres de Kubernetes de su organización. Para obtener más información, consulta Audiencias de la documentación aislada de GDC.
Antes de empezar
Para completar las tareas de este documento, debes solicitar los permisos necesarios y preparar tu entorno.
Solicitar roles de gestión de identidades y accesos
Debes tener roles específicos para obtener los permisos que necesitas para gestionar los grupos de nodos de un clúster de Kubernetes. Los roles que necesitas dependen de si trabajas en un clúster compartido con ámbito de organización o en un clúster estándar con ámbito de proyecto. Para obtener más información, consulta las configuraciones de clústeres de Kubernetes.
Roles de clúster compartidos
Para crear, eliminar, editar o ver los grupos de nodos de un clúster compartido, ponte en contacto con el administrador de IAM de tu organización para solicitar el rol Administrador de clústeres de usuario (user-cluster-admin). Este rol no está vinculado a un espacio de nombres.
Roles de clúster estándar
Ponte en contacto con el administrador de gestión de identidades y accesos de tu proyecto para solicitar los siguientes roles:
Administrador de clúster estándar (
standard-cluster-admin): crea, elimina, edita o consulta los grupos de nodos de un clúster estándar.Desarrollador de clústeres (
cluster-developer): crea, elimina, edita o consulta un clúster estándar. Este rol es necesario para ver los detalles del grupo de nodos del clúster en la consola de GDC.
Estos roles están vinculados al espacio de nombres de tu proyecto.
Prepara tu entorno
Para ejecutar comandos en un clúster de Kubernetes mediante la API, asegúrate de tener los siguientes recursos:
Busca el nombre del clúster de Kubernetes o pregunta a un miembro del grupo de administradores de la plataforma cuál es el nombre del clúster.
Usa el nombre del clúster de Kubernetes para sustituir
KUBERNETES_CLUSTER_NAMEen estas instrucciones.Inicia sesión y genera el archivo kubeconfig del servidor de la API de gestión del clúster de Kubernetes.
Usa la ruta kubeconfig del servidor de la API de gestión para sustituir
MANAGEMENT_API_SERVERen estas instrucciones.
Añadir un grupo de nodos
Para añadir un grupo de nodos a un clúster de Kubernetes, sigue estos pasos:
Consola
En el selector de proyectos, selecciona tu proyecto u organización.
Los clústeres estándar tienen el ámbito de un proyecto y los clústeres compartidos tienen el ámbito de una organización. Selecciona el ámbito correcto para ver el tipo de clúster de Kubernetes adecuado.
En el menú de navegación, selecciona Kubernetes Engine > Clústeres.
En la lista de clústeres, haz clic en el clúster que quieras. Se mostrará la página Detalles del clúster.
Selecciona Grupos de nodos > Añadir grupo de nodos.
Asigna un nombre al grupo de nodos. No puedes modificar el nombre después de crear el grupo de nodos.
Especifica el número de nodos de trabajador 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áquina se muestran en los siguientes ajustes:
- Tipo de máquina
- vCPU
- Memoria
Haz clic en Guardar.
API
Abre la especificación de recursos personalizados
Clustercon la CLIkubectlmediante el editor interactivo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERHaz los cambios siguientes:
KUBERNETES_CLUSTER_NAME: el nombre del clúster.KUBERNETES_CLUSTER_NAMESPACE: el espacio de nombres del clúster. En el caso de los clústeres compartidos, usa el espacio de nombresplatform. En el caso de los clústeres estándar, usa el espacio de nombres del proyecto del clúster.MANAGEMENT_API_SERVER: la ruta kubeconfig del servidor de la API zonal donde se aloja el clúster de Kubernetes.
Añade una entrada en la sección
nodePools:nodePools: # Several lines of code are omitted here. - machineTypeName: MACHINE_TYPE name: NODE_POOL_NAME nodeCount: NUMBER_OF_WORKER_NODES taints: TAINTS labels: LABELS acceleratorOptions: gpuPartitionScheme: GPU_PARTITION_SCHEMEHaz los cambios siguientes:
MACHINE_TYPE: el tipo de máquina de los nodos de trabajador del grupo de nodos. Consulta los tipos de máquinas disponibles para ver qué se puede configurar.NODE_POOL_NAME: el nombre del grupo de nodos.NUMBER_OF_WORKER_NODES: el número de nodos de trabajo que se aprovisionarán en el grupo de nodos.TAINTS: los taints que se aplicarán a los nodos de este grupo de nodos. Este campo es opcional.LABELS: 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: el 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 define este campo. Para ver los perfiles de GPU con varias instancias (MIG) disponibles, consulta Perfiles de MIG admitidos.
Guarda el archivo y cierra el editor.
Ver grupos de nodos
Para ver los grupos de nodos de un clúster de Kubernetes, sigue estos pasos:
Consola
En el selector de proyectos, selecciona tu proyecto u organización.
Los clústeres estándar tienen el ámbito de un proyecto y los clústeres compartidos tienen el ámbito de una organización. Selecciona el ámbito correcto para ver el tipo de clúster de Kubernetes adecuado.
En el menú de navegación, selecciona Kubernetes Engine > Clústeres.
En la lista de clústeres, haz clic en el clúster que quieras. Se mostrará 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 gestionar los grupos de nodos del clúster.
API
Para ver los grupos de nodos de un clúster de Kubernetes específico, sigue estos pasos:
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ -o json --kubeconfig MANAGEMENT_API_SERVER | \ jq .status.workerNodePoolStatusesHaz los cambios siguientes:
KUBERNETES_CLUSTER_NAME: el nombre del clúster.KUBERNETES_CLUSTER_NAMESPACE: el espacio de nombres del clúster. En el caso de los clústeres compartidos, usa el espacio de nombresplatform. En el caso de los clústeres estándar, usa el espacio de nombres del proyecto del clúster.
El resultado debería ser similar al siguiente:
[ { "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 } ]
Cambiar el tamaño de los grupos de nodos
Puedes cambiar manualmente el tamaño de los grupos de nodos de un clúster de Kubernetes aumentando o reduciendo el tamaño del grupo. No puedes seleccionar un nodo específico para eliminarlo al reducir la escala de un grupo de nodos.
Para escalar un grupo de nodos en un clúster, sigue estos pasos:
Consola
En el selector de proyectos, selecciona tu proyecto u organización.
Los clústeres estándar tienen el ámbito de un proyecto y los clústeres compartidos tienen el ámbito de una organización. Selecciona el ámbito correcto para ver el tipo de clúster de Kubernetes adecuado.
En el panel de control, selecciona el proyecto en el que se encuentra el clúster que quieres editar.
En el menú de navegación, selecciona Kubernetes Engine > Clústeres.
Selecciona el nombre del clúster al que está asociado el grupo de nodos. Se mostrará la página Detalles del clúster.
Haz clic en la pestaña Grupos de nodos.
Selecciona el icono edit Editar del grupo de nodos cuyo tamaño quieras cambiar. Se muestra la petición Editar grupo de nodos.
Actualice el campo Número de nodos para reflejar la nueva cantidad de nodos que necesita el grupo de nodos. Puedes aumentar o reducir el número de nodos para adaptarlo a los requisitos de tu carga de trabajo.
Haz clic en Guardar.
Vuelve a la pestaña Grupos de nodos de tu clúster y confirma que el grupo de nodos redimensionado tiene el estado
Readyy el número correcto de nodos. El grupo de nodos puede tardar unos minutos en escalarse a las especificaciones que hayas indicado.
API
Abre la especificación del recurso personalizado
Clustercon la CLI de kubectl mediante el editor interactivo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERHaz los cambios siguientes:
KUBERNETES_CLUSTER_NAME: el nombre del clúster que aloja el grupo de nodos.KUBERNETES_CLUSTER_NAMESPACE: el espacio de nombres del clúster. En el caso de los clústeres compartidos, usa el espacio de nombresplatform. En el caso de los clústeres estándar, usa el espacio de nombres del proyecto del clúster.MANAGEMENT_API_SERVER: la ruta kubeconfig del servidor de la API zonal donde se aloja el clúster de Kubernetes.
Actualiza el campo
nodeCountdel grupo de nodos para cambiar su tamaño:nodePools: # Several lines of code are omitted here. - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: NUMBER_OF_WORKER_NODESSustituye
NUMBER_OF_WORKER_NODESpor el número actualizado de nodos de trabajador que se aprovisionarán en el grupo de nodos.Guarda el archivo y cierra el editor.
Para verificar que el escalado de nodos se ha completado, comprueba la configuración del grupo de nodos:
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE -o json \ --kubeconfig MANAGEMENT_API_SERVER | jq .status.workerNodePoolStatusesConfirma que el número
readyNodesrefleja la cantidad de nodos que has definido para el grupo de nodos. El grupo de nodos puede tardar unos minutos en escalarse según tus especificaciones.
Eliminar un grupo de nodos
Al eliminar un grupo de nodos, se eliminan los nodos y las rutas hacia ellos. Estos nodos expulsan y reprograman los pods que se ejecutan en ellos. Si los pods tienen selectores de nodos específicos, es posible que permanezcan en un estado no programable si ningún otro nodo del clúster cumple los criterios.
Asegúrate de tener al menos tres nodos de trabajo antes de eliminar un grupo de nodos para que tu clúster tenga suficiente espacio de computación para funcionar correctamente.
Para eliminar un pool de nodos, sigue estos pasos:
Consola
En el selector de proyectos, selecciona tu proyecto u organización.
Los clústeres estándar tienen el ámbito de un proyecto y los clústeres compartidos tienen el ámbito de una organización. Selecciona el ámbito correcto para ver el tipo de clúster de Kubernetes adecuado.
En el menú de navegación, selecciona Kubernetes Engine > Clústeres.
Haz clic en el clúster que aloja el grupo de nodos que quieres eliminar.
Selecciona Grupos de nodos.
Haz clic en delete Eliminar junto al grupo de nodos que quieras eliminar.
API
Abre la especificación del recurso personalizado
Clustercon la CLI de kubectl mediante el editor interactivo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERHaz los cambios siguientes:
KUBERNETES_CLUSTER_NAME: el nombre del clúster.KUBERNETES_CLUSTER_NAMESPACE: el espacio de nombres del clúster. En el caso de los clústeres compartidos, usa el espacio de nombresplatform. En el caso de los clústeres estándar, usa el espacio de nombres del proyecto del clúster.MANAGEMENT_API_SERVER: la ruta kubeconfig del servidor de la API zonal donde se aloja el clúster de Kubernetes.
Elimina la entrada del grupo de nodos de la sección
nodePools. Por ejemplo, en el siguiente fragmento, debes quitar los camposmachineTypeName,nameynodeCount:nodePools: # Several lines of code are omitted here. - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: 3Asegúrate de eliminar todos los campos del grupo de nodos que quieras eliminar.
Guarda el archivo y cierra el editor.
Siguientes pasos
- Mantener clústeres de Kubernetes
- Cargas de trabajo de contenedores en GDC
- Aislar cargas de trabajo de contenedores