第 6 章 使用 Red Hat Quay 发布内容
Red Hat Quay 中的内容发布功能包括:
6.1. 使用 Red Hat Quay 镜像镜像 复制链接链接已复制到粘贴板!
要将外部 registry 中的镜像镜像(mirror)到 Red Hat Quay 集群中,并由存储库或机构名称和标签同步,您可以存储库镜像。
在启用了镜像的 Red Hat Quay 集群中,您可以执行以下操作:
- 从外部 registry 选择要镜像的存储库或机构
- 添加用于访问外部 registry 的凭证
- 识别特定容器镜像存储库或机构名称和要同步的标签
- 设置同步存储库或机构的间隔
- 检查同步的当前状态
- 过滤已镜像的构架
要使用镜像功能,您需要执行以下操作:
- 在 Red Hat Quay 配置文件中启用镜像(mirror)
- 运行镜像 worker
- 创建已镜像的存储库
所有镜像配置都可以使用配置工具 UI 或 Red Hat Quay API 执行。
6.1.1. 使用镜像 复制链接链接已复制到粘贴板!
要在不同环境中自动同步容器镜像,为您的 Red Hat Quay 存储库或机构配置镜像。通过查看此功能支持的功能和限制,您可以正确规划 registry 同步架构。
以下列表显示了 Red Hat Quay 镜像用于存储库或机构的特性和限制。
镜像文档中使用词语 实体 来引用存储库或机构。
- 使用镜像,您可以镜像整个实体,或有选择地限制同步哪些镜像。过滤器可以基于以逗号分隔的标签列表、一系列标签或其他方法通过 Unix shell 风格的通配符识别标签。如需更多信息,请参阅 通配符 文档。
- 为实体设置镜像后,您无法手动将其他镜像添加到该实体中。
- 由于已镜像的实体基于实体和您设置的标签,因此实体仅包含实体和标签对代表的内容。例如,如果您更改了标签,以便实体中的一些镜像不再匹配,则这些镜像将被删除。
- 只有指定的机器人才能将镜像推送到已镜像的实体,并取代实体上设置的任何基于角色的访问控制权限。
- 镜像可以配置为在失败时回滚,或者以 最佳方式运行。
- 使用镜像实体,具有读取权限 的用户可以从实体拉取镜像,但不能将镜像推送到实体。
- 可以在 Red Hat Quay 用户界面中更改镜像实体上的设置。
- 镜像以设定的时间间隔同步,但也可以根据需要同步。
在当前的机构级别存储库镜像实现中,Red Hat Quay 不会从源 registry 复制删除。如果在上游源中删除或不存在以下实体,它们会保留在本地 Quay 镜像中:
- 源命名空间或机构及其存储库。如果删除了整个上游源命名空间(如 Harbor 项目或 Quay 组织),则所有之前已镜像的存储库及其内容都会保留在本地镜像中。
- 单个存储库.之前发现并同步的软件仓库将继续跟踪并提供,即使从上游源中删除也是如此。
- 镜像标签.在最后一次同步时存在的标签会保留在镜像(即使已删除的上游)中。
- 推荐器.OCI Referrers API 工件,如 Cosign 签名和 SBOMs 当前没有被镜像。当在本地存在时,它们不会被自动清理
downstream 镜像充当累积存档。如果上游命名空间被禁止,或者其存储库和标签被删除,则镜像将继续为这些对象的最后成功同步版本提供服务。这可能会导致镜像中的存储消耗高于源。
注意注:此行为与存储库级别镜像不同,这会自动删除源 registry 中不再存在的本地标签。
需要通过 Red Hat Quay UI 或 API 手动删除这些实体才能从镜像中删除这些实体。以后的发行版本将会引入一个可配置的选项,用于自动删除缺少的项目,包括机构、存储库、标签、引用器和本地镜像中的清单列表。
6.1.2. 仓库镜像建议 复制链接链接已复制到粘贴板!
存储库镜像的最佳实践包括:
- 存储库镜像 pod 可以在任何节点上运行。这意味着您可以在已运行 Red Hat Quay 的节点上运行镜像(mirror)。
- 存储库镜像在数据库中调度,并批量运行。因此,存储库 worker 会检查每个存储库镜像配置文件,并在下一次同步需要时读取。更多镜像 worker 意味着可以同时镜像更多软件仓库。例如,运行 10 个镜像 worker 意味着用户可以并行运行 10 个镜像 Operator。如果用户只有 2 个带有 10 个镜像配置的 worker,则只能执行 2 个 operator。
镜像 pod 的最佳数量取决于以下条件:
- 要镜像的存储库总数
- 存储库中的镜像和标签数量以及更改的频率
并行批处理
例如,如果用户镜像有 100 个标签的存储库,则镜像将由一个 worker 完成。用户必须考虑要并行镜像多少个存储库,并以此为基础的 worker 数量。
同一存储库中的多个标签无法并行镜像。
6.1.3. 镜像的事件通知 复制链接链接已复制到粘贴板!
存储库镜像有三个通知事件:
- 仓库镜像已启动
- 仓库镜像成功
- Repository Mirror Unsuccessful
事件可以在每个存储库的 Settings 选项卡中配置,并且支持电子邮件、Slack、Quay UI 和 Webhook 等所有现有通知方法。
6.1.4. 镜像 API 复制链接链接已复制到粘贴板!
您可以使用 Red Hat Quay API 配置存储库镜像:
镜像 API
如需更多信息,请参阅 Red Hat Quay API 指南