news 2026/8/29 2:12:45

【Kubernetes从入门到精通】第85篇:K8s成本优化——你的云账单一半都能省掉,老板看了想加鸡腿

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Kubernetes从入门到精通】第85篇:K8s成本优化——你的云账单一半都能省掉,老板看了想加鸡腿

上一篇【第84篇】K8s排障手册——20个高频故障的排查思路,看完少熬十个通宵
下一篇【第86篇】生产就绪检查清单——你的K8s集群真的可以上线吗


摘要

很多公司的K8s账单贵得离谱——节点CPU平均利用率不到20%、一堆Pod设了超大的requests实际用不到10%、全用最贵的按需实例跑无状态任务。

成本优化不是"砍功能",而是"把资源花在刀刃上"。这篇文章讲清成本优化的核心杠杆:合理设Requests/Limits(避免过度分配)、用VPA纠偏、用Spot实例跑无状态、用Cluster Autoscaler/Karpenter做节点弹性、用配额防浪费,以及FinOps落地。


一、钱都花哪了

1.1 三大浪费来源

【K8s 成本浪费的"三座大山"】 1. 过度分配(Over-requesting) • requests设得比实际用的大10倍 • 节点被"虚假占满", 不得不加节点 → 这是最常见的浪费! 2. 闲置资源(Idle) • 夜间/周末流量低, 但Pod副本数不变 • 节点CPU才用10%, 但24小时计费 → 时间维度上的浪费 3. 节点选型错误 • 无状态任务用最贵的按需实例 • 没用Spot/抢占式(便宜60-90%) • 节点规格不匹配(大节点跑小Pod)

要点:成本优化的第一杠杆是治"过度分配"。很多团队为了"保险"把requests设得巨大,结果节点被虚假占用,被迫扩容节点——而节点是按规格计费的,设1核和设4核占的"调度坑位"不同但直接决定要不要加机器。用实际监控数据(第075篇)来定requests才是正道。


二、Requests/Limits合理配置

2.1 基于数据,不是拍脑袋

【错误 vs 正确】 错误(拍脑袋): resources: requests: {cpu: 2, memory: 4Gi} # 反正设大点保险 # 实际用: 0.2核 800Mi → 浪费90%! 正确(看监控): • 看Prometheus里该Pod的 cpu使用率 P99 内存使用峰值 • requests = 峰值 × 1.15(留余量) • limits = requests × 1.5~2(防突发)
# 用kubectl top看实际用量(数据源Metrics Server, 第025篇)kubectltoppods-nprod --sort-by=cpu# NAME CPU MEMORY# web-xxx 213m 842Mi ← 实际用量, 据此调requests

三、VPA:垂直自动伸缩

3.1 自动纠偏

【VPA (Vertical Pod Autoscaler)】 作用: 根据历史用量自动调整Pod的requests/limits 模式: • Off: 只建议不执行(看报告用) • Auto: 自动改(会重建Pod!) • Recreate: 重建时改 • Initial: 创建时改一次 适合: 无法简单水平扩展的单体应用 不适合: 配合HPA(会冲突, 第025篇)
apiVersion:autoscaling.k8s.io/v1kind:VerticalPodAutoscalermetadata:name:web-vpaspec:targetRef:apiVersion:apps/v1kind:Deploymentname:webupdatePolicy:updateMode:Auto# 自动调整resourcePolicy:containerPolicies:-containerName:appminAllowed:{cpu:100m,memory:128Mi}maxAllowed:{cpu:2,memory:4Gi}

四、Spot/抢占式实例

4.1 便宜60-90%

【按需 vs Spot】 按需(On-demand): 随时可用, 贵 Spot(抢占式): 闲时余量, 便宜60-90%, 但可能被回收 适合Spot的负载: • 无状态应用(挂了能重建, 第013篇) • 批处理/CI(第024篇 Job) • 开发/测试环境 • 有HPA平滑承接(第025篇) 不适合Spot: • 有状态/不能中断(数据库) • 关键业务(除非有多副本+快速迁移)
# 用nodeSelector/taint把无状态Pod调度到Spot节点池# Spot节点打label + taintkubectl label node spot-node-1 workload=spot kubectl taint nodes spot-node-1 spot=true:NoSchedule# Pod容忍并偏好Spottolerations:-key:spotoperator:Existseffect:NoSchedule

五、节点弹性伸缩

5.1 Cluster Autoscaler vs Karpenter

【节点级弹性】 Cluster Autoscaler (经典): • Pod因资源不足Pending → 加节点 • 节点利用率低 → 缩节点 • 基于节点组(ASG/MIG)扩缩 • 成熟稳定 Karpenter (新秀, AWS首发): • 更智能: 看Pod需求直接选"最合适的实例类型" • 不依赖预定义节点组 • 启动更快、bin-packing更优(省节点) • 省钱效果更明显
# Cluster Autoscaler 触发逻辑# Pod Pending(因资源) → CA看能否加节点容纳 → 调云API加节点# 节点<某利用率持续N分钟 → 驱逐Pod → 删节点# Karpenter: 定义Provisioner, 它自动选实例# 省去了"预定义节点组"这一步, 更灵活省钱

六、配额与治理

