En este documento, se describe el escalador automático del clúster, que controla automáticamente el tamaño de tus grupos de nodos. El escalador automático del clúster se habilita cuando especificas valores mínimos y máximos para la cantidad de nodos en un grupo de nodos. Especificas esos valores cuando creas un grupo de nodos o actualizas un grupo de nodos.
Realiza un ajuste de escala automático en un grupo de nodos
El escalador automático del clúster cambia el tamaño de la cantidad de nodos en un grupo de nodos de forma automática según las exigencias de tus cargas de trabajo. No es necesario que agregues o quites nodos de forma manual ni que sobreaprovisiones tus grupos de nodos. Solo debes especificar un tamaño mínimo y máximo para el grupo de nodos y dejar que los cambios necesarios se hagan de manera automática.
Si es necesario borrar o mover recursos mientras se realiza el ajuste de escala automático del clúster, es posible que las cargas de trabajo sufran interrupciones transitorias. Por ejemplo, si tu carga de trabajo consta de un controlador con una sola réplica, es posible que el Pod de esa réplica se reprograme en otro nodo si se borra el actual. Debido a esto, debes diseñar tus cargas de trabajo para tolerar posibles interrupciones o asegurarte de que no se interrumpan los Pods críticos.
Cómo funciona el escalador automático del clúster
El escalador automático del clúster funciona por grupo de nodos. Cuando usas el escalador automático del clúster a fin de configurar un grupo de nodos, especificas un tamaño mínimo y máximo para el grupo de nodos. Puedes cambiar el tamaño mínimo y máximo cuando creas un grupo de nodos o actualizas un grupo de nodos.
El escalador automático del clúster aumenta o disminuye el tamaño del grupo de nodos automáticamente según las solicitudes de recursos (no el uso real) en ese grupo de nodos. El escalador automático del clúster agrega nodos si los objetos del Pod no son programables y no hay suficiente capacidad en el grupo de nodos para cumplir con las solicitudes.
El escalador automático de clústeres también quita los nodos si tienen poco uso y todos los objetos del Pod podrían programarse en una menor cantidad de nodos. Si un nodo no se puede desviar de forma correcta después de 10 minutos, se forzará su finalización. Este período no se puede configurar.
Si un Pod solicita muy pocos recursos (por ejemplo, si los valores predeterminados son insuficientes), el escalador automático del clúster no corrige la situación. Para ayudar a garantizar que el escalador automático del clúster funcione de la manera más precisa posible, debes crear solicitudes de recursos adecuadas para todas las cargas de trabajo. Si deseas obtener más información, consulta Administra recursos para contenedores.
Criterios operativos
El escalador automático del clúster actúa según las siguientes suposiciones cuando cambia el tamaño de un grupo de nodos:
- Todos los objetos del Pod replicados se pueden reiniciar en otro nodo, aunque es posible que esto provoque una interrupción breve. Si tu carga de trabajo no tolera la interrupción, configura la carga de trabajo para que se ejecute en un grupo de nodos con el ajuste de escala automático inhabilitado. Para obtener más información, consulta Controla la programación con taints de nodo.
- El escalador automático del clúster puede anular cualquier operación manual de administración de nodos que realices.
- Todos los nodos de un grupo tienen el mismo conjunto de etiquetas.
- El escalador automático del clúster selecciona un grupo de nodos que tiene la menor cantidad de CPU inactiva o memoria sin usar después del escalamiento vertical. Este comportamiento afecta a qué grupos de nodos se escalan verticalmente si tienes tamaños de nodos diferentes (por ejemplo, CPU alta o nodos de memoria alta) en el mismo clúster.
Tamaño mínimo y máximo del grupo de nodos
Puedes especificar el tamaño mínimo y máximo de cada grupo de nodos del clúster con las marcas min-nodes
y max-nodes
. Para inhabilitar el ajuste de escala automático, configura
min-nodes
y max-nodes
con el mismo número. El escalador automático del clúster toma decisiones de escalamiento dentro de estos límites de tamaño.
Cuando establezcas el tamaño máximo de tus grupos de nodos, asegúrate de que sea lo bastante grande como para ejecutar todas tus cargas de trabajo. Si los grupos de nodos de tu clúster no tienen suficiente memoria y CPU disponibles para ejecutar todas tus cargas de trabajo, pueden ocurrir interrupciones.
Usa un PodDisruptionBudget
para proteger las cargas de trabajo
Puedes configurar GKE on AWS para obtener protección contra la interrupción de las cargas de trabajo
con un PodDisruptionBudget
. Cuando creas un PodDisruptionBudget
, especificas
la cantidad mínima de réplicas de Pod que deben estar disponibles o la cantidad máxima
de réplicas de Pod que pueden no estar disponibles en un momento determinado. Para obtener más
información, consulta
Especifica un presupuesto de interrupción para tu aplicación.
Escala verticalmente desde cero nodos
A partir de las siguientes versiones de GKE en AWS, el escalador automático del clúster admite el escalamiento vertical de grupos de nodos desde cero nodos:
- Versión 1.29 y posteriores
- Versiones de 1.28 de 1.28.8-gke.800 y posteriores
- Versiones de 1.27 de 1.27.12-gke.800 y posteriores
Si usas una versión anterior, debes actualizar el clúster a una de estas versiones para usar esta función. Para habilitar esta función en los clústeres existentes, actualiza tu clúster a una versión compatible y, luego, realiza una actualización progresiva de tus grupos de nodos; para ello, actualiza su versión de Kubernetes. Para obtener más información acerca de cómo actualizar los grupos de nodos, consulta Actualiza un grupo de nodos.
El escalador automático del clúster respeta las etiquetas y los taints que defines en los grupos de nodos cuando toma decisiones de escalamiento, incluso cuando no hay nodos disponibles para referencia. GKE en AWS establece automáticamente la etiqueta y el taint necesarios en el grupo de ajuste de escala automático de AWS subyacente del grupo de nodos. Para obtener más información acerca de estas etiquetas, consulta la sección Configuración de descubrimiento automático de la página de GitHub que describe la configuración del escalador automático del clúster para AWS.
Cuando se configuran la etiqueta y el taint, GKE on AWS permite que el escalador automático del clúster cree plantillas de nodo precisas. Las plantillas de nodos son representaciones virtuales de nodos que incluyen la configuración de nodos, las etiquetas y los taints correctos, incluso cuando no hay nodos físicos presentes en el grupo de nodos. Como resultado de tener estas plantillas de nodo precisas, el escalador automático del clúster puede tomar decisiones de escalamiento vertical correctas.
Cuando configures taints en tus grupos de nodos, ten en cuenta que los grupos de ajuste de escala automático de AWS tienen una limitación: si aplicas varios taints con la misma clave, pero diferentes combinaciones de valores y efectos, el escalador automático del clúster solo considera el último taint aplicado con la clave duplicada.