【问题标题】:AKS cluster autoscaller profiles modificationAKS 群集自动缩放程序配置文件修改
【发布时间】:2021-12-24 18:47:22
【问题描述】:
我们正在使用 AKS 集群 1-19.11 和我们的用户池,其中运行的应用程序 pod 正在被利用(仅占消耗量的 30%)。所以我们考虑通过减少节点池的节点数来优化成本。
因此希望在计划减少节点数时考虑更多细节。
【问题讨论】:
标签:
azure
kubernetes
azure-aks
【解决方案1】:
假设,
可以使用 Pod 请求值来估计和计算节点利用率,并且无需考虑限制范围,因为启用了自动缩放器
只要您不关心在节点资源不足的情况下哪些进程/容器会被驱逐(如果由部署或副本集或有状态集控制,则工作负载将在一个新节点中恢复)由自动缩放器缩放)。
但是,在大多数情况下,您会为您的工作负载设置某种优先级,并且您需要相应地设置阈值(限制),这样您就不必处理内核驱逐重要进程(也许不是那个导致饥饿,但在评估发生时正在使用最高资源)。
还可以将集群属性“scaleDownUtilizationThreshold”的自动缩放器配置文件修改为“0.5”,以增加 %.. 以及是否建议将其增加到 70%。 ?
是的,可以使用以下命令更新 Cluster Autoscaler Profile scale-down-utilization-threshold 的值:
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--cluster-autoscaler-profile scale-down-utilization-threshold=<percentage value>
[Reference]
AKS 使用节点资源来帮助节点作为集群的一部分运行。这种用法可能会在节点的总资源与 AKS 中的可分配资源之间产生差异。 [Reference]
现在scale-down-utilization-threshold 是节点利用率水平,定义为请求资源的总和除以可分配容量,低于该水平的节点可以考虑缩减。
因此,最终无法共享最佳实践,因为用户的用例、架构设计和要求决定了集群自动缩放器的 scale-down-utilization-threshold 应该是什么。