Kubernetes 自动扩缩容:HPA/VPA/CA 深度解析
概述 自动扩缩容是 Kubernetes 最吸引人的能力之一——流量来了自动扩容,流量走了自动缩容,既保证服务质量又控制成本。但"自动"不等于"无脑",配置不当的扩缩容可能导致:扩容不及时造成服务降级、缩容太激进中断长连接、抖动扩缩导致资源浪费。 K8s 的自动扩缩容体系包含三个层次: 层次 组件 扩缩维度 触发条件 Pod 水平扩缩 HPA Pod 副本数 CPU/内存/自定义指标 Pod 垂直扩缩 VPA Pod 资源配额 CPU/内存历史用量 节点扩缩 Cluster Autoscaler 节点数 Pending Pod 事件驱动 KEDA Pod 副本数 事件源(Kafka/Redis/…) 本文基于 Kubernetes v1.30。参考 Kubernetes 自动扩缩文档 HPA:水平 Pod 自动扩缩容 工作原理 HPA(Horizontal Pod Autoscaler)是一个控制循环,默认每 15 秒执行一次: 1. 从指标 API 获取 Pod 的当前指标值(CPU/内存/自定义) 2. 计算期望副本数 = ceil(当前副本数 * (当前指标值 / 目标指标值)) 3. 与当前副本数比较,决定扩容或缩容 4. 调用 Deployment/ReplicaSet 的 Scale API 修改副本数 核心公式:...