发布于 2026-01-06 9 阅读
0

如何在 15 分钟内将 Amazon EKS 成本降低一半?AWS AI 直播高级节省方案!

如何在15分钟内将亚马逊EKS成本降低一半

高级储蓄

AWS AI 直播!

过度配置是导致团队云账单不断增长的首要原因。但从AWS提供的数百种实例中选择最佳实例并非易事。

你如何才能知道哪些产品能够满足你的性能需求?

幸运的是,市面上有很多解决方案可以帮你做到这一点。

如果你好奇这一切是如何运作的,请跟随我的脚步,看看我是如何在 15 分钟内使用 CAST AI 将 EKS 中容器的运行成本降低了一半的。


太长不看

我首先在 AWS EKS 上部署了一个电商应用(链接在此),该应用使用六个 m5 节点(2 个 vCPU,8 GiB 内存)。然后,我部署了一个 AI 引擎来分析我的应用并提出一些优化建议。最后,我激活了该引擎,并观察系统如何进行自我优化。

初始集群成本为每月414 美元。15 分钟内,通过全自动方式,将节点数从六个减少到三个,集群成本降至207 美元(降低了 50%)。5 分钟后,通过使用竞价型实例,集群成本进一步降至每月138 美元(降低了 66%)。

 

获取免费的CAST AI 节省报告,了解您可能节省多少成本。这是您开启云成本优化之旅的最佳起点。

步骤 1:部署我的应用程序并运行储蓄报告

 我已将应用程序部署到 EKS 的 6 个节点上。以下是部署前的样子——所有节点都是空的:

集群是通过 eksctl 创建的:

eksctl create cluster --name boutique-blog-lg -N 6 --instance-types m5.large --managed --region us-east-2

部署完成后,绿色矩形框代表的是 pod:

我正在使用 kube-ops-view,这是一个很有用的开源项目,可以用来可视化 pod。

请注意,在 Kubernetes 中,应用程序的 Pod(也称为容器)默认情况下会均匀分布在所有节点上。Kubernetes 是一个公平的编排引擎。CPU 使用率在 40% 到 50% 之间。

注意:所有 EKS 自动扩缩容功能均已故意禁用,因为 CAST AI 将替代 EKS 集群自动扩缩容。

现在是时候将我的 EKS 集群连接到 CAST AI 了。我在 https://cast.ai 创建了一个免费帐户,并选择了“连接您的集群”选项。

点击“连接集群”:

我已成功复制脚本并在终端上运行(我使用的是 Lens,另一个用于此目的的免费工具)。

laurent@laurents-MacBook-Pro ~ % curl -H "Authorization: Token  "https://api.cast.ai/v1/agent.yaml?provider=eks" | kubectl apply -f -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2585 0 2585 0 0 2391 0 --:--:-- 0:00:01 --:--:-- 2391
namespace/castai-agent created
serviceaccount/castai-agent created
clusterrole.rbac.authorization.k8s.io/castai-agent created
clusterrolebinding.rbac.authorization.k8s.io/castai-agent created
secret/castai-agent created
deployment.apps/castai-agent created

 CAST AI 代理以只读模式扫描了我的 EKS 集群,并生成了这份节省报告:

如果我把六个 m5.large 换成 CAST AI 推荐的三个 c5a.large,我的账单就能减少近 60%。听起来不错!

使用竞价型实例,我甚至可以节省更多成本(66.5%)。

步骤 2:启动成本优化

要开始进行成本优化,我需要将我的 AWS 访问密钥 ID 和秘密访问密钥添加到平台。

 获取访问密钥非常简单,只需运行以下脚本即可:

步骤 3: 启用策略

我启用了 CAST AI 中所有可用的策略:

  • CPU策略:我告诉引擎永远不要超过我的预算。我将其设置为最多200个CPU。
  • 节点自动扩缩容:每当我有未调度的 Pod 时,CAST AI 都会智能地选择节点,首先选择 Spot 实例(如果未调度的 Pod 适合 Spot 实例)或按需实例。
  • 节点删除 +  Evictor :Evictor 是一个后台进程,它通过打包 Pod 将集群持续缩减到最少节点数。一旦节点为空,它就会被自动删除。

