4、容量水位概念定义:镜像仓库存储容量、签名数据量、Rekor日志条目数、Fulcio证书签发速率

在基于 Sigstore 的镜像供应链安全体系中,容量水位并非单一维度的存储占用,而是涵盖 镜像仓库存储容量、签名数据量、Rekor 日志条目数 和 Fulcio 证书签发速率 四个核心指标。这四个维度分别对应供应链中制品存储、签名元数据、不可变审计日志和短期证书生命周期的容量瓶颈。只有同时监控这四个水位,才能全面评估 Sigstore 基础设施的健康状态,避免因单一维度过载导致签名验证失败或日志写入超时。

4.1 容量水位四维模型

下表从定义、度量单位、典型阈值和故障影响四个角度,对四个容量水位指标进行对比:

容量维度 定义 度量单位 典型预警阈值 超限故障影响
镜像仓库存储容量 OCI 镜像层、清单文件及标签占用的物理存储空间 GiB / TiB 存储池使用率 > 85% 镜像推送失败、GC 阻塞、拉取超时
签名数据量 Cosign 签名、Bundle、附加元数据(.sig / .att / .bom)的总大小 GiB 签名数据量 > 镜像数据量的 5% 签名存储膨胀,拉取签名延迟增加
Rekor 日志条目数 Rekor 透明日志中已持久化的签名事件总数 条目数(条) 单 Shard 条目数 > 1000 万 日志追加延迟升高,查询响应退化
Fulcio 证书签发速率 Fulcio 实例每秒签发的 OIDC 短期证书数量 QPS(次/秒) 持续 > 额定 QPS 的 80% 证书签发超时、签名流程中断
实践要点: 四个维度并非独立运行。例如,Fulcio 签发速率飙升会直接导致 Rekor 日志条目数激增,进而推高签名数据量。巡检时应优先关注 Rekor 条目数 和 Fulcio QPS 这两个动态指标,它们往往是容量故障的先行信号。

4.2 镜像仓库存储容量

镜像仓库存储容量是最基础的容量水位。每个 OCI 镜像由多个层(Layer)组成,每次推送新标签都会产生新的层数据。存储容量水位计算公式为:

存储使用率 = (已用存储空间 / 存储池总容量) × 100%

关键监控对象:
- 各项目(Project/Namespace)的存储占用分布
- 未引用的孤儿层(Orphan Layers)占比
- 镜像垃圾回收(GC)执行频率与耗时

当存储使用率超过 85% 时,镜像仓库的 GC 性能会显著下降,推送新镜像时可能触发写入限流。建议为每个仓库设置独立的配额上限,避免单个项目耗尽全局存储池。

4.3 签名数据量

签名数据量是容易被忽视的隐性水位。使用 Cosign 签名时,每个镜像标签会生成以下附加对象:

  • .sig 签名文件:包含签名载荷和公钥信息,通常 2–5 KiB。
  • .att attestation 文件:包含 SLSA 证明或 SPDX SBOM,大小 10–100 KiB。
  • .bom 物料清单:可选,大小可达数 MiB。

在 CI/CD 高频发布场景下,签名数据量的增长速度可能超过镜像数据本身。当签名数据量超过镜像数据量的 5% 时,建议启用签名数据独立存储或配置专门的签名仓库,避免签名对象与镜像层混合存储导致碎片化。

4.4 Rekor 日志条目数

Rekor 是 Sigstore 的透明日志系统,每条签名事件对应一个日志条目。条目数直接决定日志的存储成本和查询性能。Rekor 采用 Shard(分片)机制管理条目:

Rekor 日志条目数 = Σ(每个 Shard 的条目数)

关键水位指标:
- 单 Shard 条目数 < 1000 万(建议)
- 日志追加延迟 < 2 秒(P99)
- 日志查询响应时间 < 500 ms(P99)

当单 Shard 条目数超过 1000 万时,Merkle 树的更新和证明生成会显著变慢。此时应触发 Shard 轮换(Shard Rotation),创建新的日志分片,并将旧 Shard 标记为只读。

4.5 Fulcio 证书签发速率

Fulcio 负责为每个签名操作签发短期 X.509 证书。证书签发速率(QPS)是衡量 Fulcio 实例处理能力的核心指标:

Fulcio QPS = 每秒成功签发的证书数

额定容量评估:
- 单 Fulcio 实例额定 QPS:通常 200–500(取决于 OIDC 验证和 CA 后端)
- 预警阈值:持续 > 额定 QPS 的 80%
- 故障阈值:持续 > 额定 QPS 的 120%

当 QPS 持续超过额定值的 80% 时,证书签发延迟会非线性增长,导致签名流程中的 cosign sign 命令超时。建议为 Fulcio 配置水平扩展策略,通过负载均衡将请求分发到多个实例。

4.6 容量水位关联关系图

下图展示了四个容量水位之间的数据流和故障传导路径:

容量水位关联关系与故障传导路径 镜像仓库存储容量 GiB / TiB 签名数据量 GiB Rekor 日志条目数 条目数 Fulcio 证书签发速率 QPS 镜像推送触发签名 签名事件写入日志 签发证书用于签名 证书信息记录日志 故障传导路径 ① Fulcio QPS 飙升 ② Rekor 条目数激增 ③ 签名数据量膨胀 ④ 镜像存储容量告急
巡检建议: 建立容量水位四维仪表盘,将上述四个指标统一展示在同一时间轴上。当任意一个维度触发预警时,自动检查其他三个维度的关联指标,快速定位故障根因。例如,Rekor 条目数突增 + Fulcio QPS 同步上升,通常指向 CI/CD 流水线签名并发过高;而仅镜像存储容量上升但其他维度平稳,则可能是镜像推送频率异常或 GC 失效。

4.7 容量水位巡检清单

基于上述定义,日常巡检应覆盖以下检查项:

  1. 镜像仓库存储容量:检查各项目存储使用率、孤儿层占比、GC 执行状态。
  2. 签名数据量:统计签名对象总大小与镜像数据量的比例,检查签名存储是否独立。
  3. Rekor 日志条目数:监控各 Shard 条目数、日志追加延迟、查询响应时间。
  4. Fulcio 证书签发速率:实时 QPS、峰值 QPS、证书签发成功率、平均签发延迟。
  5. 关联分析:当任一指标触发预警时,自动关联其他三个指标的历史趋势,生成故障定位建议。
注意: 容量水位定义是巡检策略的基础。如果定义不清晰或指标粒度不匹配实际业务场景,后续的自动化巡检和故障定位将失去准确性。建议在部署 Sigstore 基础设施之初就完成这四个维度的容量基线标定,并定期根据业务增长调整预警阈值。