1. 课程导论:多集群架构的演进、为什么需要准入门禁、课程目标与学习路径
1.1 多集群架构的演进:从单体到联邦
Kubernetes 集群管理经历了从“单集群大一统”到“多集群分布式治理”的演进。随着业务规模增长、合规要求细化以及混合云战略普及,单一集群在隔离性、爆炸半径、地域延迟和团队自治方面逐渐暴露瓶颈。
| 阶段 | 架构特征 | 典型场景 | 管理复杂度 |
|---|---|---|---|
| 单集群 | 所有 workload 共享一个控制面 | 开发测试、小规模生产 | 低 |
| 多集群松散 | 独立集群,人工运维,无统一策略 | 多环境、多区域 | 中 |
| 多集群联邦 | KubeFed / Cluster API 统一编排 | 跨集群调度、灾备 | 高 |
| 多集群治理 | 策略引擎 + 准入门禁 + 审计 | 合规、安全、成本管控 | 中高 |
演进驱动力: 爆炸半径控制(单集群故障影响面)、合规隔离(PCI-DSS / GDPR 数据边界)、团队自治(每个团队拥有独立控制面)、混合云/多云统一策略。
1.2 为什么需要准入门禁
在多集群架构中,每个集群都可能被不同团队、不同 CI/CD 管道甚至外部系统访问。如果没有统一的准入控制,以下风险将急剧放大:
- 配置漂移: 同一应用在不同集群的资源配置不一致,导致行为差异。
- 安全漏洞: 特权容器、hostPath 挂载、不安全镜像被部署到生产集群。
- 资源滥用: 未设置 resource limits 的 Pod 抢占集群资源。
- 合规违规: 敏感数据被部署到非合规区域或未加密存储。
- 审计缺失: 无法追溯谁在何时向哪个集群提交了何种资源。
准入门禁(Admission Gate)作为 Kubernetes API 请求的“守门人”,在资源持久化之前拦截、校验、变异或拒绝请求。多集群场景下,准入门禁需要从单集群的 ValidatingWebhookConfiguration / MutatingWebhookConfiguration 升级为跨集群的策略分发与执行体系。
关键认知: 单集群的准入 Webhook 只能防御“已接入集群”的请求;多集群准入门禁必须解决“策略统一分发”、“集群级差异化覆盖”和“离线集群兜底”三大难题。
1.3 多集群准入门禁架构总览
下图展示了多集群准入门禁的核心组件与请求流转路径:
1.4 课程目标
完成本课程后,你将具备以下能力:
- 设计能力: 根据组织规模与合规要求,设计多集群准入门禁的顶层架构。
- 实现能力: 基于 OPA (Rego) 或 Kyverno 编写跨集群策略,并通过 GitOps 管道分发。
- 运维能力: 搭建准入门禁的监控、告警与审计链路,处理策略冲突与集群离线场景。
- 扩展能力: 自定义准入 Webhook,集成第三方安全扫描器与成本控制工具。
1.5 学习路径与章节地图
课程按“基础 → 核心 → 进阶 → 实战”四阶段组织,共 30 章:
1.6 前置要求与工具准备
| 类别 | 具体要求 | 推荐版本 |
|---|---|---|
| Kubernetes | 理解 Pod、Deployment、Service、Namespace 等核心资源;熟悉 kubectl | v1.28+ |
| 策略引擎 | 了解 OPA 或 Kyverno 基本概念(非必须,课程会从零讲解) | OPA v0.60+ / Kyverno v1.12+ |
| GitOps | 了解 Git 工作流;有 ArgoCD 或 Flux 基础更佳 | ArgoCD v2.10+ |
| 实验环境 | 本地或云上可运行 3 个 K8s 集群(推荐 kind 或 k3s) | kind v0.22+ / k3s v1.30+ |
快速启动提示: 如果你还没有多集群环境,可以使用以下命令在 5 分钟内用 kind 创建 3 个集群:
kind create cluster --name cluster-a
kind create cluster --name cluster-b
kind create cluster --name cluster-c
后续章节会在此基础上部署准入门禁组件。