AWS EKS Cluster Autoscaler - 缩减策略
Posted
技术标签:
【中文标题】AWS EKS Cluster Autoscaler - 缩减策略【英文标题】:AWS EKS Cluster Autoscaler - Scale-In Policy 【发布时间】:2019-08-24 19:17:20 【问题描述】:我在 EKS 上部署了一个 CA(集群自动扩缩器),随后是 this post。我想知道的是,只要在该节点上部署了至少 一个 pod 即如果有 3 个节点的容量为 8 个 pod,如果第 9 个 pod 出现,CA 就会自动缩小集群将提供第 4 个节点来运行第 9 个 pod。我看到的是 CA 不断终止并创建一个从集群中随机选择的节点,从而干扰其他 pod 和节点。
我如何告诉 EKS(不定义最小节点或在 ASG 中禁用缩减策略)不要杀死至少运行 1 个 pod 的节点。任何建议将不胜感激。
【问题讨论】:
【参考方案1】:您不能将 pod 用作单元。 CA 使用资源 cpu 和内存单元。
如果集群没有足够的 cpu 或内存,则添加一个新的。
您必须使用您的请求资源(在 pod 定义中)或重新定义您的节点以采用具有更多或更少资源的实例类型,具体取决于您希望每个 pod 有多少。
或者你可以使用参数scale-down-utilization-threshold
https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-the-parameters-to-ca
【讨论】:
每个 pod 都有memory: 1500Mi
资源限制。它与scale-down-utilization-threshold
有什么关系?
您的意思是,如果节点上的 pod 的内存 + CPU 利用率低于该节点的 50%,CA 会考虑将其移除,并且可以通过 scale-down-utilization-threshold
标志进行配置?
不是资源限制,而是资源请求。如果您没有请求,CA 会认为它可以在具有 10mo 内存的节点上启动您的 pod 并杀死新节点。
抱歉延迟回复。其实我是在做实验。我还将资源请求定义为与资源限制相同。似乎 CA 仍在从 EKS 中删除一个随机节点。 PS:我正在使用 helm 在 EKS 上部署东西。
我想我必须设置scale-down-utilization-threshold
。我不知道如何根据部署中定义的 CPU 和内存来计算这个值。以上是关于AWS EKS Cluster Autoscaler - 缩减策略的主要内容,如果未能解决你的问题,请参考以下文章
如何集成 AWS + ELB + AutoScale + Docker + Spring Cloud
如何为 AutoScale 实例使用 AWS 负载均衡器代理协议?
Autoscale ProvisionedConcurrentExecutions AWS Lambda DependsOn 值 null