> 技术文档 > K8s 集群成本优化的 10 个反直觉实践:故意降低可用性后,我们省了 60% 的钱

K8s 集群成本优化的 10 个反直觉实践:故意降低可用性后,我们省了 60% 的钱


去年审计报告出来时,我盯着那行 “K8s 集群年度支出超 40 万” 的数字发呆 —— 我们明明只有 3 个核心业务模型,怎么会花这么多?

后来翻遍了服务器账单才发现,最大的浪费藏在 “追求完美” 里:日志分析服务用了和支付系统一样的高可用配置,离线训练任务跑在昂贵的按需实例上,连内部测试用的集群都保持着 3 个节点的冗余。

那天下午,我做了个大胆的决定:给非核心服务 “降级”。半年后再看账单,成本直接砍了 60%,而业务几乎没受影响。

今天想和你聊聊这 10 个反直觉的成本优化实践 —— 那些看似 “不合理” 的做法,恰恰是中小团队最该掌握的省钱智慧。每个实践都带着温度和具体故事,希望能让你在成本和可用性之间找到舒服的平衡点。

1. 给非核心服务设个 “故障容忍期”

以前总觉得 “所有服务都要高可用”,直到某次日志分析服务崩了 5 分钟,我们才发现:根本没人在乎。

那天下午,ELK 集群的一个节点突然宕机,等自动恢复时已经过了 5 分钟。事后调查发现,除了我收到报警,没有任何业务方反馈 —— 因为大家看日志都是按小时粒度,5 分钟的中断完全不影响。

现在我们给这类非核心服务设了 “5 分钟故障容忍期”:

  • 副本数从 3 减到 2(省 30% 资源)
  • 不用抗中断的按需实例,改用 Spot 实例(省 50% 成本)
  • 恢复策略设为 “延迟 3 分钟重启”(避免频繁调度浪费资源)

关键提醒:判断一个服务是否能设容忍期,就看 “中断 10 分钟会不会有人打电话骂你”—— 没人骂的,尽管大胆降配。

2. 让测试环境 “白天上班,晚上睡觉”

测试集群以前 24 小时待命,后来发现:开发团队晚上 9 点后就没人用了,却空耗着 3 台服务器的资源。

现在我们给测试环境加了个 “作息表”:


# K8s CronJob定时关闭测试环境

<