AWS EKS 集群自动扩展

Posted

技术标签:

【中文标题】AWS EKS 集群自动扩展【英文标题】:AWS EKS Cluster Auto scale 【发布时间】:2020-02-26 12:50:57 【问题描述】:

我的应用程序有一个 AWS EKS 集群 1.12 版本,我们在集群中部署了 6 个应用程序,一切正常,在创建节点时,我添加了一个自动缩放节点组,该节点组跨越可用区,最少 3 个和最多 6 个节点,因此所需的 3 个节点运行良好。

我有这样的场景: 当发生一些内存峰值时,我需要获得更多节点,正如我在自动缩放组最大节点中提到的那样,所以在集群设置时我没有添加集群自动缩放。 有人可以解决以下疑问

    根据AWS documentation cluster auto scale,如果我们的节点组位于多个可用区,则不支持 如果我们需要根据 aws 文档创建多个节点组,如何提及最小最大节点,是否像整个集群一样? 如何实现内存指标的自动缩放,因为默认情况下这不会像 CPU 指标那样实现

【问题讨论】:

【参考方案1】:

您应该为每个可用区创建一个节点组。因此,如果您的集群大小为 6 个节点,则在每个 AZ 中创建 2 个实例节点组。您还可以跨 AZ 分布 Pod 以实现高可用性。如果你看集群autoscaler documentation,它建议:

集群自动扩缩器不支持跨越的 Auto Scaling 组 多个可用区;相反,您应该使用 Auto Scaling 为每个可用区分组并启用 --balance-similar-node-groups 功能。如果您确实使用跨多个可用区的单个 Auto Scaling 组,您会发现 AWS 意外终止节点而没有耗尽它们 因为重新平衡功能。

我假设您想根据内存扩展 pod。为此,您必须使用度量服务器或 Prometheus 并创建一个基于内存扩展的 HPA。你可以找到working example here。

【讨论】:

以上是关于AWS EKS 集群自动扩展的主要内容,如果未能解决你的问题,请参考以下文章

AWS EKS Horizontal Pod Autoscaler(HPA)

如何根据 EKS 中的平均内存使用量自动扩展 Kubernetes Pod?

在 AWS EKS 上扩展 pod 时出现 502 ALB 错误

在 AWS EKS 上部署 EMQX MQTT 集群

EKS:在特定 AWS 自动缩放组上运行特定服务(pod)

AWS EKS Cluster Autoscaler - 缩减策略