1. 课程导论

1.1 镜像供应链概念

镜像供应链(Image Supply Chain)是指从代码提交、镜像构建、制品存储、安全扫描、签名验证,到最终分发至多集群并完成部署的完整链路。在云原生环境中,镜像不仅是应用的交付物,更是运行时环境的唯一凭证,其供应链的健壮性直接决定业务连续性。

核心环节: 构建 → 存储 → 扫描 → 分发 → 部署 → 运行

一个典型的镜像供应链包含以下关键组件与流程:

环节 组件/工具 职责
构建 Dockerfile / BuildKit / Kaniko 将源码与依赖打包为不可变镜像
存储 Harbor / ECR / ACR / 自建 Registry 镜像版本管理、不可变标签、GC 策略
安全 Trivy / Clair / Cosign 漏洞扫描、签名验证、SBOM 生成
分发 P2P / 镜像预热 / 跨集群同步 将镜像从中心仓库推送至各集群本地缓存
部署 ArgoCD / Flux / Kustomize 声明式同步,确保集群状态与期望一致
镜像供应链全链路架构 镜像供应链全链路架构 构建 存储 安全扫描 分发同步 部署 每个环节都可能成为瓶颈或故障点,需要持续巡检与调优 集群 A(生产-北京) 镜像缓存水位:75% 集群 B(生产-上海) 镜像缓存水位:82% 集群 C(灾备-广州) 镜像缓存水位:60%

1.2 容量水位巡检的定义

容量水位巡检(Capacity Watermark Inspection)是指对镜像供应链中各个组件的资源使用率、存储占用、网络吞吐、队列积压等关键指标进行周期性或事件驱动的检查,并与预设的阈值进行比较,提前发现容量风险。

巡检核心指标: 镜像仓库存储使用率、P2P 分发节点磁盘水位、同步队列深度、拉取请求排队时间、集群本地缓存命中率。

常见的巡检维度与水位等级划分如下:

巡检维度 健康水位(绿灯) 预警水位(黄灯) 危险水位(红灯)
Registry 存储使用率 < 60% 60% – 80% > 80%
同步队列积压数 < 100 100 – 500 > 500
集群本地缓存命中率 > 90% 70% – 90% < 70%
P2P 节点磁盘 IO 等待 < 10ms 10ms – 50ms > 50ms

巡检不是一次性的动作,而是持续运营的闭环:采集 → 分析 → 告警 → 处置 → 复盘。通过水位巡检,SRE 团队可以在容量耗尽之前完成扩容、清理或参数调整,避免因镜像拉取超时导致部署失败。

1.3 多集群同步参数调优的重要性

在多集群架构下,镜像同步是供应链中最容易产生性能瓶颈的环节。同步参数配置不当,会导致以下典型问题:

  • 同步延迟过高: 新镜像推送后,远端集群需要数分钟甚至数十分钟才能拉取到,影响灰度发布和故障恢复速度。
  • 带宽浪费: 全量同步策略导致大量重复数据在跨地域链路上传输,增加成本且挤占业务带宽。
  • 节点 OOM 或磁盘写满: 并发同步任务数过大,或临时缓存目录未做水位限制,导致同步代理进程崩溃。
  • 同步冲突与数据不一致: 多源同步场景下缺乏锁机制或版本校验,造成集群间镜像 digest 不一致。
多集群同步参数调优前后对比 多集群同步参数调优前后对比 调优前(默认参数) 并发数:10 | 队列深度:无限制 结果:OOM 频发,同步延迟 > 5min 调优后(推荐参数) 并发数:4 | 队列深度:200 结果:稳定运行,同步延迟 < 30s 核心调优参数 sync.concurrency:控制同时同步的镜像层数,避免 IO 和网络过载 sync.queue.max:限制待同步任务队列长度,防止内存溢出
注意: 不同集群的网络延迟、磁盘性能、CPU 核数差异很大,调优参数不能“一刀切”。必须结合容量水位巡检数据,为每个集群单独计算最优参数组合。