Kubernetes HPA 自动扩缩容实战:CPU 指标、扩缩容抖动与稳定窗口调优
Kubernetes HPA 自动扩缩容实战:CPU 指标、扩缩容抖动与稳定窗口调优流量高峰手动加 Pod、低谷手动减,是很多团队的日常。HPA(HorizontalPodAutoscaler)本该把这事自动化,但真配上去往往遇到两个尴尬:要么 HPA 一直显示unknown根本不扩容,要么扩缩容像抽风一样反复横跳(flapping)。这篇从能跑起来到调稳,一步步来。前置:没有 metrics-server,HPA 就是瞎子HPA 靠 CPU/内存指标决策,这些指标由 metrics-server 提供。很多人 HPA 配好了却发现TARGETS永远是unknown/50%,九成是没装 metrics-server:# 检查是否已安装kubectl get deployment metrics-server-nkube-system# 没有就装(裸机/自建集群常需要加 --kubelet-insecure-tls)kubectl apply-fhttps://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml# 验证能拿到指标(能列出各 Pod 的 CPU/内存才算 OK)kubectltoppodskubectl top pods能出数据,HPA 才有的谈。关键前提:Deployment 必须声明 resources.requests这是第二个高频坑。HPA 的 CPU 百分比是相对于 request 算的,不是相对于节点总量。如果 Deployment 没写requests.cpu,HPA 拿不到基准,同样显示unknown:# deployment.yaml —— 必须有 resources.requestsapiVersion:apps/v1kind:Deploymentmetadata:name:webspec:replicas:2selector:matchLabels:{app:web}template:metadata:labels:{app:web}spec:containers:-name:webimage:your-web:1.0resources:requests:cpu:200m# HPA 按这个算利用率:实际用 100m 就是 50%memory:256Milimits:cpu:500mmemory:512Mi记住这条换算:如果 request 是200m,HPA 目标设 50%,那么当每个 Pod 平均用到100mCPU 时就触发扩容。没有 request,一切免谈。配一个基础 HPA用autoscaling/v2版本(v1 只支持单一 CPU 指标,别用了):# hpa.yamlapiVersion:autoscaling/v2kind:HorizontalPodAutoscalermetadata:name:webspec:scaleTargetRef:apiVersion:apps/v1kind:Deploymentname:webminReplicas:2maxReplicas:10metrics:-type:Resourceresource:name:cputarget:type:UtilizationaverageUtilization:60# 平均 CPU 超过 request 的 60% 就扩容应用并观察:kubectl apply-fhpa.yaml kubectl get hpa web-w# -w 持续观察 TARGETS 和 REPLICAS 变化TARGETS显示45%/60%这种真实数字,就说明链路通了。治抖动:behavior 稳定窗口基础 HPA 跑起来后,你可能发现流量一波动 Pod 数就来回跳——扩上去马上又缩,缩下来又扩,这叫 flapping,对服务和成本都不友好。根因是扩容很激进、缩容也很激进。v2的behavior字段就是用来驯服它的:apiVersion:autoscaling/v2kind:HorizontalPodAutoscalermetadata:name:webspec:scaleTargetRef:apiVersion:apps/v1kind:Deploymentname:webminReplicas:2maxReplicas:10metrics:-type:Resourceresource:name:cputarget:type:UtilizationaverageUtilization:60behavior:scaleDown:# 缩容前先观察 5 分钟,确认负载真的降下来了才缩,避免刚缩就又要扩stabilizationWindowSeconds:300policies:-type:Percentvalue:50# 每次最多缩掉当前副本数的 50%periodSeconds:60scaleUp:# 扩容要快,窗口设 0,负载一高立刻响应stabilizationWindowSeconds:0policies:-type:Percentvalue:100# 每分钟最多翻倍periodSeconds:60-type:Podsvalue:4# 或每分钟最多加 4 个,取两者中更激进的periodSeconds:60调优的核心思路是扩容快、缩容慢:scaleUp.stabilizationWindowSeconds: 0—— 流量一涨立刻扩,别让用户等。scaleDown.stabilizationWindowSeconds: 300—— 缩容前先观察 5 分钟,是 HPA 在这个窗口里取「最大推荐副本数」作为决策,相当于「宁可多扛一会儿也别急着缩」,这是消除抖动最有效的一招。kubectl describe hpa web能看到它每次决策的事件日志,调参时对着这个看最直观。小结HPA 依赖metrics-server(kubectl top pods能出数) Deployment 的resources.requests.cpu,缺一个都会卡在unknown。CPU 利用率是相对于 request算的,不是节点总量,配目标值前先想清楚这个基准。用autoscaling/v2的behavior治抖动,原则是扩容窗口设 0(快)、缩容窗口设几分钟(慢)。一句话记忆:HPA 不出数先查 metrics-server 和 requests;HPA 抖动就把缩容的stabilizationWindowSeconds拉长——扩容要果断,缩容要克制。

相关新闻

古代情绪调控技术:鬼谷子七术与现代心理学的融合

古代情绪调控技术:鬼谷子七术与现代心理学的融合

