给昂贵的云降降本

131 天前
 cesign

云 K8s 太贵,来看看用 Karpenter 给其降本一下: https://mp.weixin.qq.com/s/1QANbWZ6Sx7HGzez74rGRw

结合我的实践,大概能降60%左右!

5558 次点击
所在节点    程序员
51 条回复
goodryb
131 天前
看起来非常棒的实践,期待早日能支持国内云厂商
Frankcox
131 天前
这个是 aws 的节点弹性扩缩的那个服务吧?
ounxnpz
131 天前
你这个降本不是机型选择带来的,而是 Spot 带来的。对于无状态横向扩缩容,AutoS + Spot 和你这个成本不会差太多。对于很多有状态的,相当一部分不会考虑 Spot 。

总之,相比 AutoS ,有优势但非必须。
cesign
131 天前
@bluicezhen
1.AutoS 没办法选择多种规格的机型(可以配置,但是管理难度会大增),碎片化程度会更高,浪费资源更多。进而导致成本更高。
2.AutoS 没办法处理 Spot 的异常中断,稳定性会下降很多。
3.文章提到 OD+spot 混合部署,AutoS 没办法做到(要么全 OD ,要么全 SPOT ),如果只有 Spot 稳定性会受影响。
4.有状态服务看底层数据怎么维护的,比如通过多实例主备+NFS ,spot 完全能够 cover 。
salmon5
131 天前
花里胡哨的,没参考价值。一个 AWS RI 就搞定的事情。
salmon5
131 天前
一下子降了 60%,之前用的该有多浪费。ECS 不应该 RI 买起来吗?本来买了 RI 就是 3.5-4 折。
cesign
131 天前
@bluicezhen
5.还有一点是弹性速度,AutoS 弹性一个节点我记得要 1m30 左右,karnepnter 只要 40s 左右
salmon5
131 天前
降本本来就是一件持续的事情,需要花费大量的时间,如果一次降得越多,这个负责人风险其实挺大的,说明之前没有关注过成本,一直在浪费的使用。
这是站在老板的角度,当然老板也是专业的。
合理的降本应该是持续的、没有投入太多技术风险,朴实无华的。
cesign
131 天前
@salmon5

> 花里胡哨的,没参考价值。一个 AWS RI 就搞定的事情。

表示怀疑,以 m5.xlarge 为例(us-east-2),按需价格为$0.1920/hour ,RI 价格为$0.121/hour ,Spot 价格为 0.0588$/Hour,
简单的购买 RI 只是无脑做法,并不是最优做法。

而且 RI 有个缺陷是,如果我业务改革,导致机器没必要用这么多了,RI 的钱我还是要付(就算我把机器释放),绑定非常严重。

当然,如果有钱,随便造。
cesign
131 天前
@salmon5 这个负责人风险其实挺大的

这个看阶段,增长期的公司,基本不咋关注成本,野蛮生长。
cesign
131 天前
@Frankcox

> 这个是 aws 的节点弹性扩缩的那个服务吧?
指 managed node group 还是 cluster autoscaler? 和着两个区别挺大的。文章里面有描述
sampeng
131 天前
小规模可以。大规模不行。每个行业有每个行业的业务特征。spot 要根据业务特征来定制,包括 spot 的定价都有很多团队基于这个东西来做程序。

其实吧,99%的公司云成本想下降很容易,别浪费就可以下降 50%以上。。看见太多集群 10%的利用率了。看见太多数据库上来就是一个 8c32G 的了。也看见太多不管三七二十一微服务几十个还不如一个单体跑 2-3 台机器。
cesign
131 天前
@sampeng

> spot 要根据业务特征来定制

完全赞同,还是要识别一些东西。

> 看见太多集群 10%的利用率了。看见太多数据库上来就是一个 8c32G 的了。也看见太多不管三七二十一微服务几十个还不如一个单体跑 2-3 台机器

+++100 ,Karpenter 也有根据资源,自动替换更小节点的能力。
sampeng
131 天前
楼主的回答只考虑有利于自己的一方。。。这没法聊。。我也能反过来反驳

