Descripción de pool de nodos
Presentación
CCE presenta los grupos de nodos para ayudarle a gestionar mejor los nodos en los clústeres de Kubernetes. Un grupo de nodos contiene un nodo o un grupo de nodos con una configuración idéntica en un clúster.
Puede crear grupos de nodos personalizados en la consola de CCE. Con los grupos de nodos, puede crear, gestionar y destruir rápidamente nodos sin afectar al clúster. Todos los nodos de un grupo de nodos personalizado tienen parámetros y tipo de nodo idénticos. No se puede configurar un solo nodo en un grupo de nodos; cualquier cambio de configuración afecta a todos los nodos del grupo de nodos.
También puede utilizar grupos de nodos para el ajuste automático (soportado únicamente por grupos de nodos de pago por uso).
- Cuando un pod de un clúster no se puede programar debido a la insuficiencia de recursos, se pueden activar automáticamente la expansión horizontal.
- Cuando hay un nodo inactivo o se cumple un umbral de métrica de monitorización, la reducción horizontal se puede activar automáticamente.
Esta sección describe cómo funcionan los grupos de nodos en CCE y cómo crear y gestionar grupos de nodos.
Arquitectura de grupo de nodos
En general, todos los nodos de un grupo de nodos tienen los mismos atributos:
- SO del nodo
- Especificaciones del nodo.
- Modo de inicio de sesión de nodo.
- Tiempo de ejecución del nodo.
- Parámetros de inicio de los componentes de Kubernetes en un nodo
- Script de inicio definido por el usuario de un nodo
- Kubernetes Labels y Taints
CCE proporciona los siguientes atributos extendidos para grupos de nodos:
- Sistema operativo del grupo de nodos
- Número máximo de pods en cada nodo de un grupo de nodos
Descripción del DefaultPool
DefaultPool no es un grupo de nodos real. Solo clasifica los nodos que no están en los grupos de nodos creados por el usuario. Estos nodos se crean directamente en la consola o invocando a las API. DefaultPool no admite ninguna función de grupo de nodos creada por el usuario, incluida la configuración de ajuste y parámetros. DefaultPool no se puede editar, eliminar, expandir o escalar automáticamente, y los nodos de él no se pueden migrar.
Escenarios posibles
Cuando se requiere un clúster a gran escala, se recomienda utilizar grupos de nodos para gestionar los nodos.
En la siguiente tabla se describen varios escenarios de gestión de clústeres a gran escala y las funciones de grupos de nodos en cada escenario.
Escenario |
Función |
---|---|
Múltiples nodos heterogéneos (con diferentes modelos y configuraciones) en el clúster |
Los nodos se pueden agrupar en diferentes grupos para la gestión. |
Se requiere ajuste de nodos frecuente en un clúster |
Los grupos de nodos admiten el ajuste automático para agregar o reducir nodos de forma dinámica. |
Reglas de programación de aplicaciones complejas en un clúster |
Las etiquetas de grupo de nodos se pueden utilizar para especificar rápidamente reglas de programación de servicios. |
Funciones y precauciones
Función |
Descripción |
Notas |
---|---|---|
Creación de un grupo de nodos |
Agregar un grupo de nodos. |
Se recomienda que un clúster no contenga más de 100 grupos de nodos. |
Eliminación de un grupo de nodos |
Cuando se elimina un grupo de nodos, los nodos del grupo de nodos se eliminan primero. Cuando se elimina un grupo de nodos anual/mensual, los nodos se migrarán primero al grupo de nodos predeterminado. Las cargas de trabajo de los nodos originales se migran automáticamente a los nodos disponibles en otros grupos de nodos. |
Si los pods en el grupo de nodos tienen un selector de nodos específico y ninguno de los otros nodos en el clúster satisface el selector de nodos, los pods se volverán no programables. |
Habilitar el ajuste automático para un grupo de nodos |
Después de activar el ajuste automático, los nodos se crearán o eliminarán automáticamente en el grupo de nodos en función de las cargas del clúster. |
Se recomienda no almacenar datos importantes en los nodos de un grupo de nodos porque después del ajuste automático, los datos no se pueden restaurar ya que los nodos se pueden eliminar. |
Habilitar el ajuste automático para un grupo de nodos |
Después de deshabilitar el ajuste automático, el número de nodos en un grupo de nodos no cambiará automáticamente con las cargas del clúster. |
/ |
Ajustar el tamaño de un grupo de nodos |
El número de nodos en un grupo de nodos se puede ajustar directamente. Si se reduce el número de nodos, los nodos se eliminan aleatoriamente del grupo de nodos actual. |
Después de activar el ajuste automático, no se recomienda ajustar manualmente el tamaño del grupo de nodos. |
Cambiar las configuraciones de grupo de nodos |
Puede modificar el nombre del grupo de nodos, la cantidad de nodos, las etiquetas de Kubernetes (y su cantidad), las etiquetas de recursos y las manchas y ajustar la configuración del disco, el SO y el motor de contenedor del grupo de nodos. |
Las etiquetas y manchas de Kubernetes eliminadas o agregadas (así como su cantidad) se aplicarán a todos los nodos del grupo de nodos, lo que puede provocar una reprogramación de pods. Por lo tanto, realice esta operación con precaución. |
Eliminación de un nodo de un grupo de nodos |
Los nodos de un grupo de nodos se pueden migrar al grupo de nodos predeterminado del mismo clúster. |
Los nodos del grupo de nodos predeterminado no se pueden migrar a otros grupos de nodos y los nodos de un grupo de nodos creado por el usuario no se pueden migrar a otros grupos de nodos creados por el usuario. |
Clonar un grupo de nodos |
Puede copiar la configuración de un grupo de nodos existente para crear un nuevo grupo de nodos. |
/ |
Ajustar los parámetros de Kubernetes |
Puede configurar los componentes principales con granularidad fina. |
|
Despliegue de una carga de trabajo en un grupo de nodos especificado
Al crear una carga de trabajo, puede restringir que los pods se ejecuten en un grupo de nodos especificado.
Por ejemplo, en la consola de CCE, puede establecer la afinidad entre la carga de trabajo y el nodo en la página de ficha Scheduling Policies de la página de detalles de la carga de trabajo para desplegar a la fuerza la carga de trabajo en un grupo de nodos específico. De esta manera, la carga de trabajo se ejecuta solo en los nodos del grupo de nodos. Si necesita controlar mejor dónde se programará la carga de trabajo, puede utilizar políticas de afinidad o antiafinidad entre las cargas de trabajo y los nodos que se describen en Política de programación (afinidad/antiafinidad).
Por ejemplo, puede usar la solicitud de recurso de contenedor como un nodeSelector para que las cargas de trabajo se ejecuten solo en los nodos que cumplan con la solicitud de recurso.
Si el archivo de definición de carga de trabajo define un contenedor que requiere cuatro CPU, el planificador no elegirá los nodos con dos CPU para ejecutar las cargas de trabajo.
Operaciones relacionadas
Puede iniciar sesión en la consola de CCE y consultar las siguientes secciones para realizar operaciones en grupos de nodos: