1. 课程导论:多集群拓扑与SLO/错误预算的挑战、Helm在可观测性中的角色、课程目标与受众
1.1 多集群拓扑的复杂性
现代云原生架构已从单集群演进为多集群、多区域、甚至混合云部署。这种拓扑带来了显著的观测盲区:
- 集群异构性:不同集群可能运行不同 Kubernetes 版本、网络插件(CNI)、存储后端,导致指标采集口径不一致。
- 网络边界:跨集群通信依赖服务网格或专用网关,延迟、丢包、DNS 解析等指标分散在多个观测后端。
- 租户隔离:多租户场景下,每个租户的资源配额、命名空间、RBAC 策略各不相同,SLO 必须按租户边界聚合。
- 控制面分散:Prometheus、Thanos、Grafana 等组件在多集群中独立部署,缺乏统一的拓扑视图。
核心痛点:运维团队往往拥有 5~20 个集群,但无法在一张面板上同时看到“哪个集群的哪个租户正在消耗错误预算”。
1.2 SLO 与错误预算的挑战
服务等级目标(SLO)和错误预算是可观测性从“监控”走向“治理”的关键概念。在多集群环境中,它们面临以下挑战:
| 挑战维度 | 单集群场景 | 多集群场景 |
|---|---|---|
| 指标聚合 | 单一 Prometheus 实例即可完成 | 需要全局查询(Thanos/ Cortex)或联邦集群 |
| 租户边界 | 通过 namespace 标签区分 | 需要跨集群的租户 ID 映射,标签不一致 |
| 错误预算计算 | 基于本地 SLI 窗口 | 需考虑跨集群流量权重、区域故障域 |
| 告警关联 | 单告警规则 | 多集群告警风暴,需按拓扑收敛 |
错误预算的消耗速度在不同集群间可能差异巨大。例如,一个承载核心交易流的集群可能在 10 分钟内耗尽月度预算,而另一个测试集群则几乎无消耗。没有统一的拓扑面板,运维团队无法快速定位“预算燃烧”的源头。
1.3 Helm 在可观测性中的角色
Helm 作为 Kubernetes 的包管理器,在本课程中扮演三个关键角色:
- 标准化部署:通过 Helm Chart 统一部署 Prometheus、Grafana、Thanos 等观测组件,确保多集群的采集配置一致。
- 动态配置注入:利用 values.yaml 和模板函数,将集群名称、租户 ID、SLO 阈值等参数化,避免硬编码。
- 面板化呈现:Helm 可以打包 Grafana Dashboard JSON 模板,结合多数据源实现“一次安装,多集群复用”。
课程关键认知:Helm 不只是部署工具,更是“可观测性配置的版本控制层”。通过 Helm 管理 SLO 面板,可以实现 GitOps 驱动的错误预算治理。
1.4 课程目标
完成本课程后,学员将能够:
- 设计:基于多集群拓扑设计租户边界的 SLO 指标体系。
- 部署:使用 Helm Chart 一键部署跨集群的可观测性栈(Prometheus + Thanos + Grafana)。
- 面板化:创建按集群、租户、服务分组的 SLO 面板,实时展示错误预算消耗。
- 治理:通过错误预算告警驱动自动化回滚或流量切换。
1.5 目标受众
| 角色 | 前置知识 | 课程收益 |
|---|---|---|
| 平台工程师 | Kubernetes 基础、Helm 使用经验 | 掌握多集群观测架构的 Helm 化部署 |
| SRE | PromQL、SLO 概念 | 学会设计租户级 SLO 面板和错误预算告警 |
| 可观测性架构师 | Thanos/Cortex 基础 | 获得多集群拓扑面板的完整实现方案 |
注意:本课程不教授 Kubernetes 或 Helm 的基础语法。学员应具备基本的 Helm install/upgrade 操作能力,并了解 Prometheus ServiceMonitor 的基本概念。
1.6 课程结构速览
本课程共 30 章,分为四个阶段:
- 阶段一(第 1~5 章):基础概念与架构设计,包括多集群拓扑建模、SLO 指标定义、Helm Chart 结构。
- 阶段二(第 6~15 章):核心实现,包括 Prometheus 多集群采集、Thanos 全局查询、Grafana 多数据源配置。
- 阶段三(第 16~25 章):面板开发,包括 SLO 面板、错误预算面板、租户下钻面板、告警面板。
- 阶段四(第 26~30 章):生产化与治理,包括 GitOps 集成、成本优化、故障演练。