Cuando creas un clúster de Kubernetes aislado de Google Distributed Cloud (GDC), la cantidad y el tipo de nodos que especificas crean el primer grupo de nodos del clúster. Puedes realizar las siguientes tareas de grupos de nodos para un clúster existente a medida que cambian sus requisitos de procesamiento:
Agrega un grupo de nodos nuevo: Agrega grupos de nodos nuevos a medida que aumenta la demanda de las cargas de trabajo del clúster.
Visualiza un grupo de nodos: Consulta las características y el estado de tus grupos de nodos existentes.
Cambia el tamaño de un grupo de nodos: Escala verticalmente o reduce verticalmente de forma manual tus grupos de nodos para adaptarlos a las fluctuaciones del tráfico de las cargas de trabajo.
Borra un grupo de nodos: Quita los grupos de nodos si disminuye la demanda de las cargas de trabajo del clúster o si deseas borrar los tipos de máquinas que ya no son prudentes para las operaciones de contenedores.
Para obtener más información sobre los grupos de nodos en un clúster, consulta Acerca de los nodos.
Este documento está dirigido a los desarrolladores de aplicaciones dentro del grupo de operadores de aplicaciones y a los administradores de TI dentro del grupo de administradores de la plataforma, que son responsables de administrar los clústeres de Kubernetes dentro de su organización. Para obtener más información, consulta Públicos de la documentación de GDC aislado.
Antes de comenzar
Para completar las tareas de este documento, debes solicitar los permisos necesarios y preparar tu entorno.
Solicita roles de IAM
Debes tener roles específicos para obtener los permisos que necesitas para administrar grupos de nodos en un clúster de Kubernetes. Los roles que necesitas dependen de si trabajas en un clúster compartido con alcance de organización o en un clúster estándar con alcance de proyecto. Para obtener más información, consulta Configuraciones de clústeres de Kubernetes.
Roles de clúster compartidos
Para crear, borrar, editar o ver los grupos de nodos de un clúster compartido, comunícate
con el administrador de la organización de IAM para solicitar el rol de 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
Comunícate con el administrador de proyectos de IAM para solicitar los siguientes roles:
Administrador de clústeres estándar (
standard-cluster-admin): Crea, borra, edita o visualiza los grupos de nodos de un clúster estándar.Desarrollador de clústeres (
cluster-developer): Crea, borra, edita o visualiza un clúster estándar. Este rol es necesario para ver los detalles del grupo de nodos del clúster desde la consola de GDC.
Estos roles están vinculados al espacio de nombres de tu proyecto.
Prepara el entorno
Para ejecutar comandos en un clúster de Kubernetes con la API, asegúrate de tener los siguientes recursos:
Busca el nombre del clúster de Kubernetes o pregúntale 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 reemplazar
KUBERNETES_CLUSTER_NAMEen estas instrucciones.Accede y genera el archivo kubeconfig del servidor de la API de administración para el clúster de Kubernetes.
Usa la ruta de acceso de kubeconfig del servidor de la API de administración para reemplazar
MANAGEMENT_API_SERVERen estas instrucciones.
Agregue un grupo de nodos
Para agregar un grupo de nodos a un clúster de Kubernetes existente, completa los siguientes pasos:
Console
En el selector de proyectos, elige tu proyecto u organización.
Los clústeres estándar tienen alcance de proyecto y los clústeres compartidos tienen alcance de organización. Selecciona el permiso 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 de la lista de clústeres. Se muestra la página Detalles del clúster.
Selecciona Grupos de nodos > Agregar grupo de nodos.
Asigna un nombre para el 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
Clustercon la CLI dekubectlusando el editor interactivo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERReemplaza lo siguiente:
KUBERNETES_CLUSTER_NAME: Es el nombre del clúster.KUBERNETES_CLUSTER_NAMESPACE: Es el espacio de nombres del clúster. Para los clústeres compartidos, usa el espacio de nombresplatform. Para los clústeres estándar, usa el espacio de nombres del proyecto del clúster.MANAGEMENT_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API zonal en el que se aloja el clúster de Kubernetes.
Agrega una entrada nueva 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_SCHEMEReemplaza 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: el nombre del grupo de nodosNUMBER_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: Es el esquema de partición de GPU, si ejecutas cargas de trabajo de GPU. Por ejemplo,mixed-2La GPU no se particiona si no se configura este campo. Para conocer los perfiles de GPU de instancias múltiples (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 selector de proyectos, elige tu proyecto u organización.
Los clústeres estándar tienen alcance de proyecto y los clústeres compartidos tienen alcance de organización. Selecciona el permiso 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 de la lista de clústeres. 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. Puedes administrar los grupos de nodos del clúster desde esta página.
API
Visualiza los grupos de nodos de un clúster de Kubernetes específico:
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ -o json --kubeconfig MANAGEMENT_API_SERVER | \ jq .status.workerNodePoolStatusesReemplaza lo siguiente:
KUBERNETES_CLUSTER_NAME: Es el nombre del clúster.KUBERNETES_CLUSTER_NAMESPACE: Es el espacio de nombres del clúster. Para los clústeres compartidos, usa el espacio de nombresplatform. Para los clústeres estándar, usa el espacio de nombres del proyecto del clúster.
El resultado es similar a lo 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 } ]
Cambia el tamaño de los grupos de nodos
Puedes cambiar el tamaño de los grupos de nodos de forma manual en un clúster de Kubernetes aumentando o disminuyendo la escala del grupo. No puedes seleccionar un nodo específico para quitarlo cuando reduces la escala de un grupo de nodos.
Para escalar un grupo de nodos en un clúster existente, completa los siguientes pasos:
Console
En el selector de proyectos, elige tu proyecto u organización.
Los clústeres estándar tienen alcance de proyecto y los clústeres compartidos tienen alcance de organización. Selecciona el permiso correcto para ver el tipo de clúster de Kubernetes adecuado.
En el panel, selecciona el proyecto en el que se encuentra el clúster que deseas editar.
En el menú de navegación, selecciona Kubernetes Engine > Clústeres.
Selecciona el nombre del clúster con el que está asociado el grupo de nodos. Se muestra la página Detalles del clúster.
Haz clic en la pestaña Grupos de nodos.
Selecciona el ícono de edit Editar para el grupo de nodos al que deseas cambiar el tamaño. Aparecerá el mensaje Editar grupo de nodos.
Actualiza el campo Cantidad de nodos para reflejar la nueva cantidad de nodos necesarios en el grupo de nodos. Puedes aumentar o disminuir la cantidad de nodos para que se ajuste a los requisitos de tu carga de trabajo.
Haz clic en Guardar.
Vuelve a la pestaña Grupos de nodos del clúster y confirma que el grupo de nodos con el tamaño cambiado tenga el estado
Readyy la cantidad correcta de nodos. El grupo de nodos puede tardar unos minutos en escalar según tu especificación.
API
Abre la especificación del recurso personalizado
Clustercon la CLI de kubectl usando el editor interactivo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERReemplaza lo siguiente:
KUBERNETES_CLUSTER_NAME: Es el nombre del clúster que aloja el grupo de nodos.KUBERNETES_CLUSTER_NAMESPACE: Es el espacio de nombres del clúster. Para los clústeres compartidos, usa el espacio de nombresplatform. Para los clústeres estándar, usa el espacio de nombres del proyecto del clúster.MANAGEMENT_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API zonal en el que se aloja el clúster de Kubernetes.
Actualiza el campo
nodeCountdel grupo de nodos para cambiar el tamaño:nodePools: # Several lines of code are omitted here. - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: NUMBER_OF_WORKER_NODESReemplaza
NUMBER_OF_WORKER_NODESpor la cantidad actualizada de nodos trabajadores que se aprovisionarán en el grupo de nodos.Guarda el archivo y sal del editor.
Para verificar que se haya completado el escalamiento de nodos, revisa 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
readyNodesrefleje la cantidad de nodos que estableciste para el grupo de nodos. El grupo de nodos puede tardar unos minutos en escalar según tu especificación.
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 requisitos.
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 selector de proyectos, elige tu proyecto u organización.
Los clústeres estándar tienen alcance de proyecto y los clústeres compartidos tienen alcance de organización. Selecciona el permiso 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 deseas borrar.
Selecciona Grupos de nodos.
Haz clic en delete Borrar junto al grupo de nodos que quieres borrar.
API
Abre la especificación del recurso personalizado
Clustercon la CLI de kubectl usando el editor interactivo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERReemplaza lo siguiente:
KUBERNETES_CLUSTER_NAME: Es el nombre del clúster.KUBERNETES_CLUSTER_NAMESPACE: Es el espacio de nombres del clúster. Para los clústeres compartidos, usa el espacio de nombresplatform. Para los clústeres estándar, usa el espacio de nombres del proyecto del clúster.MANAGEMENT_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API zonal en el que se aloja el clúster de Kubernetes.
Quita 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 quitar todos los campos del grupo de nodos que estás borrando.
Guarda el archivo y sal del editor.
¿Qué sigue?
- Mantén clústeres de Kubernetes
- Cargas de trabajo de contenedores en GDC
- Aísla las cargas de trabajo de los contenedores