1. 课程导论:故障域概念、为什么需要故障域划分、OPA Gatekeeper在其中的角色

1.1 故障域(Fault Domain)核心概念

故障域是指系统中一组共享单一故障点的资源集合。当该故障点失效时,集合内的所有资源都会受到影响。在Kubernetes集群中,故障域通常对应物理或逻辑边界,例如:

  • 物理故障域:同一台服务器、同一个机架、同一个数据中心。
  • 逻辑故障域:同一个可用区(Availability Zone)、同一个网络分区、同一个电源回路。
  • 软件故障域:同一个控制平面实例、同一个etcd成员、同一个Ingress Controller。
关键原则:故障域划分的目标是确保关键工作负载的副本分布在不同的故障域中,从而避免单点故障导致整个服务不可用。

1.2 为什么需要故障域划分?

在Kubernetes环境中,缺乏故障域意识会导致以下风险:

风险场景 后果 影响等级
Pod全部调度到同一节点 节点宕机导致服务完全中断 严重
副本集中在同一可用区 可用区故障导致区域性服务不可用 灾难性
有状态应用与存储在同一故障域 存储故障连带应用数据丢失 严重
控制平面组件分布不均 etcd或API Server单点故障 灾难性

故障域划分带来的核心收益:

  • 高可用性:通过跨故障域分布副本,容忍单个故障域失效。
  • 故障隔离:限制爆炸半径,防止故障级联扩散。
  • 合规性:满足金融、医疗等行业对资源隔离的监管要求。
  • 资源优化:避免热点,提升集群整体资源利用率。

1.3 OPA Gatekeeper在故障域划分中的角色

OPA Gatekeeper是Kubernetes的准入控制器,它通过策略即代码的方式,在资源创建或更新时强制执行合规规则。在故障域划分场景中,Gatekeeper扮演以下关键角色:

  1. 策略定义者:使用Rego语言编写故障域约束模板,定义Pod、Deployment、StatefulSet等资源必须满足的分布规则。
  2. 准入拦截者:在API Server处理请求前,拦截违反故障域策略的资源提交,阻止其进入集群。
  3. 审计者:定期扫描集群中已有资源,发现并报告违反故障域策略的存量资源。
  4. 自动化执行者:无需人工审核,策略自动生效,确保故障域规则在集群生命周期内持续合规。
核心优势:相比手动配置或脚本检查,Gatekeeper将故障域策略与集群基础设施解耦,实现声明式、可版本化、可审计的策略管理。
故障域划分与OPA Gatekeeper角色架构 物理故障域 节点 / 机架 / 数据中心 逻辑故障域 可用区 / 网络分区 软件故障域 控制平面 / etcd 成员 Kubernetes 集群 Pod / Deployment / StatefulSet 节点标签:topology.kubernetes.io/zone Pod反亲和 / topologySpreadConstraints 资源配额 / 污点容忍 命名空间隔离 OPA Gatekeeper ConstraintTemplate (Rego) Constraint (实例化) 准入Webhook 审计引擎 策略状态报告 Gatekeeper 故障域策略执行流程 1. 运维团队编写 Rego 策略(如:要求 Deployment 副本分布在至少 2 个可用区) 2. 创建 ConstraintTemplate 和 Constraint 资源,注册到 API Server 3. 用户提交 Pod/Deployment 时,Gatekeeper 拦截请求并校验故障域规则 4. 合规则放行,违规则拒绝并返回详细错误信息

1.4 课程学习路径

本课程将按照以下结构逐步深入:

阶段 章节范围 核心内容
基础篇 第1-5章 故障域概念、Kubernetes原生调度机制、OPA Gatekeeper安装与基础策略
策略开发篇 第6-15章 Rego语言深入、故障域约束模板编写、Pod/Deployment/StatefulSet策略
高级实践篇 第16-25章 多集群故障域、有状态应用策略、审计与合规报告、性能优化
生产落地篇 第26-30章 CI/CD集成、故障演练、监控告警、最佳实践总结
前置要求:建议学习者具备Kubernetes基础操作能力(kubectl、YAML编写)、了解Pod调度原理(nodeSelector、亲和性/反亲和性),以及基本的策略即代码概念。
故障域策略执行时序(Gatekeeper 准入控制) 用户/CI API Server Gatekeeper etcd / 集群状态 提交Deployment AdmissionReview请求 执行故障域策略 AdmissionReview响应(允许/拒绝) 写入资源(合规时) 返回创建结果 整个流程在毫秒级完成,Gatekeeper 不存储资源,仅做策略校验

1.5 本章小结

通过本章学习,您已经掌握了:

  • 故障域的三种类型(物理、逻辑、软件)及其在Kubernetes中的映射。
  • 缺乏故障域划分带来的具体风险和收益。
  • OPA Gatekeeper作为策略引擎在故障域划分中的核心角色:定义、拦截、审计、自动化执行。
  • 课程的整体学习路径和前置要求。