使用自动缩放程序配置文件在 Azure Arc 启用的 AKS 中配置群集自动缩放

适用于:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS

可以使用自动缩放程序配置文件对象中的参数在 Arc 启用的 AKS 中定义缩放事件。群集自动缩放程序配置文件会影响使用群集自动缩放程序的所有节点池。 无法为每个节点池设置自动缩放程序配置文件。 本文介绍自动缩放程序的工作原理,介绍默认的自动缩放程序配置文件值,并介绍如何配置和使用配置文件定义。

使用配置文件

群集自动缩放程序配置文件具有以下属性:

  • 自动缩放程序配置文件适用于群集中的所有节点池。
  • 配置文件是全局部署级别对象。
  • AKS Arc 中提供了多个配置文件。
  • 只会将一个配置文件分配到给定的群集。 该配置文件用于该群集中的所有节点池。
  • 对配置文件所做的更改将应用于启用了自动缩放程序功能的所有节点池。

配置文件设置

默认配置文件由以下默认值组成。 可以更新以下设置。

设置 说明 默认值
min-node-count 分配此配置文件的节点池可以缩减到的最小节点计数。 0
max-node-count 分配此配置文件的节点池可以纵向扩展到的最大节点计数。 1
scan-interval 纵向扩展或纵向缩减群集的重新评估频率。 10 秒
scale-down-delay-after-add 纵向扩展后多长时间纵向缩减评估恢复。 10 分钟
scale-down-delay-after-delete 删除节点后多长时间纵向缩减评估恢复。 scan-interval
scale-down-delay-after-failure 纵向缩减失败后多长时间纵向缩减评估恢复。 3 分钟
scale-down-unneeded-time 节点闲置多长时间之后才有资格进行纵向缩减。 10 分钟
scale-down-unready-time 未准备就绪的节点闲置多长时间之后才有资格进行纵向缩减。 20 分钟
scale-down-utilization-threshold 节点利用率级别,定义为所请求资源的总和除以容量,低于此级别可考虑进行纵向缩减。 0.5
max-graceful-termination-sec 群集自动缩放程序在尝试纵向缩减节点时等待 Pod 终止的最大秒数。 600 秒
balance-similar-node-groups 检测类似节点池并在各池之间均衡节点数。 false
扩展器 要在纵向扩展中使用的节点池扩展器的类型。 可能的值:most-pods、random、least-waste、priority。 random
skip-nodes-with-local-storage 如果为 true,则群集自动缩放程序将永远不会删除具有包含本地存储的 Pod 的节点,例如 EmptyDir 或 HostPath。 true
skip-nodes-with-system-pods 如果为 true,则群集自动缩放程序将永远不会从 kube-system 中删除具有 Pod 的节点(DaemonSet 或镜像 Pod 除外)。 true
max-empty-bulk-delete 可同时删除的空节点的最大数目。 10 个节点
new-pod-scale-up-delay 对于突发/批量缩放场景,如果你希望 CA 在 kubernetes 计划程序计划所有 Pod 之后再进行操作,可以指示 CA 忽略未达到一定存在时间的计划外 Pod。 0 秒
max-total-unready-percentage 群集中未就绪节点的最大百分比。 超过此百分比后,CA 将暂停操作。 45%
max-node-provision-time 自动缩放程序等待节点预配的最长时间。 15 分钟

有关自动缩放程序配置的说明

可以使用 Set-AksHciAutoScalerConfig PowerShell cmdlet 更改群集自动缩放程序配置文件中的设置。

群集自动缩放程序根据每个节点池上设置的最小计数和最大计数来做出缩放决定,但更新最小计数或最大计数后不会强制执行。 例如,当当前节点计数为 3 时,将最小计数设置为 5 不会立即将池扩展到 5。

如果节点池上的最小计数值高于当前节点数,则当存在足够多的不可计划 Pod 需要两个新的附加节点并触发自动缩放程序事件时,将遵循新的最小值或最大值设置。 缩放事件之后,将遵循新的计数限制。

还可以通过更改群集范围的自动缩放程序配置文件中的默认值,来配置群集自动缩放程序的更高粒度详细信息。 例如,在节点未充分利用 10 分钟后发生纵向缩减事件。 如果你的工作负载每 15 分钟运行一次,则可能需要更改自动缩放程序配置文件,以便在 15 到 20 分钟后纵向缩减未充分利用的节点。 启用群集自动缩放程序后,除非指定不同的设置,否则将使用默认配置文件。

保存并加载自动缩放程序配置文件

可以将自动缩放程序配置文件保存为 YAML 文件并将其存储在配置文件定义中。 可以从文本编辑器手动编辑 YAML 文件,并且可以加载保存的定义。

保存配置文件定义

使用 kvactl将配置文件的副本保存为 YAML 文件。 定义配置文件后,运行以下命令:

kvactl.exe autoscalerprofile get --name default --kubeconfig (Get-AksHciConfig).Kva.kubeconfig --outputformat=yaml > def.yaml

编辑配置文件定义

可以在 YAML 文件中编辑配置文件定义。 例如,可以在记事本、Visual Studio Code或其他文本编辑器中打开 def.yaml

加载配置文件定义

可以使用 从保存的 YAML 文件加载配置文件定义 kvactl 。 运行以下命令:

kvactl.exe autoscalerprofile create --profileconfig .\def-new.yaml --kubeconfig (Get-AksHciConfig).Kva.kubeconfig

后续步骤