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?