1. 课程导论:为什么需要 KEDA?
1.1 传统弹性伸缩的困境
在云原生架构中,应用负载的波动性日益显著。传统的弹性伸缩方案(如 Kubernetes HPA)主要依赖 CPU 和内存等资源指标,这在许多场景下存在明显的局限性:
- 响应滞后:CPU 利用率是“结果指标”,当 CPU 飙升时,流量洪峰往往已经到达,导致扩容滞后。
- 业务感知缺失:消息队列积压、数据库连接数、HTTP 请求延迟等业务指标无法直接驱动扩缩容。
- 伸缩粒度粗糙:HPA 默认的 15 秒轮询周期和 3 分钟冷却窗口,难以应对秒级突发的流量。
- 闲置资源浪费:为应对峰值而预留的资源,在低谷期造成大量浪费。
核心痛点:传统弹性伸缩是“面向资源”的,而现代应用需要“面向事件”的弹性伸缩。
1.2 KEDA 的定位与价值
KEDA(Kubernetes Event-Driven Autoscaling)是云原生计算基金会(CNCF)的孵化项目,它填补了 Kubernetes 原生 HPA 在事件驱动伸缩方面的空白。KEDA 的核心理念是:让 Kubernetes 应用能够根据任何可观测的指标(Metrics)自动伸缩。
| 维度 | 传统 HPA | KEDA |
|---|---|---|
| 指标来源 | CPU / 内存(Resource Metrics) | Prometheus、Kafka、RabbitMQ、MySQL、HTTP 等 50+ 触发器 |
| 伸缩粒度 | 最小 15 秒轮询,3 分钟冷却 | 可配置轮询间隔(如 1 秒),支持立即伸缩 |
| 伸缩到零 | 不支持(最小副本数通常为 1) | 原生支持,无流量时缩到 0,节省资源 |
| 架构耦合 | 与 kube-controller-manager 紧耦合 | 作为独立 Operator 运行,松耦合 |
| 扩展性 | 需自定义 Metrics API,开发成本高 | 插件式 Scaler 架构,开箱即用 |
一句话总结:KEDA 是 Kubernetes 的“弹性伸缩适配器”,它将外部事件源(如 Prometheus 指标)转换为 HPA 可以理解的 Metrics API,从而驱动 Pod 的自动扩缩容。
1.3 KEDA 在云原生弹性伸缩中的架构位置
KEDA 作为独立的 Operator 部署在 Kubernetes 集群中,它不替代 HPA,而是作为 HPA 的“指标提供者”和“策略增强器”。下图展示了 KEDA 在云原生弹性伸缩体系中的核心位置:
架构要点:KEDA 位于事件源和 Kubernetes 控制面之间,它负责将外部指标“翻译”成 HPA 可以消费的格式。KEDA 本身不直接操作 Pod,而是通过创建和更新 HPA 对象来实现弹性伸缩。
1.4 课程目标
本课程旨在帮助学员掌握使用 Prometheus 指标驱动 KEDA 触发器进行精细化调优的完整技能。完成本课程后,您将能够:
- 理解 KEDA 核心架构:掌握 ScaledObject、ScaledJob、Trigger、Scaler 等核心概念。
- 精通 Prometheus Scaler:能够编写 PromQL 查询语句,并将其配置为 KEDA 触发器。
- 掌握调优方法论:学会根据业务场景调整轮询间隔、冷却窗口、目标值、边界等参数。
- 避免常见陷阱:识别并解决指标抖动、伸缩震荡、冷启动延迟等生产问题。
- 构建生产级方案:设计高可用、低成本、响应迅速的弹性伸缩体系。
1.5 前置知识
为了获得最佳学习体验,建议学员具备以下基础:
| 领域 | 具体要求 |
|---|---|
| Kubernetes | 熟悉 Pod、Deployment、Service、HPA 等核心资源;能使用 kubectl 进行基本操作 |
| Prometheus | 了解 PromQL 基础语法(如 rate、sum、avg、histogram_quantile);知道如何查询指标 |
| 容器基础 | 理解容器化部署的基本概念;了解 Docker 镜像和容器生命周期 |
| Linux 命令行 | 能够使用终端执行命令、查看日志、编辑 YAML 文件 |
注意:如果您对 PromQL 尚不熟悉,建议先花 30 分钟学习 Prometheus 官方文档中的 Basics of PromQL 部分。本课程第 3 章会提供 PromQL 速查表,但不会从头教授 PromQL 语法。
1.6 课程内容概览
本课程共分为 6 个模块,30 个章节,从基础概念到高级调优,层层递进:
- 模块一(第 1-5 章):KEDA 基础与 Prometheus Scaler 入门
- 模块二(第 6-12 章):触发器参数深度解析与调优
- 模块三(第 13-18 章):高级伸缩策略与模式
- 模块四(第 19-23 章):生产环境部署与运维
- 模块五(第 24-27 章):故障排查与性能优化
- 模块六(第 28-30 章):实战案例与最佳实践