1. OpenShift镜像仓库与制品治理导论

在容器化平台落地过程中,镜像仓库往往被当作“能拉能推就行”的基础设施,直到出现镜像来源不明、生产环境误用 latest 标签、镜像层中夹带密钥、旧版本无法追溯、仓库磁盘被历史镜像撑满等问题,团队才意识到:镜像仓库不只是存储服务,它同时是软件供应链的入口、制品生命周期的起点,也是安全与合规的第一道闸门。本课程围绕 OpenShift 环境下的镜像仓库与制品治理展开,目标是让读者既能搭建和运维仓库,也能建立一套可持续执行的治理规则。

课程要解决的核心问题

本课程不是单纯讲解某个仓库软件的安装命令,而是回答四个层层递进的问题:镜像从哪里来、如何被安全地存储与分发、如何判断一个镜像是否可信、以及如何让成百上千个镜像在长期运行中保持可管理。围绕这四个问题,课程会覆盖 OpenShift 内置的 ImageStream 与 Image Registry、外部镜像仓库(如 Quay、Harbor)的集成、镜像签名与扫描、标签与命名规范、保留与清理策略、以及基于策略的准入控制。

核心概念:镜像、制品与治理边界

需要先厘清三个概念。第一,镜像(Image)是由多层只读文件系统叠加、并附带元数据(配置、环境变量、入口命令)构成的不可变制品,其唯一身份由 digest 决定,形如 sha256:9f2a...。第二,制品(Artifact)是比镜像更宽的概念,除容器镜像外,还包括 Helm Chart、Operator Bundle、SBOM 清单、签名文件等随镜像一同分发的对象。第三,治理(Governance)指对制品的来源、命名、版本、权限、安全状态和生命周期施加可验证的规则,使“谁在什么条件下可以使用哪个制品”成为可回答的问题。

在 OpenShift 中,镜像的流转通常经过构建、推送、存储、拉取、运行五个环节。治理规则必须嵌入这条链路,而不是事后审计。下图展示了 OpenShift 镜像仓库与制品治理的整体结构:左侧是制品来源,中间是仓库与治理控制点,右侧是消费端,底部是贯穿全链路的策略与审计。

OpenShift 镜像仓库与制品治理结构 制品来源 BuildConfig 构建 CI 流水线推送 上游基础镜像 Helm / Operator 制品 仓库与治理控制点 OpenShift 内置 Registry ImageStream / 标签 外部仓库 Quay / Harbor 签名 / 扫描 / 复制 命名规范 · 保留策略 · 访问控制 · 准入校验 digest 固定 · 标签不可变 · 漏洞阈值 消费端 Deployment 拉取 ImageStreamTrigger 节点运行时 跨集群分发 贯穿全链路的策略与审计 镜像签名验证 · 漏洞扫描报告 · SBOM 溯源 · 拉取审计日志 · 配额与保留策略 准入控制器(ImagePolicy / SecurityContextConstraints)在部署前拦截不合规镜像 治理闭环的三个判断点 ① 来源可信:镜像是否来自受控构建或已签名上游,digest 是否可追溯。 ② 状态可知:漏洞等级、扫描时间、SBOM 是否随镜像一同保存并可查询。 ③ 使用可控:标签是否可变、保留多久、谁能拉取、部署时是否被准入策略放行。

治理范围:从“仓库运维”扩展到“制品生命周期”

很多团队把治理等同于“定期删旧镜像”,这远远不够。完整的治理范围至少包含五个维度:命名与版本(仓库路径、镜像名、标签规则)、安全(签名、扫描、漏洞阈值、密钥排查)、权限(谁能推、谁能拉、跨项目共享)、生命周期(保留数量、保留天数、归档与清理)、可追溯(digest 记录、构建来源、SBOM 与审计日志)。这五个维度互相牵制:例如标签设为不可变会提升可追溯性,但会改变 CI 的推送方式;保留策略过于激进会节省存储,却可能删掉回滚所需的版本。

学习路径与实操落点

课程按“认知—搭建—集成—治理—排障”推进。前期先理解 OpenShift 内置 Registry 与 ImageStream 的工作方式,掌握 oc get is、oc describe is、oc import-image 等基本操作;随后接入外部仓库,配置推送密钥、镜像复制与拉取凭据;进入治理阶段后,会实际编写标签规范、保留策略和准入规则,并通过扫描报告判断镜像是否允许进入生产命名空间。排障部分则聚焦拉取失败、认证 401、ImageStream 不更新、仓库磁盘告警等高频问题。

学习建议:每学一个治理规则,都在测试项目中用一条命令验证它是否真的生效。例如设置保留策略后,用 oc get imagestreamtag 观察旧标签是否被清理,而不是只看配置是否写入成功。

一个可参考的治理起点

如果团队尚未建立任何规范,可以从下面这份最小治理清单开始,它覆盖了最容易出问题、又最容易落地的几项:

治理项示例规则验证方式
标签规范生产仅允许 v1.2.3 形式,禁止 latest检查 Deployment 镜像字段
digest 固定关键工作负载使用 @sha256: 引用oc get deploy -o yaml
漏洞阈值Critical 漏洞数大于 0 禁止部署查看扫描报告与准入事件
保留策略每个 ImageStream 保留最近 10 个标签oc get istag 数量
拉取权限仅允许指定 ServiceAccount 拉取生产仓库用无权限 SA 测试拉取

这张表不是标准答案,而是一个起点。随着课程推进,读者会逐步理解每条规则背后的机制,并能根据自身团队的发布节奏、合规要求和存储成本调整参数。治理的目标不是把流程变复杂,而是让每一次镜像的构建、推送和部署都有据可查、有规可依。