1. 项目背景与核心价值解析 "损悦法灵蓍"这个看似晦涩的标题,实际上包含了三个关键信息层:首先,"损悦法"指向《鬼谷子》本经阴符七术中记载的古代情绪调控技术;其次,"灵蓍"特指殷商时期…

2026/7/24 13:41:05阅读更多 →
基于无刷直流电机的电子机械制动执行器非线性动力学建模与仿真研究(Simulink仿真实现)

基于无刷直流电机的电子机械制动执行器非线性动力学建模与仿真研究(Simulink仿真实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 &#x1f381…

2026/7/24 13:41:05阅读更多 →
人工智能技术演进:从感知智能到认知智能的跨越

人工智能技术演进:从感知智能到认知智能的跨越

1. 人工智能技术演进的两大阶段 当我们谈论人工智能时,实际上是在讨论一个不断进化的技术体系。从最初的简单规则系统,到如今能够处理复杂任务的智能体,AI的发展呈现出明显的阶段性特征。其中最关键的两个里程碑,就是感知智能和认…

2026/7/24 13:41:05阅读更多 →
2026线上教务系统哪家好?具体怎么搭建?

2026线上教务系统哪家好?具体怎么搭建?

2026线上教务系统哪家好?具体怎么搭建?据艾瑞咨询《2026年中国教培数字化运营报告》显示,约42%的中小教培机构仍用微信群接龙排课、Excel记课时,导致约课冲突率达18%,家长投诉集中在“看不到上课进度、作品没地方存”。…

2026/7/24 15:17:26阅读更多 →
2026网校系统哪家靠谱,具体如何选择看这里!

2026网校系统哪家靠谱,具体如何选择看这里!

2026网校系统哪家靠谱,具体如何选择看这里!据艾瑞咨询《2026年中国在线教育与教培数字化发展报告》显示,截至2026年上半年,国内已有超71%的中小教培机构完成小程序网校布局,但其中约39%的机构因系统功能割裂&#xff0…

2026/7/24 15:17:26阅读更多 →
玩家满意度暴跌背后的隐藏信号:AI客服情绪识别准确率低于52%?——基于LSTM+BiLSTM混合模型的语音/文本双模态情感校准实战

玩家满意度暴跌背后的隐藏信号:AI客服情绪识别准确率低于52%?——基于LSTM+BiLSTM混合模型的语音/文本双模态情感校准实战

更多请点击: https://kaifayun.com 第一章:玩家满意度暴跌背后的隐藏信号:AI客服情绪识别准确率低于52%?——基于LSTMBiLSTM混合模型的语音/文本双模态情感校准实战 当某头部游戏厂商的NPS(净推荐值)单月骤…

2026/7/24 15:17:26阅读更多 →
现在不做AI独立开发,半年后将错过最后一波低成本红利窗口(附2024Q3工具链更新清单与替代方案对比表)

现在不做AI独立开发,半年后将错过最后一波低成本红利窗口(附2024Q3工具链更新清单与替代方案对比表)

更多请点击: https://intelliparadigm.com 第一章:AI独立开发者之路 成为一名AI独立开发者,意味着在没有大型团队支持的前提下,自主完成从模型选型、数据准备、训练部署到产品化运营的全链路工作。这既需要扎实的技术能力&#…

2026/7/24 15:17:26阅读更多 →
AI短视频变现断崖式下跌?3大隐形违规红线+实时检测工具包(含独家合规校验表)

AI短视频变现断崖式下跌?3大隐形违规红线+实时检测工具包(含独家合规校验表)

更多请点击: https://intelliparadigm.com 第一章:AI短视频变现断崖式下跌的底层归因 AI短视频内容生态正经历一场静默崩塌:头部MCN机构单条视频CPM从2023年Q2的86骤降至2024年Q2的12,用户完播率同步下滑37%。这并非流量周期波动…

2026/7/24 15:17:26阅读更多 →
【计算机毕业设计案例】基于Django的学生自主学习与课程资料管理系统 线上教学资源推送与学习统计平台(程序+文档+讲解+定制)

【计算机毕业设计案例】基于Django的学生自主学习与课程资料管理系统 线上教学资源推送与学习统计平台(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/24 15:15:26阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 0:58:53阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 0:58:53阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 0:58:53阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:06阅读更多 →
【LeetCode 54】螺旋矩阵

【LeetCode 54】螺旋矩阵

问题描述: 解法: 1、模拟(参考自【LeetCode 54】螺旋矩阵-CSDN博客) int *spiralOrder(int **matrix, int matrixSize, int *matrixColSize, int *returnSize) {static const int dirs[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, …

2026/7/24 0:00:06阅读更多 →
2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

知春路不相信模型领先今年WAIC大会,昔日AI六小龙来了五家,分别是Kimi、阶跃星辰、Minimax、百川智能、零一万物。连放弃基模的百川和零一万物都来了,唯一缺席的竟是近几个月来风光无限的智谱。(DeepSeek一直不参加)WAI…

2026/7/24 0:00:06阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/23 22:58:43阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/23 18:58:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/23 18:58:18阅读更多 →