1.AutoS 没办法选择多种规格的机型(可以配置,但是管理难度会大增)。没明白管理难度为何会大增。一般业务的特征是固定的,配好了基本就不动了。哪来的管理难度?再不济弄个 terraform 来创建,就是一个数组的事。
2.处理 Spot 的异常中断是业务要做的事,不是 autoS 做的事。
3.我就不能建 N 个 AuotoS ?谁规定 k8s 集群只能有一个 AutoS
4.有状态的含义是要有磁盘,NFS 那点 IOPS 能干啥? nfs 里面跑个数据库看看?跑个 rabbitmq 看看?很多业务要求高 IO 。NFS 是共享网络存储,不是本地存储。还多实例主备,你知道复杂度会爆炸么?本来只要挂个硬盘进去就可以了。结果因为要降成本,所以不能有状态?怕是会被研发砍死。


下面有人提 RI 你也能反驳。。。谁说 RI 是最无脑的。最无脑的是三年全付的 savings plans 。如果你一年有 400 万人民币以上再谈一个年包大概在 10 个点左右。
sampeng
131 天前
@cesign 这个我好像是试用过。。我自己 1 天就能搞定的事硬是被套进来一系列的概念。要精细化运维,最好的方式是自己做。缺什么工具做什么。。这种所谓的大一统的工具,用不了。。用不了。。。关键还要大量的团队学习成本。本来只要会 k8s 。我什么大家都知道,结果用了一个非主流的工具。活都成我的了
cesign
131 天前
> 楼主的回答只考虑有利于自己的一方。。。这没法聊。。我也能反过来反驳

当然,根据我们的业务场景,这解决方案也有局限性。

关于第 2 点:spot 中断后,正在处理的请求会失败,需要一个机制去提前驱逐节点。这个 autoS 是肯定没有的
关于第 4 点:确实没考虑到。

RI 在我们场景下,并不能省多少,还有很强的绑定,后续我没用这么多资源了,也要求付钱。
naoying
131 天前
弹性最大的问题是,云厂商没机器就很炸裂了。Karpenter 根据资源自动切换小节点很赞
hwcloudnative
131 天前
@sampeng 我有个问题啊,云的优势本身就是弹性,大晚上没流量的时候,这些空闲机器按道理应该是要关掉的,这种情况下买了 RI 不就是白白浪费钱吗?不就是把公有云当成物理机房在用吗?公有云的成本可比物理机贵太多了

还有个问题,美国有家公司 ticketmaster ,做在线电影票业务的,疫情前跟 AWS 签了三年的 RI ,结果疫情来了,电影院全部关停,业务量一下腰斩,整个公司的收入还不够付 RI 的钱,还不能毁约,这种突发情况不能说完全能避免吧?

RI 存在肯定有他的价值,但是作为公有云长期使用者,我不建议上来就买 RI ,看似简单申请,实际上被云厂商套进去了,云的价值就是弹性伸缩,RI 或者包年包月本质上就是把云当成物理机器在用啊。。。

还有就是心态问题,大家都是打工的,当然是越少折腾越好,而且公司花多少钱跟我有啥关系,个人开发者当然应该更加关注每一分钱成本,这年头经济这么差,老板们心态都变了很多,如果 infra 工程师不能证明自己的价值,被裁是迟早的事情,我觉得 po 主的文章挺好的,把成本优化的经验分享给大家
fredcc
131 天前
@cesign
1 、看业务需求了,有不同的场景自然可以用不同的规格实例建节点组
2 、spot 实例的中断管理本来也不应该 asg 管啊
3 、同 1 ,有需求可以按需和 spot 混合使用,ec2 时代就可以的事情 eks 不能做么
4 、有状态服务用不用 spot 看怎么衡量业务稳定性运维成本和云计算成本了
perfectlife
131 天前
@goodryb 国内直接就支持啊,阿里云的 axk 好早就支持抢占实例作为 ack 节点,还支持节点被释放前自动拉起一个新抢占实例补上,抢占实例池没资源还能申请按量付费的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1064548

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX