发布于 2026-01-06 2 阅读
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