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% | 证书签发超时、签名流程中断 |
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 容量水位关联关系图
下图展示了四个容量水位之间的数据流和故障传导路径:
4.7 容量水位巡检清单
基于上述定义,日常巡检应覆盖以下检查项:
- 镜像仓库存储容量:检查各项目存储使用率、孤儿层占比、GC 执行状态。
- 签名数据量:统计签名对象总大小与镜像数据量的比例,检查签名存储是否独立。
- Rekor 日志条目数:监控各 Shard 条目数、日志追加延迟、查询响应时间。
- Fulcio 证书签发速率:实时 QPS、峰值 QPS、证书签发成功率、平均签发延迟。
- 关联分析:当任一指标触发预警时,自动关联其他三个指标的历史趋势,生成故障定位建议。