2、多集群基础概念:集群联邦、集群间网络拓扑、服务网格与镜像拉取的关系

在多集群架构中,镜像拉取权限配置并非孤立的认证问题,而是与集群联邦、网络拓扑、服务网格等基础设施能力深度耦合。理解这些基础概念之间的关联,是设计高效、安全的多集群镜像拉取策略的前提。

2.1 集群联邦:统一身份与资源视图

集群联邦(Cluster Federation)的核心目标是让多个 Kubernetes 集群对外表现为一个逻辑集群。在镜像拉取场景中,联邦层主要解决身份统一和凭证分发两个问题。

  • 身份统一:联邦控制平面为每个成员集群颁发联邦级 ServiceAccount,使得镜像仓库能够基于联邦身份而非单个集群节点 IP 进行鉴权。
  • 凭证分发:联邦控制器将镜像拉取 Secret(如 dockerconfigjson)自动同步到所有成员集群的指定命名空间,避免人工逐集群配置。
关键约束:联邦层仅负责凭证的“分发”,不负责“传输安全”。凭证从联邦控制面到成员集群的同步通道,必须由底层网络策略(如 Cilium)提供加密和访问控制。

2.2 集群间网络拓扑:拉取流量的物理路径

镜像拉取请求的源(Pod)和目标(镜像仓库)之间的网络拓扑,直接决定了 Cilium 网络策略的配置粒度。常见的多集群网络拓扑分为以下三种:

拓扑类型 描述 镜像拉取路径 Cilium 策略关注点
扁平网络 所有集群 Pod CIDR 互通,无 NAT Pod → 仓库 Pod IP(直连) 基于 Pod 标签的 L3/L4 策略
网关路由 集群间通过 Ingress/Egress Gateway 转发 Pod → 本集群 Gateway → 对端集群 Gateway → 仓库 Gateway 端点身份识别 + TLS 策略
服务网格代理 所有流量经 Sidecar Proxy 转发 Pod → Sidecar → 网格控制面 → 仓库 mTLS 策略 + 服务账户到网格身份映射
常见误区:在扁平网络拓扑中,运维人员常误以为“网络可达”即“安全可达”。实际上,即使 Pod IP 可路由,也必须通过 Cilium 策略显式允许镜像仓库端口(如 5000/tcp)和仓库 Pod 的标签选择器,否则默认 Deny 策略会阻断拉取。
多集群网络拓扑与镜像拉取路径 多集群网络拓扑与镜像拉取路径 集群 A Pod CIDR: 10.1.0.0/16 拉取 Pod Gateway 集群 B Pod CIDR: 10.2.0.0/16 镜像仓库 Gateway 扁平网络直连 网关路由路径 服务网格代理路径 说明 • 扁平网络:拉取 Pod 直接访问仓库 Pod IP,Cilium 策略基于 Pod 标签。 • 网关路由:流量经过 Gateway,Cilium 需对 Gateway 端点做身份识别策略。 • 服务网格:流量经 Sidecar 代理,Cilium 策略需映射到网格服务身份。

2.3 服务网格:身份驱动的拉取授权

服务网格(如 Istio、Linkerd)为多集群通信提供了身份层。在镜像拉取场景中,网格将 Pod 的 Kubernetes ServiceAccount 映射为网格 SPIFFE 身份,使得 Cilium 网络策略可以从“基于 IP”升级为“基于身份”。

  • mTLS 自动加密:网格 Sidecar 自动为拉取流量启用双向 TLS,Cilium 策略只需关注“允许哪些 SPIFFE 身份访问仓库”,无需管理 TLS 证书。
  • 身份感知策略:Cilium 可以读取网格注入的 X.509 证书 SAN 字段,实现比标签选择器更细粒度的拉取控制。
最佳实践:在服务网格环境中,建议将 Cilium 网络策略的端点选择器从 podSelector 切换为 toFQDN 或 toService,配合网格的 ServiceEntry 资源,使策略与网格身份模型对齐。

2.4 三者的协同关系

集群联邦、网络拓扑、服务网格并非独立工作,它们在镜像拉取权限配置中形成如下协同链条:

  1. 联邦层:定义哪些集群可以拉取镜像,并分发初始凭证(Secret)。
  2. 网络拓扑层:决定拉取流量的物理路径,暴露需要保护的端口和端点。
  3. 服务网格层:为拉取流量注入可验证的身份,使 Cilium 策略能够基于身份而非网络地址进行授权。
  4. Cilium 策略层:综合联邦身份、网络路径、网格身份,生成最终的 L3-L7 网络策略。
多集群镜像拉取权限协同架构 多集群镜像拉取权限协同架构 集群联邦层 统一身份颁发 · 凭证分发 · 成员集群管理 网络拓扑层 扁平网络 / 网关路由 / 服务网格代理 · 流量路径定义 服务网格层 SPIFFE 身份注入 · mTLS 加密 · 身份感知路由 Cilium 网络策略层 基于身份的策略 · L3-L7 控制 · 拉取流量授权 协同流程:联邦层定义“谁可以拉” → 网络拓扑层定义“从哪里拉” → 网格层定义“以什么身份拉” → Cilium 策略层定义“允许怎么拉”。 每一层都为下一层提供必要的上下文,缺失任何一层都会导致策略配置不完整或过度宽松。

2.5 关键设计原则

原则 说明 对镜像拉取的影响
最小权限 每个集群只获得拉取自身所需镜像的凭证 联邦层按命名空间分发 Secret,Cilium 策略限制凭证使用范围
身份优先 优先使用网格身份而非 IP 地址做策略决策 避免 IP 漂移导致策略失效,提升拉取链路稳定性
路径感知 策略必须覆盖拉取流量的完整网络路径 网关路由场景需额外放通 Gateway 之间的中转流量
可审计 所有拉取请求在 Cilium 策略层留下日志 启用 Cilium 的 L7 审计日志,记录拉取来源、目标、身份
避坑提示:不要将集群联邦的凭证分发机制与 Cilium 网络策略的授权机制混为一谈。联邦分发凭证只解决“有没有钥匙”的问题,Cilium 策略解决“钥匙能不能用、在哪里用”的问题。两者必须配合,缺一不可。