云,哪里贵了?
Kubernetes 集群13,743.83 欧元(折扣2,333.84欧元) 云存储(存储桶)6,124.75 欧元 SQL 数据库3,237.22 欧元 还有其他较小的成本,本文中忽略不计。
N1 预定义实例 core/ram 是我们 Kubernetes 集群日常使用的节点。N1 是节点类型。 Spot 可抢占实例 core/ram 是我们生成的用于运行异步任务的节点。可抢占意味着我们为这些节点支付更少的费用,但我们无法保证可用性。 区域间网络出口(Network Egress Inter Zone)是通过网络在可用区域(AZ)之间移动的数据。假设有一个托管在区域 AZ 中的节点中的 API,如果该 API 向 AZ B 中的节点中的另一个 API 进行查询,将为从 AZ B 到 AZ A 的数据付费。
问题的根源就在于我们有没有告诉Kubernetes该如何扩展新节点。
N1 预定义实例Core/RAM方面,当前使用的是n1-standard-8节点,它们根据使用情况自动缩放。在进行修正之前,了解 Kubernetes 如何扩展新节点非常有必要。
当定义 Pod 时,需要告诉 Kubernetes 一个信息:Pod 需要多少 RAM 和 CPU 才能正常工作;这就是 Kubernetes 所说的 Request。
假设我的 API 的 pod A 需要 400mo RAM 和 0.2 vCPU 才能正常工作,而 Kubernetes 节点容量为 30 GB RAM 和 8 个 vCPU。可以在该节点中容纳 40 个 Pod,因为 8 个 vCPU 除以 0.2 vCPU 等于 40 个 Pod,而 30,000mo 除以 400mo 等于 75 个 Pod。
所以,于K8s集群而言,明确预期的和未使用的资源,是一个技术活儿。
表示请求的 CPU 与节点实际容量的架构
例如,对于此部署,我们至少运行三个 Pod,这意味着即使 API 在夜间几乎没有收到任何调用,它仍然运行3个 Pod。
因此,我们检查了每项服务,并将 pod 副本的最小数量减少到一个(在安全的情况下)。
通过这几项更改,搞定了 N1 预定义实例Core/RAM的成本问题,从4,235.43 欧元增加到 1,973.28 欧元。
问题4:区域间网络出口的数据交互费用
这方面是非常棘手的,可用区域之间的网络的数据交互会产生很大的云费用
我们有四十多个微服务,但好处是它们做得很好,而且它们之间几乎没有直接通信,但我们在所有这些服务前面有一个GraphQL 网关。这个网关接到很多调用。
笔者也采取了两种方式解决了这个问题:
第一个是使用 Flow Logs追踪哪些调用对于返回的数据最大。
第二种方法,也是我们最有信心的方法,是检查哪个 API 收到的调用最多,以及该 API 中的哪个端点非常适合缓存。我们已经使用 Redis 作为发布/订阅解决方案,因此我们也可以轻松地将它用作缓存。
我们决定先做缓存,因为我们无论如何都需要它,而且一切都已经设置好了。但这仍然是一个错误——因为我们只是将问题转移到缓存系统中,而不知道数据是否太大是因为代码问题还是因为调用次数过多。
使用Kiali,我们可以看到哪个 API 收到的调用最多。
根据此信息和应用程序的功能方面,我们决定应缓存哪个端点。这样,GraphQL 网关将实现缓存,并且不必对服务进行 HTTP 调用来获取数据,从而降低了 Egress 成本。
仅通过实施第一个解决方案,我们就成功地将出口成本从 2.712,34 欧元降低到 1,095.19 欧元。
遗憾的是,我们尚未实现第二种解决方案来追踪传输大量数据的剩余 HTTP 调用。
云存储哪里贵了?
没错,云存储的成本,大部分还是与容量本身有关,而并非存储桶中传输的数据产生的成本。解决的方法自然就很简单:删。
生产环境和临时环境之间的成本明细对比
进一步削减云成本的思路
(1)微调 Kubernetes 请求,以更加精确地了解我们的微服务需要运行的内容;
(2)按照我们最初的计划追踪剩余的出口成本
(3)继续在我们的归档 cron 中实施新规则,从存储桶中删除不必要的文件;
(4)将我们的视频处理从 CPU 切换到 GPU(笔者实测速度更快且成本更低);
(5)清理生产中的 SQL 数据库,存储可存档的 TB 级事件数据。
写在最后
Instagram 仅 3 名工程师,如何做到 1400 万用户?
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 和人民在一起 7972118
- 2 柯洁被判负 7918026
- 3 警惕!今年第一场大寒潮或波及全国 7852587
- 4 今天明天 都是小年 7751100
- 5 王菲时隔7年再上春晚 将唱这首歌 7694540
- 6 公务员省考:学历要求越来越高 7524680
- 7 打工人你的早餐摊子已返乡 7416021
- 8 59岁陈慧娴演唱会上出意外 7333410
- 9 尹锡悦穿10号囚服 狱警叫他10号 7216269
- 10 《漂白》编剧再声明身正不怕影子斜 7159755