Evictor 是 CAST AI 开发的一款工具,它会持续查找系统配置中的低效之处,并帮助用户尽快实现成本最大化。运行以下命令即可激活 Evictor:

我安装了Evictor并让它运行起来。Evictor正在运行! 


这就是 Evictor 的实际工作画面:

  1. 其中一个节点( 如下红色 所示)被确定为待驱逐节点。
  2. Evictor 会自动将 pod 移动到其他节点,就像“装箱”一样。
  3. 当节点变为空时,它将从集群中删除。
  4. 返回步骤 1。

删除一个节点:

以下是驱逐者日志:

time="2021-06-14T16:08:27Z" level=debug msg="will try to evict node \"ip-192-168-66-41.us-east-2.compute.internal\""
time="2021-06-14T16:08:27Z" level=debug msg="annotating (marking) node \"ip-192-168-66-41.us-east-2.compute.internal\" with \"evictor.cast.ai/evicting\"" node_name=ip-192-168-66-41.us-east-2.compute.internal
time="2021-06-14T16:08:27Z" level=debug msg="tainting node \"ip-192-168-66-41.us-east-2.compute.internal\" for eviction" node_name=ip-192-168-66-41.us-east-2.compute.internal
time="2021-06-14T16:08:27Z" level=debug msg="started evicting pods from a node" node_name=ip-192-168-66-41.us-east-2.compute.internal
time="2021-06-14T16:08:27Z" level=info msg="evicting 9 pods from node \"ip-192-168-66-41.us-east-2.compute.internal\"" node_name=ip-192-168-66-41.us-east-2.compute.internal
I0614 16:08:28.831083 1 request.go:655] Throttling request took 1.120968056s, request: GET:https://10.100.0.1:443/api/v1/namespaces/default/pods/shippingservice-7cd7c964-dl54q
time="2021-06-14T16:08:44Z" level=debug msg="finished node eviction" node_name=ip-192-168-66-41.us-east-2.compute.interna

现在第二个和第三个节点被移除——还剩下 3 个节点:

大约 10 分钟后,Evictor 删除了 3 个节点,并保留了 3 个节点继续运行。请注意,CPU 使用率现在已降至健康的 80%。

该集群现在的成本为每月 207.36 美元,是最初每月 414 美元成本的一半。

我实现了 预期节省目标的 80% 。以下是我在 CAST AI 控制面板中看到的内容: 

高级储蓄

步骤 4(可选):将我的应用程序迁移到新的优化节点

步骤 1、2 和 3 完全自动化。CAST AI 通过消除浪费和过度配置来逐步缩减集群规模。它通过逐个回收 Pod 和清空节点来实现这一点。从那时起,集群即被优化,Evictor 将持续寻找进一步的优化机会。

步骤 4 是一个高级可选步骤,CAST AI 会主动将当前节点替换为更优化的节点,例如竞价型实例。其原理相当简单:CAST AI 会隔离集群,释放节点资源,并将其替换为更优化的节点。

节点被隔离:

前两个节点的数据被清空,AI引擎会为这些节点选择最合适的实例类型。以下是我在CAST AI控制面板中看到的内容:

如您所见,我的集群现在只有两个节点, 每月费用为 138 美元。很难想象我最初每月 EKS 账单竟然高达 414.72 美元!

概括

从非优化配置升级到完全优化配置简直轻而易举。CAST AI 分析了我的配置,找到了节省成本的机会,并在 15 分钟内迅速优化了我的集群。我的 EKS 账单在 15 分钟内减半,从 414 美元降至 207 美元。

然后,我激活了高级节省功能,要求 CAST AI 将节点替换为更优化的节点,从而实现了进一步的节省,最终 账单金额为138 美元 。

运行免费的 CAST AI 节省报告 ,即可查看您可能节省多少成本。这是您开启云成本优化之旅的最佳起点。

文章来源:https://dev.to/castai/how-to-reduce-your-amazon-eks-costs-by-half-in-15-minutes-3h7f