OCI 制品是什么
OCI registry 不只能存容器镜像:自 OCI Image Spec 1.1 起,「通用制品」(artifact manifest)成为标准能力,Helm Chart、SBOM、签名、WASM 模块、安装包都可以作为 OCI 制品存放,复用同一套仓库地址、权限体系与复制、保留策略。常用工具链是 oras、helm 的 OCI 模式与 cosign(把签名、SBOM 作为镜像的伴生制品附着上去)。
基本信息
| 适用平台 | 支持 OCI 规范的 registry:Harbor、GHCR、ECR 等 |
|---|---|
| 标准 | OCI Image Spec 1.1 起支持通用制品(artifact manifest) |
| 工具 | oras、helm push(OCI 模式)、cosign attach |
| 收益 | 制品与镜像同库管理:权限、复制、保留策略统一 |
典型使用场景
- Helm Chart 托管:chart 与镜像同仓,版本与权限一次管好
- SBOM 与签名伴随:作为镜像的伴生制品推送,审计一个仓库即可取证
- 二进制分发:CLI 工具、安装包走 OCI,吃现成的认证与缓存
- 多制品版本对齐:镜像与 chart 用同一 tag 推送,部署时不易错配
- 离线交付:整仓导出搬运,内网落地方便
- 准入校验:集群准入器按镜像 digest 找到伴生签名与 SBOM,判定是否放行
ORAS 推送与拉取
ORAS 推送与拉取
oras push registry.example.com/tools/sbom:v1.8.0 \
--artifact-type application/spdx+json sbom.spdx.json # 推送 SBOM 制品
oras pull registry.example.com/tools/sbom:v1.8.0 # 消费端拉取
cosign attach sbom --sbom sbom.spdx.json registry.example.com/app:v1.8.0 # 与镜像关联
helm push chart-1.2.0.tgz oci://registry.example.com/charts # Helm Chart 走 OCI把 SBOM 与签名作为镜像的伴生制品推送,审计时一个仓库即可取证;保留策略记得覆盖这些副产物,否则镜像还在、证据先过期了。
registry 对通用制品的支持程度有差异:旧版或部分私有化 registry 可能不认识 artifact manifest,推送前先用 oras 试推一个验证。
常见制品与用法
| 制品 | 存放方式 | 消费方式 |
|---|---|---|
| Helm Chart | 同仓库独立路径或 tag | helm pull oci:// 拉取 |
| SBOM / 签名 | 作为镜像的伴生制品 | oras pull、cosign verify |
| CLI 二进制 | 独立仓库或路径 | oras pull 后解压 |
| WASM 模块 | 独立仓库 | 按 digest 引用加载 |
消费端尽量认 digest 而不认 tag:部署清单里写 digest,制品被覆盖或回滚都不会张冠李戴。
仓库侧先确认配额与保留策略:大体积制品长期堆积会吃掉 registry 存储配额,也和镜像争抢保留空间。