En clústeres grandes o cargas de trabajo sensibles a la latencia donde node auto scaling resulta insuficiente, habilite node instant scaling para aprovisionar nodos con mayor rapidez y reducir costos.
Antes de empezar
Consulte node scaling para revisar los siguientes conceptos:
Funcionamiento de node instant scaling
Beneficios y casos de uso compatibles
Notas de uso
Para evitar cargos inesperados, utilice instancias pay-as-you-go. Durante el scale-in, las instancias subscription se eliminan del clúster, pero no se liberan de su cuenta.
Requisitos previos y limitaciones
Un ACK managed cluster o un ACK dedicated cluster que ejecute Kubernetes 1.24 o posterior. Consulte Manually upgrade a cluster.
Auto Scaling está activado.
-
El vSwitch del node pool de node instant scaling debe contar con direcciones IP suficientes. Llame a DescribeVSwitchAttributes para comprobar las IP disponibles.
Si las direcciones IP son insuficientes, consulte Expand cluster IP capacity by adding a secondary CIDR block.
Node instant scaling funciona únicamente con node pools cuyo Scaling Mode sea Standard. El modo Swift no es compatible.
Con ACK GOATScaler v0.5.3 o anterior, elimine manualmente los nodos sin conexión. Consulte FAQ.
En un ACK dedicated cluster, los nodos deben tener recursos suficientes para desplegar o actualizar ACK GOATScaler; de lo contrario, el escalado podría fallar.
Paso 1: Habilitar node instant scaling
Para utilizar node instant scaling, habilite el auto scaling del clúster en la página Node Pools.
Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en .
En la página Node Pools, haga clic en Enable junto a Node Scaling.
-
Si se le solicita, active Auto Scaling y otorgue los permisos necesarios.
ACK managed cluster: Autorice el rol AliyunCSManagedAutoScalerRole.
-
ACK dedicated cluster: Autorice el rol KubernetesWorkerRole y adjunte la directiva AliyunCSManagedAutoScalerRolePolicy.
En el cuadro de diálogo Node Scaling Configuration, una vez aprobada la verificación previa, haga clic en el vínculo del rol RAM (por ejemplo,
KubernetesWorkerRole-xxxx) para completar la autorización en la consola de RAM.
-
En la página Node Scaling Configuration, establezca Node Scaling Plan en Instant Scaling, configure los parámetros de escalado y haga clic en OK.
El componente de escalado desencadena automáticamente scale-outs de nodos según las condiciones de programación.
Cambie el Node Scaling Plan a Auto Scaling en cualquier momento. Siga las indicaciones en pantalla. Esta función se encuentra en fase beta. Para participar, envíe un ticket .
Parámetro
Descripción
Scale-in Threshold
La proporción entre las solicitudes de recursos y la capacidad total de recursos de un nodo en un node pool con node autoscaling habilitado.
Un nodo es apto para scale-in solo si la utilización de sus recursos de CPU y memoria se encuentra por debajo del Scale-in Threshold.
GPU Scale-in Threshold
Umbral de scale-in para instancias GPU.
Una instancia GPU es apta para scale-in únicamente cuando la utilización de CPU, memoria y GPU se sitúa por debajo del GPU Scale-in Threshold configurado.
Scale-in Trigger Delay
Retraso entre el momento en que un nodo cumple los requisitos para scale-in y la ejecución de la operación. Unidad: minutos. Valor predeterminado: 10 minutos.
ImportanteEl componente de escalado solo ejecuta un scale-in de nodo después de que se cumple la condición de Scale-in Threshold y transcurre la duración del Scale-in Trigger Delay.
Paso 2: Configurar un node pool para auto scaling
Node instant scaling se aplica únicamente a node pools con auto scaling habilitado.
Create a node pool y establezca Enable DaemonSet Pod Eviction en Auto.
Edit an existing node pool para cambiar su Scaling Mode a Auto.
Recomendación: Configure varios tipos de instancia y zonas de disponibilidad para garantizar capacidad suficiente durante los scale-outs.
(Opcional) Paso 3: Comprobar la configuración
Verifique que el auto scaling esté activo y que ACK GOATScaler esté instalado.
Comprobar el estado del node pool
En la página Scaling Mode, asegúrese de que su node pool muestre la etiqueta Auto Scaling.
Comprobar la instalación del complemento
En la página Node Pools, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Components and Add-ons .
En la página Add-ons, compruebe que el estado del complemento ACK GOATScaler sea Installed.
Eventos clave de node instant scaling
La función node instant scaling genera los siguientes eventos:
|
Nombre del evento |
Objeto |
Descripción |
|
ProvisionNode |
|
Se desencadenó correctamente un scale-out de nodo. |
|
ProvisionNodeFailed |
|
Error al desencadenar el scale-out de nodo. |
|
ResetPod |
|
Un pod no programable que desencadenó un scale-out se vuelve a poner en cola para reintento. |
|
InstanceInventoryStatusChanged |
|
Se emite cuando cambia el inventario disponible para los tipos de instancia configurados. |
Identificadores de node instant scaling
Estos identificadores son administrados por el sistema. Modificarlos puede provocar un comportamiento de escalado inesperado.
Etiquetas de nodo
goatscaler.io/managed:trueok8s.aliyun.com: true: Identifica los nodos administrados por node instant scaling. Se utiliza para evaluar las condiciones de scale-in.goatscaler.io/provision-task-id:{task-id}: ID de la tarea de scale-out. Se usa para rastreo.
Taints de nodo
goatscaler.io/node-terminating: Los nodos con este taint se marcan para scale-in.
Anotaciones de pod
goatscaler.io/provision-task-id: ID de la tarea de scale-out para este pod. El sistema espera a que el nodo inicie antes de desencadenar más scale-outs.goatscaler.io/reschedule-deadline: Tiempo límite de programación del pod. Si sigue sin poder programarse después de este plazo, el pod se vuelve a poner en cola y puede desencadenar otro scale-out.
Preguntas frecuentes
Operaciones relacionadas
Consultar el estado de salud
La función node instant scaling selecciona tipos de instancia y zonas de disponibilidad según el inventario de ECS. Revise el ConfigMap del node pool para supervisar el estado del inventario y obtener recomendaciones de tipos de instancia.
Habilitar la recopilación de registros
Para los ACK managed cluster, recopile los registros de ACK GOATScaler desde la página Control Plane Component Logs.
Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en .
-
En la pestaña Control Plane Component Logs, haga clic en Update Component y seleccione ACK GOATScaler.
En el cuadro de diálogo Update Component, seleccione
ack-goatscalery haga clic en OK.Después de la actualización, seleccione ACK GOATScaler en la lista desplegable para consultar los registros.
Actualizar ACK GOATScaler
Mantenga ACK GOATScaler actualizado para disponer de las funciones más recientes. Consulte Components.
Omitir comprobaciones de inventario para private pools
Si utiliza un private pool para garantizar capacidad, habilite SkipInventoryCheck para permitir que ACK GOATScaler omita las comprobaciones de inventario y utilice directamente los recursos del private pool.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Clusters.
-
En la página Components and Add-ons , localice ACK GOATScaler y haga clic en Configuration.
Requiere ACK GOATScaler v0.3.0-582e405-aliyun o posterior.
Establezca
SkipInventoryChecken true.