4. 容量规划基础:定义、目标与核心指标

容量规划(Capacity Planning)是确保 IT 资源在满足当前业务负载的同时,能够以可预测的成本和性能水平支撑未来增长的系统性方法。在云原生环境中,容量规划不仅是成本优化的手段,更是镜像安全水位巡检与签名验证策略能否稳定落地的底层保障。

4.1 容量规划的定义与核心目标

容量规划的本质是供需平衡——将业务需求(负载)映射到基础设施资源(供给),并预留合理的缓冲区间。其核心目标包括:

  • 性能保障:确保 CPU、内存、存储、网络 IO 等资源在峰值负载下仍能满足 SLO(服务等级目标)。
  • 成本控制:避免过度配置导致的资源浪费,同时防止因资源不足引发的业务中断。
  • 风险规避:通过提前规划应对突发流量、节点故障或安全巡检任务(如镜像扫描、签名验证)带来的资源冲击。
  • 自动化决策:为 HPA(水平 Pod 自动扩缩)、VPA(垂直 Pod 自动扩缩)和集群自动缩放提供数据驱动依据。
关键认知: 容量规划不是一次性活动,而是持续迭代的闭环过程。在 DevSecOps 实践中,每次镜像签名验证或安全水位巡检都会产生额外的资源开销,必须纳入容量模型。

4.2 核心指标:CPU、内存、存储、网络 IO

以下表格总结了四大核心资源指标的定义、度量单位及在安全巡检场景下的典型影响:

资源类型 核心指标 常用单位 安全巡检关联点
CPU 利用率、饱和度、等待队列长度 核数(Cores)、毫核(m) 镜像漏洞扫描(Trivy/Clair)会大量消耗 CPU;Cosign 签名验证涉及非对称解密,单次操作约消耗 0.1-0.3 核秒
内存 使用量、页错误率、OOM 事件 字节(GiB/MiB) 镜像层缓存、SBOM 解析、策略引擎加载均占用内存;内存不足会导致安全巡检任务被 OOMKill
存储 IOPS、吞吐量、延迟、容量使用率 IOPS、MB/s、ms、GiB 镜像仓库存储签名元数据;大规模镜像扫描产生临时文件;日志审计需要持久化存储
网络 IO 带宽、吞吐量、连接数、丢包率 Mbps/Gbps、并发连接数 镜像拉取/推送、签名验证请求(到 OCI 仓库)、安全策略下发均依赖网络 IO;带宽不足会延长巡检窗口

4.3 容量规划与安全巡检的关联

安全巡检(镜像扫描、签名验证、策略审计)不是免费的。每一次巡检都会消耗集群资源,如果容量规划不考虑这些额外开销,可能导致:

  • 巡检任务饿死:生产业务 Pod 抢占全部资源,安全巡检 Pod 无法调度。
  • 签名验证超时:网络 IO 或 CPU 不足导致 Cosign 验证失败,误报为“镜像不可信”。
  • 存储爆炸:未规划临时存储上限,大量扫描结果和 SBOM 文件写满节点磁盘。
实践原则: 将安全巡检视为“有优先级的批处理作业”。在容量规划中,为安全巡检预留 5%-10% 的 CPU 和内存余量,并为镜像仓库和扫描器配置独立的 IOPS 保障。

下图展示了容量规划与安全水位巡检之间的数据流和资源依赖关系:

容量规划与安全巡检关联架构图 容量规划与安全巡检资源关联图 容量规划引擎 (CPU/内存/存储/网络模型) 集群资源池 (节点/Pod/存储卷/网络带宽) 安全水位巡检 (镜像扫描/Cosign验证/策略审计) 资源预算 分配资源 资源消耗反馈 / 巡检窗口延迟 CPU 指标 • 利用率 (util) • 饱和度 (sat) • 等待队列长度 内存指标 • 使用量 (RSS) • 页错误率 • OOM 事件计数 存储指标 • IOPS / 吞吐量 • 延迟 (p99) • 容量使用率 网络 IO 指标 • 带宽 (bps) • 并发连接数 • 丢包率 / 重传 容量规划与安全巡检的闭环 容量规划为安全巡检提供资源预算 → 巡检任务消耗资源并产生延迟数据 → 反馈给容量模型调整预算 例如:若 Cosign 验证平均延迟 > 500ms,则需增加网络带宽或 CPU 预留

4.4 容量规划在镜像安全场景中的关键考量

在实施镜像安全水位巡检和 Cosign 签名验证时,以下容量规划要点需要特别关注:

  1. 并发扫描的 CPU 峰值:当大批量镜像同时入仓触发扫描时,CPU 利用率可能瞬间飙升至 80% 以上。建议为扫描器设置 CPU 限流(例如 --cpu 4),并预留 2-4 核的缓冲。
  2. 签名验证的冷启动开销:Cosign 首次验证需要从 OCI 仓库拉取签名对象和公钥,网络 IO 延迟可能达到 200-500ms。建议在容量模型中为签名验证设置独立的网络带宽保障。
  3. 临时存储水位:镜像扫描产生的 SBOM 和漏洞报告文件可能快速膨胀。例如,扫描一个 2GB 的镜像可能产生 500MB 的临时数据。必须为巡检 Pod 设置 emptyDir 大小限制。
  4. 巡检窗口时间预算:安全巡检通常有严格的 SLA(例如:镜像推送后 5 分钟内完成扫描和签名验证)。容量规划需要确保在并发峰值下仍能满足时间窗口。
常见陷阱: 只关注业务 Pod 的资源需求,忽略安全巡检任务的资源开销。结果导致在镜像批量发布时,安全巡检 Pod 因资源不足被 Pending,签名验证超时,CI/CD 流水线阻塞。

4.5 容量规划与安全巡检的协同工作流

以下 SVG 展示了从容量规划到安全巡检执行的完整协同流程:

容量规划与安全巡检协同工作流 容量规划与安全巡检协同工作流 1. 业务负载预测 历史指标 + 业务增长 2. 资源预算分配 CPU/内存/存储/网络 3. 安全巡检执行 扫描 + Cosign 验证 4. 结果 通过/拒绝 资源消耗数据反馈 → 调整预算 容量规划决策点(安全巡检相关) • 若扫描器 CPU 利用率持续 > 70% → 增加扫描器副本数或提升节点规格 • 若 Cosign 验证延迟 > 1s → 检查网络带宽或启用签名缓存 • 若临时存储写满 → 限制扫描并发数或增大 emptyDir 大小上限 • 若巡检窗口超时 → 降低扫描深度(如跳过未变更层)或增加资源预留

4.6 容量规划成熟度模型

根据团队对容量规划与安全巡检的整合程度,可以分为以下三个成熟度等级:

成熟度等级 特征 安全巡检表现
L1:被动响应 无容量规划,资源不足时手动扩容 巡检任务频繁 OOMKill 或 Pending,签名验证超时
L2:主动监控 基于历史指标设置资源阈值和告警 巡检任务有基本资源保障,但高峰期仍可能延迟
L3:动态优化 容量规划与安全巡检联动,自动调整资源预算 巡检任务始终有保障资源,签名验证延迟可控,巡检窗口 SLA 达标
进阶建议: 在 L3 成熟度下,可以将安全巡检的资源消耗指标(如扫描耗时、验证延迟)作为容量规划模型的输入特征,使用线性回归或时间序列预测来动态调整预留资源量。