azure - AKS 群集自动扩缩程序配置文件修改
问题描述
我们正在使用 AKS 集群 1-19.11 和我们的用户池,其中运行的应用程序 pods 处于使用状态(仅占消耗量的 30%)。因此,我们正在考虑通过减少节点池的节点数来优化成本。
因此,希望在计划减少节点数时考虑更多细节。
假设可以使用 pods requests 值估计和计算节点利用率,并且无需考虑限制范围,因为启用了自动缩放器
也可以将集群属性“scaleDownUtilizationThreshold”的自动缩放器配置文件修改为“0.5”,以增加 %.. 以及是否建议将其增加到 70%。?
解决方案
假设,
可以使用 pods requests 值估计和计算节点利用率,并且无需考虑限制范围,因为启用了自动缩放器
只要您不关心在节点资源不足的情况下哪些进程/容器会被驱逐(如果由部署或副本集或有状态集控制,则工作负载将在扩展的新节点中复活由自动缩放器)。
但是,在大多数情况下,您的工作负载会有某种优先级,并且您希望相应地设置阈值(限制),这样您就不必处理内核驱逐重要进程(可能不是导致饥饿但在评估发生时正在使用最高资源)。
也可以将集群属性“scaleDownUtilizationThreshold”的自动缩放器配置文件修改为“0.5”,以增加 %.. 以及是否建议将其增加到 70%。?
是的,scale-down-utilization-threshold
可以使用以下命令更新 Cluster Autoscaler Profile 的值:
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--cluster-autoscaler-profile scale-down-utilization-threshold=<percentage value>
[参考]
AKS 使用节点资源来帮助节点作为群集的一部分运行。这种用法可能会在节点的总资源与AKS 中的可分配资源之间产生差异。[参考]
现在scale-down-utilization-threshold
是节点利用率级别,定义为请求资源的总和除以可分配容量,低于该级别的节点可以考虑缩减。
因此,最终无法在这方面共享最佳实践,因为用户的用例、架构设计和要求决定scale-down-utilization-threshold
了集群自动缩放器应该是什么。
推荐阅读
- javascript - 使用打字稿多次分组到对象中
- javascript - 正则表达式匹配直到某个单词并清除所有前导和尾随空格
- java - 匹配字符串中的特定模式
- algorithm - 需要 AI 问题的可接受启发式
- ssh - 有没有办法在管道损坏后刷新用 rmate (sublime) 打开的文件?
- c++ - 迭代文件系统的最快方法
- geometry - n-多面体的联合
- c++ - 在 CRTP 基类构造函数中向下转换为派生类:UB 与否?
- json - Scala / Play / Joda - 找不到类型的 Json 序列化程序(字符串,org.joda.time.DateTime)
- javascript - 如何在浏览器中使用 SOCKS5 协议从 JavaScript 连接到服务器?