Uso del perfil de escalador automático para configurar el escalado automático de clústeres en AKS habilitado por Arc
Se aplica a: AKS en Azure Stack HCI 22H2, AKS en Windows Server
Puede usar los parámetros del objeto de perfil de escalador automático para definir eventos de escalado en AKS habilitados por Arc. El perfil del escalador automático del clúster afecta a todos los grupos de nodos que usan el escalador automático del clúster; No se puede establecer un perfil de escalador automático por grupo de nodos. En este artículo se explica cómo funciona el escalador automático, se describen los valores de perfil predeterminados del escalador automático y se describe cómo configurar y usar una definición de perfil.
Uso de perfiles
Los perfiles de escalador automático de clúster tienen los atributos siguientes:
- Los perfiles de escalador automático se aplican a todos los grupos de nodos de un clúster.
- Los perfiles son objetos globales de nivel de implementación.
- Hay varios perfiles disponibles en AKS Arc.
- Solo se asigna un perfil a un clúster determinado. El perfil se usa para todos los grupos de nodos del clúster.
- Los cambios en el perfil se aplican a todos los grupos de nodos que tienen habilitada la función de escalador automático.
Configuración del perfil
El perfil predeterminado consta de los valores predeterminados siguientes. Puede actualizar la siguiente configuración.
Configuración | Descripción | Default value |
---|---|---|
min-node-count |
El número mínimo de nodos al que se asigna este perfil se puede reducir verticalmente. | 0 |
max-node-count |
Número máximo de nodos al que se asigna este perfil puede escalar verticalmente el grupo de nodos al que se asigna este perfil. | 1 |
scan-interval |
Frecuencia con la que se vuelve a evaluar el clúster para escalar o reducir verticalmente. | 10 segundos |
scale-down-delay-after-add |
Cuánto tiempo después del escalado vertical se reanuda la evaluación de la reducción horizontal. | 10 minutos |
scale-down-delay-after-delete |
Cuánto tiempo después de la eliminación del nodo se reanuda la evaluación de la reducción horizontal. | scan-interval |
scale-down-delay-after-failure |
Cuánto tiempo después de un error de reducción vertical que se reanuda la evaluación de reducción vertical. | 3 minutos |
scale-down-unneeded-time |
Cuánto tiempo debe ser innecesario un nodo antes de que sea válido para la reducción vertical. | 10 minutos |
scale-down-unready-time |
Cuánto tiempo debe ser innecesario un nodo no listo antes de que sea válido para la reducción vertical. | 20 minutos |
scale-down-utilization-threshold |
Nivel de uso de nodos, definido como la suma de los recursos solicitados divididos por capacidad, por debajo de los cuales se puede considerar un nodo para reducir verticalmente. | 0.5 |
max-graceful-termination-sec |
Número máximo de segundos que el escalador automático del clúster espera la terminación del pod al intentar reducir verticalmente un nodo. | 600 segundos |
balance-similar-node-groups |
Detecta grupos de nodos similares y equilibra el número de nodos entre ellos. | false |
expander |
Tipo de grupo de nodos expander que se va a usar en el escalado vertical. Valores posibles: most-pods , random , least-waste , priority . |
random |
skip-nodes-with-local-storage |
Si es true, cluster autoscaler nunca elimina nodos con pods con almacenamiento local, por ejemplo, EmptyDir o HostPath. | true |
skip-nodes-with-system-pods |
Si es true, cluster autoscaler nunca elimina nodos con pods de kube-system (excepto DaemonSet o pods reflejados). |
true |
max-empty-bulk-delete |
Número máximo de nodos vacíos que se pueden eliminar al mismo tiempo. | 10 |
new-pod-scale-up-delay |
En escenarios como la escala de ráfagas o lotes en los que no desea que la ENTIDAD de certificación actúe antes de que el programador de Kubernetes pueda programar todos los pods, puede indicar a la ENTIDAD de certificación que omita los pods no programados antes de que tengan una antigüedad determinada. | 0 segundos |
max-total-unready-percentage |
Porcentaje máximo de nodos no leídos en el clúster. Una vez que se haya superado este porcentaje, la CA detiene las operaciones. | 45 % |
max-node-provision-time |
Tiempo máximo que la escalabilidad automática espera a que se aprovisione un nodo. | 15 minutos |
Notas sobre la configuración del escalador automático
Puede cambiar la configuración en el perfil del escalador automático del clúster mediante el cmdlet Set-AksHciAutoScalerConfig de PowerShell.
El escalador automático de clúster toma sus decisiones de escalado en función de los recuentos mínimo y máximo establecidos en cada grupo de nodos, pero no los aplica después de actualizar los recuentos mínimo o máximo. Por ejemplo, establecer un recuento mínimo de 5 cuando el número de nodos actual es 3 no escalará inmediatamente el grupo hasta 5.
Si el recuento mínimo del grupo de nodos tiene un valor superior al número actual de nodos, se respeta la nueva configuración mínima o máxima cuando hay suficientes pods no programados que requieren dos nuevos nodos adicionales y desencadenan un evento de escalador automático. Tras el evento de escala, se respetan los nuevos límites de recuento.
También puede configurar detalles más pormenorizados del escalador automático de clúster si cambia los valores predeterminados en el perfil del escalador automático para todo el clúster. Por ejemplo, un evento de reducción vertical se produce después de que los nodos estén infrautilizados durante 10 minutos. Si tiene cargas de trabajo que se ejecutan cada 15 minutos, puede que quiera cambiar el perfil del escalador automático para reducir verticalmente los nodos infrautilizados después de 15 o 20 minutos. Cuando se habilita el escalador automático del clúster, se usa un perfil predeterminado a menos que se especifiquen otros valores.
Guardado y carga del perfil de escalador automático
Puede guardar y almacenar el perfil de escalador automático en una definición de perfil como un archivo YAML. Puede editar manualmente el archivo YAML desde un editor de texto y puede cargar definiciones guardadas.
Guardado de la definición de perfil
Guarde una copia del perfil como un archivo YAML mediante kvactl
. Después de definir el perfil, ejecute los siguientes comandos:
kvactl.exe autoscalerprofile get --name default --kubeconfig (Get-AksHciConfig).Kva.kubeconfig --outputformat=yaml > def.yaml
Edición de la definición de perfil
Puede editar la definición de perfil en el archivo YAML. Por ejemplo, puede abrir def.yaml en el Bloc de notas, Visual Studio Code u otros editores de texto.
Carga de la definición de perfil
Puede cargar la definición de perfil mediante kvactl
desde el archivo YAML guardado. Ejecute el siguiente comando:
kvactl.exe autoscalerprofile create --profileconfig .\def-new.yaml --kubeconfig (Get-AksHciConfig).Kva.kubeconfig