Compartir a través de


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

Pasos siguientes