使用自动缩放程序配置文件在 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
expander 要在纵向扩展中使用的节点池扩展器的类型。 可能的值:most-podsrandomleast-wastepriority random
skip-nodes-with-local-storage 如果 为 true,群集自动缩放程序永远不会删除具有本地存储的 Pod 的节点,例如 EmptyDirHostPath true
skip-nodes-with-system-pods 如果 为 true,群集自动缩放程序永远不会从 kube-system 中删除具有 Pod 的节点(DaemonSet 或镜像 Pod 除外)。 true
max-empty-bulk-delete 可同时删除的空节点的最大数目。 10
new-pod-scale-up-delay 对于在 Kubernetes 计划程序可以计划所有 Pod 之前不希望 CA 执行操作的突发/批处理缩放,可以告诉 CA 在某个年龄之前忽略未计划的 Pod。 0 秒
max-total-unready-percentage 群集中未就绪节点的最大百分比。 超过此百分比后,CA 将暂停操作。 45%
max-node-provision-time 自动缩放程序等待节点预配的最长时间。 15 分钟

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

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

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

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

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

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

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

保存配置文件定义

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

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

后续步骤