1. 课程导论:多集群架构下镜像拉取的挑战、Cilium网络策略在镜像拉取中的角色、课程目标与前置知识

1.1 多集群架构下的镜像拉取:一个被低估的安全与效率瓶颈

在Kubernetes多集群架构中,工作负载的跨集群调度、弹性伸缩与灾备切换已成为常态。然而,一个看似基础的环节——容器镜像拉取,在多集群环境下却暴露出复杂的安全与网络挑战。镜像仓库通常部署在中心集群或第三方SaaS平台,而工作负载集群可能分布在不同的VPC、公有云区域甚至混合云环境中。这种拓扑分离导致镜像拉取路径变长、认证凭证分散、网络策略难以统一管控。

核心痛点: 镜像拉取权限配置不当,轻则导致Pod启动失败(ImagePullBackOff),重则暴露仓库凭证,成为攻击者横向移动的跳板。

下表总结了多集群镜像拉取面临的主要挑战维度:

挑战维度 具体问题 典型场景
网络可达性 集群节点无法直接访问镜像仓库;跨VPC/跨Region路由不通 生产集群在AWS us-east-1,仓库在阿里云上海
凭证管理 imagePullSecrets在多个集群间分发、轮换困难;密钥泄露风险高 使用私有仓库,每个集群需独立配置Secret
策略碎片化 每个集群独立配置网络策略,缺乏全局一致性视图 集群A允许拉取,集群B因策略遗漏导致拉取失败
性能与带宽 镜像层跨地域传输延迟高,拉取超时;重复拉取浪费带宽 大规模集群滚动更新时,镜像拉取成为瓶颈
审计与合规 无法追溯哪个集群、哪个节点在何时拉取了哪个镜像 金融合规要求记录所有镜像拉取操作

1.2 Cilium网络策略在镜像拉取中的角色

Cilium基于eBPF技术,提供了比传统Kubernetes NetworkPolicy更精细、更高效的网络控制能力。在镜像拉取场景中,Cilium网络策略可以发挥以下关键作用:

  • 精细化出口控制: 限制只有特定的节点或Pod可以访问镜像仓库的IP/端口,防止凭证被窃取后用于横向移动。
  • 基于身份的策略: 使用CiliumEndpoint或标签选择器,确保只有合法的kubelet或容器运行时进程才能发起拉取请求。
  • DNS感知策略: 允许通过域名(如 registry.example.com)而非固定IP来定义策略,适应仓库地址动态变化。
  • 加密与认证: 结合Cilium的透明加密(WireGuard/IPsec)和TLS策略,保护镜像拉取过程中的数据传输安全。
  • 多集群策略同步: 通过CiliumClusterwideNetworkPolicy或外部策略引擎(如KubiScan),实现跨集群策略的一致性下发。
关键洞察: Cilium网络策略不是镜像拉取的“银弹”,但它提供了将安全控制从“应用层”下沉到“网络层”的能力,使得镜像拉取权限配置从分散的Secret管理,演进为可审计、可编程、可观测的网络策略体系。
多集群镜像拉取架构与Cilium策略介入点 多集群镜像拉取架构与Cilium策略介入点 集群A (生产-北京) kubelet containerd Cilium Agent (eBPF) 集群B (灾备-上海) kubelet containerd Cilium Agent (eBPF) 镜像仓库 (registry.example.com) 私有仓库 / Harbor / ECR Cilium网络策略介入点 出口控制 · 身份认证 · 加密 · 审计

1.3 课程目标与前置知识

本课程旨在帮助学员掌握一套可落地、可观测、可扩展的多集群镜像拉取权限配置方案,核心目标如下:

  1. 理解多集群镜像拉取的网络与安全模型: 掌握镜像拉取涉及的组件(kubelet、containerd、registry)、认证流程(、TLS、Basic Auth)以及常见故障模式。
  2. 掌握Cilium网络策略的核心概念与API: 包括CiliumNetworkPolicy、CiliumClusterwideNetworkPolicy、Endpoint Selector、FQDN策略、L7策略等。
  3. 设计并实施基于Cilium的镜像拉取策略: 从单集群验证到多集群同步,涵盖策略编写、灰度发布、故障回滚。
  4. 构建策略的观测与审计能力: 利用Cilium Hubble、Metrics、Flow Log实现策略效果的实时监控与合规审计。
  5. 优化拉取性能与可靠性: 结合Cilium的带宽管理、连接跟踪、镜像缓存加速等能力,降低拉取延迟。
重要提示: 本课程不涉及镜像仓库本身的搭建与运维(如Harbor、ECR配置),也不深入讲解eBPF内核原理。课程聚焦于“网络策略”这一层,假设学员已具备基本的Kubernetes集群管理能力。

1.4 前置知识要求

为获得最佳学习效果,建议学员具备以下基础:

知识领域 具体要求 推荐学习资源
Kubernetes基础 理解Pod、Node、Service、Namespace、NetworkPolicy概念;能使用kubectl操作集群 Kubernetes官方文档“概念”部分
容器镜像与仓库 了解Docker/containerd镜像拉取流程;知道imagePullSecrets、dockerconfigjson的用途 Docker官方文档“镜像仓库”章节
网络基础 熟悉TCP/IP、DNS、TLS/SSL基本概念;了解CNI插件的作用 《计算机网络:自顶向下方法》第2-3章
Cilium入门 了解Cilium是eBPF驱动的CNI;知道Cilium Agent、Cilium Operator的基本角色 Cilium官方“Getting Started”指南
Cilium策略在镜像拉取流程中的位置 Cilium策略在镜像拉取流程中的位置 1. Pod调度 kube-scheduler 2. kubelet 检查镜像缓存 3. 网络策略检查 Cilium eBPF 出口规则 · 身份 · FQDN 4. 拉取镜像 containerd → 仓库 策略检查失败 → 拉取被拒绝(Connection Refused) 策略检查通过 → 正常拉取,同时记录审计日志
学习路径建议: 如果你对Cilium完全陌生,建议先花30分钟完成Cilium官方“Getting Started”中的“CiliumNetworkPolicy”示例。本课程第2章会快速回顾核心概念,但不会从零讲解eBPF。