1. 课程导论:多集群 K8s 架构概述、镜像供应链安全挑战、容量瓶颈问题定义
1.1 多集群 Kubernetes 架构概述
现代企业级云原生基础设施已从单集群演进为多集群架构。多集群部署通常基于以下驱动因素:
- 地理分布与延迟优化:将工作负载部署在靠近用户的多个区域集群中。
- 环境隔离与合规:开发、预发、生产环境使用独立集群,满足监管要求。
- 故障域隔离:避免单集群故障导致全局服务中断。
- 资源规模与配额:突破单集群节点上限(通常 5000 节点),实现弹性扩展。
典型的多集群架构包含以下核心组件:
| 组件 | 职责 | 常见实现 |
|---|---|---|
| 控制面集群 | 统一策略下发、资源调度、安全审计 | Karmada / Clusternet / OCM |
| 工作集群 | 运行实际业务负载,每个集群独立 etcd 与 API Server | 自建 K8s / EKS / AKS / GKE |
| 镜像仓库 | 存储与分发容器镜像,多集群共享或区域级部署 | Harbor / ECR / ACR / GCR |
| CI/CD 管道 | 构建、扫描、签名、部署镜像 | GitLab CI / Jenkins / Argo Workflows |
| 策略引擎 | 执行安全策略与合规检查 | OPA / Kyverno / Ratify |
关键认知: 多集群不是简单的 K8s 副本叠加,而是引入了跨集群网络、统一身份、镜像同步、策略分发等新维度。镜像供应链安全与容量瓶颈问题在这些维度上被显著放大。
1.2 镜像供应链安全挑战
在多集群环境中,镜像供应链的攻击面显著扩大。每个环节都可能成为安全短板:
- 构建阶段:基础镜像漏洞、依赖库投毒、构建环境被篡改。
- 存储阶段:镜像仓库未加密、访问控制薄弱、镜像被篡改或替换。
- 分发阶段:跨集群镜像同步未校验完整性、中间人攻击、镜像拉取凭证泄露。
- 部署阶段:运行未知来源镜像、未执行签名验证、策略检查缺失。
- 运行时阶段:镜像内组件存在已知漏洞、恶意进程逃逸、容器逃逸。
安全水位巡检核心关注点: 镜像签名覆盖率、漏洞扫描通过率、基础镜像版本新鲜度、非 root 用户运行比例、镜像拉取凭证轮转周期。多集群场景下,这些指标必须按集群维度分别统计,不能仅看全局平均值。
| 安全维度 | 单集群风险 | 多集群放大效应 |
|---|---|---|
| 镜像签名 | 未签名镜像可被部署 | 不同集群签名策略不一致,部分集群成为突破口 |
| 漏洞扫描 | 扫描频率低导致漏洞窗口期长 | 跨集群镜像同步延迟导致漏洞镜像在部分集群持续运行 |
| 凭证管理 | 镜像拉取 Secret 泄露 | 多集群共享凭证,泄露面扩大;轮转不同步 |
| 供应链完整性 | 镜像被篡改难以追溯 | 跨集群分发链路长,篡改检测点缺失 |
1.3 容量瓶颈问题定义
在多集群镜像供应链中,容量瓶颈不仅指存储空间不足,而是涵盖以下四个维度:
- 镜像仓库存储容量:镜像层数据累积、GC 策略失效、跨集群镜像冗余。
- 网络带宽与拉取并发:大规模滚动更新时镜像拉取带宽耗尽,导致 Pod 启动延迟。
- 镜像同步管道吞吐:跨区域同步队列积压,镜像版本滞后。
- 安全扫描与签名性能:扫描任务堆积,签名验证成为部署瓶颈。
巡检切入点: 通过 Prometheus + Grafana 监控镜像仓库 API 延迟、拉取速率、存储增长率;结合 K8s 事件审计定位拉取失败 Pod 的根因是凭证问题、镜像不存在还是仓库限流。
| 瓶颈维度 | 典型指标 | 多集群影响 |
|---|---|---|
| 存储容量 | 仓库使用率 > 80%、GC 失败次数 | 单仓库故障导致所有集群镜像拉取失败 |
| 网络带宽 | 镜像拉取平均延迟 > 30s、带宽利用率 > 90% | 跨区域拉取加剧延迟,Pod 启动时间不可控 |
| 同步管道 | 同步队列深度 > 100、同步延迟 > 5min | 部分集群运行旧版本镜像,安全补丁滞后 |
| 扫描性能 | 扫描任务排队时间 > 10min、扫描超时率 > 5% | 新镜像无法及时获得安全准入,阻塞部署 |