6.1 用LimitRange/ResourceQuota防浪费

【命名空间级成本护栏(第031/032篇)】 LimitRange: 给ns里Pod设默认requests/limits → 防止有人不设requests(占满节点) ResourceQuota: 限制ns总资源 → 防止某团队无节制申请拖垮预算 → 多团队共享集群时必备(成本分摊基础)

七、FinOps落地

【FinOps —— "财务+工程"的协作】 原则: 谁用谁买单(Showback/Chargeback) 实践: 1. 按namespace/团队打成本标签 2. 用kubecost等工具算每个团队花多少 3. 定期出成本报告, 暴露浪费 4. 设预算上限, 超了告警 5. 把节省纳入团队KPI 效果: 成本可见 → 团队有动力优化 → 账单下降

八、优化清单

【K8s 成本优化 Checklist】 ☐ 基于监控(Prometheus)设置requests, 不拍脑袋 ☐ 用VPA纠偏长期偏差大的Pod ☐ 无状态/批处理用Spot实例(省60-90%) ☐ 用CA/Karpenter做节点弹性(不用不花钱) ☐ 配LimitRange+ResourceQuota防浪费 ☐ HPA按流量缩容(夜间降副本, 第025篇) ☐ 定期清理僵尸资源(没人用的Deployment/PVC) ☐ 用kubecost做成本可视化+分摊 ☐ 选对节点规格(大节点跑多Pod更省)

本篇小结

K8s成本优化的核心杠杆:治"过度分配"(按Prometheus实际用量设requests,不拍脑袋)、用VPA自动纠偏、无状态/批处理用Spot实例(省60-90%)、用Cluster Autoscaler/Karpenter做节点弹性(不用不花钱)、用LimitRange/ResourceQuota防浪费、HPA按流量缩容(夜间降副本)。

关键是FinOps——成本可见、按团队分摊、定期审计、把节省当KPI。大多数集群有30-50%的浪费空间,照着清单做一遍,老板真可能给你加鸡腿。下篇是运维模块收官——生产就绪检查清单。


上一篇【第84篇】K8s排障手册——20个高频故障的排查思路,看完少熬十个通宵
下一篇【第86篇】生产就绪检查清单——你的K8s集群真的可以上线吗


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 2:11:32

Claude Code烧钱真相:从安装到批量任务的全流程成本治理指南

“180万刀&#xff0c;连亚马逊都烧不起Claude了”&#xff0c;最近这句话在技术群和社交媒体上出现的频率不低。先不讨论这个数字是一次真实账单、内部估算还是传播过程中的放大&#xff0c;它至少说明一件事&#xff1a;Claude 这种级别的 AI 模型&#xff0c;用起来确实爽&a…

作者头像 李华
网站建设 2026/8/29 2:10:33

慢速英语学习全流程:从标题拆解到内容制作实战

打开任何一期“慢速英语”材料&#xff0c;你会发现它和普通英语听力完全不同&#xff1a;语速被刻意放慢、单词发音被拉长、句子之间的停顿也更明显。对于英语基础薄弱、或者很久没有开口练习的开发者来说&#xff0c;这种材料几乎是最友好的“过渡区”。今天这篇教程不打算停…

作者头像 李华
网站建设 2026/8/29 2:07:26

Matlab非稳态热传导建模:从有限差分法到工程仿真实战

1. 项目概述与核心价值最近在整理过往的项目资料&#xff0c;翻到了一个关于非稳态热传递建模与仿真的老课题。这个课题虽然基础&#xff0c;但却是很多工程领域&#xff0c;比如材料热处理、电子设备散热、建筑节能分析乃至地热勘探的底层核心。当时为了把这个模型跑通&#x…

作者头像 李华
网站建设 2026/8/29 2:06:58

线性规划实战:Matlab与Lingo在数学建模中的核心应用与选型

1. 从一道赛题说起&#xff1a;线性规划在数模中的核心地位去年带学生准备数模竞赛&#xff0c;遇到一个典型的资源分配问题&#xff1a;某工厂有几种原料&#xff0c;要生产几种产品&#xff0c;每种产品利润不同&#xff0c;原料消耗也不同&#xff0c;同时还有生产时间和市场…

作者头像 李华
网站建设 2026/8/29 2:05:49

红蚂蚁检测数据集与YOLO训练实战:小目标检测全流程指南

简介&#xff1a;目标检测是计算机视觉的核心任务之一&#xff0c;其原理是通过算法自动识别图像或视频中的特定物体并定位其位置。这项技术的核心价值在于将海量视觉信息转化为结构化数据&#xff0c;广泛应用于自动驾驶、工业质检、安防监控和农业科研等领域。在农业昆虫监测…

作者头像 李华
网站建设 2026/8/29 2:05:13

PyTorch张量运算核心:形状、广播与矩阵乘法实战指南

很多人在刚接触 PyTorch 时&#xff0c;会经历一个看起来不起眼、实际上非常关键的分水岭&#xff1a;装好环境、跑通print(torch.__version__)之后&#xff0c;跟着教程敲几行张量运算&#xff0c;加加减减都能正常输出&#xff0c;感觉很容易。可一旦开始写真实模型&#xff…

作者头像 李华