---
title: "Kubernetes 自动扩缩容实践:HPA、VPA 与资源配额"
keywords: ["Kubernetes", "HPA", "VPA", "资源配额", "Requests", "Limits", "扩缩容"]
description: "解析 HPA/VPA 的工作原理与资源配置策略,给出从指标到落地的一套实践方法,确保服务弹性与稳定性。"
author: "后端工程团队"
date: "2025-11-18"
status: "published"
hotness: 88
tech_verified: true
reading_time: "15分钟"
categories:
- 文章资讯
- 技术教程
---
为什么需要自动扩缩容
负载具有波动性,合理的自动扩缩容能在保障 SLO 的前提下降低成本。Kubernetes 提供 HPA(水平)与 VPA(垂直)两种机制,搭配资源 Requests/Limits 与配额可实现稳定弹性。
核心概念
- Requests/Limits:调度与资源上限控制的基础。Requests 影响调度与 QoS,Limits 限制实际可用上限。
- HPA:依据指标(CPU、内存、或自定义 Prometheus 指标)动态调整副本数。
- VPA:根据历史与当前资源使用建议容器的 Requests/Limits(部分场景与 HPA 不建议同时强绑定)。
实施步骤
- 明确服务 SLO 与关键指标(如 p95 延迟、错误率)
- 暴露 Prometheus 指标并接入 Metrics Server/Adapter
- 设定 HPA 目标与最小/最大副本,评估扩缩容冷却时间
- 启用 VPA(推荐先处于
recommendation模式,观察建议) - 结合命名空间资源配额(ResourceQuota)防止资源挤兑
验证与观测
- 使用负载生成器(如 k6)进行压测,观察 HPA 反应与系统稳定性
- 监控扩容事件与 Pod 重启,检查是否因 Limits 触发 OOMKill
常见实践
- 以 CPU 利用率驱动 HPA,配合自定义业务 QPS/延迟指标做多维评估
- 将批处理任务与在线服务隔离命名空间,设置独立配额
注意事项
- 过低的 Requests 导致调度不稳定;过高的 Limits 容易资源抢占
- VPA 与 HPA 同时调优需谨慎,避免“拉扯”效应

发表评论 取消回复