Docker KubernetesNotes

第 30 章:多集群治理

zjc 于 2026-01-30 发布

这是《Docker 与 Kubernetes 零基础实战指南》的独立章节版。本章从概念、实操和生产排查三个视角展开,代码块保留了原书可直接运行的版本。 多集群用于隔离故障域、满足合规、降低爆炸半径、靠近用户和分离环境。它也带来分发、网络、身份和运维复杂度。

30.1 常见拓扑

环境多集群:dev / staging / prod
region 多集群:cn-north / cn-south
业务多集群:交易 / 数据 / 内部
容灾多集群:active / standby

30.2 分发方式

方式 工具
GitOps Argo CD ApplicationSet、Flux
控制面同步 Karmada、Clusternet
Helm pipeline CI 逐环境部署
镜像同步 Registry 复制

30.3 需要治理的内容

  1. 集群清单和版本;
  2. 命名规范;
  3. 权限和身份;
  4. 网络互联;
  5. DNS 与证书;
  6. 配置差异;
  7. 镜像同步;
  8. 监控聚合;
  9. 成本归属;
  10. 应急切换。

30.4 跨集群服务

方式:

方案 特点
全局负载均衡 用户流量就近
Service Mesh 多集群 服务发现和 mTLS
API Gateway 路由 显式集成
消息异步同步 松耦合

不要为了技术炫技默认全互联,应按故障域和业务依赖设计。

30.5 容灾目标

指标 含义
RTO 恢复服务时间
RPO 可容忍数据丢失

跨集群数据库、消息和状态同步是难点,Kubernetes 本身只调度容器,不自动复制业务数据。

本章小结

多集群提升隔离性和可控性,但必须治理配置分发、网络、身份、数据和观测。先明确容灾与合规目标,再决定拓扑和工具。

思考题

  1. 为什么需要多集群?
  2. GitOps 如何分发多集群配置?
  3. 跨集群数据同步为什么困难?
  4. 多集群监控如何聚合?
  5. 如何验证容灾切换?