3.3. 存储库镜像

3.3.1. 仓库镜像

Red Hat Quay 存储库镜像可让您将来自外部容器 registry 或其他本地 registry 的镜像镜像到 Red Hat Quay 集群中。使用存储库镜像,您可以根据存储库名称和标签将镜像同步到 Red Hat Quay。

在启用了存储库镜像的 Red Hat Quay 集群中,您可以执行以下操作:

  • 从外部 registry 选择要镜像的存储库
  • 添加凭证以访问外部 registry
  • 识别要同步的特定容器镜像存储库名称和标签
  • 设置同步存储库的时间间隔
  • 检查同步的当前状态

要使用镜像功能,您需要执行以下操作:

  • 在 Red Hat Quay 配置文件中启用存储库镜像
  • 运行存储库镜像 worker
  • 创建已镜像的存储库

所有存储库镜像配置均可使用配置工具 UI 或 Red Hat Quay API 执行。

3.3.2. 镜像配置 UI

  1. 以配置模式启动 Quay 容器,再选中 Enable Repository Mirroring 复选框。如果要要求 HTTPS 通信并在镜像过程中验证证书,请选择 HTTPS 和证书验证复选框。

    Enable mirroring and require HTTPS and verified certificates

  2. 验证并下载 配置文件,然后使用更新的配置文件在 registry 模式中重新启动 Quay。

3.3.3. 镜像 worker

使用以下步骤启动存储库镜像 worker。

流程

  • 如果您还没有使用 /root/ca.crt 证书配置 TLS 通信,请输入以下命令以使用 repomirror 选项启动 Quay pod:

    $ sudo podman run -d --name mirroring-worker \
      -v $QUAY/config:/conf/stack:Z \
      registry.redhat.io/quay/quay-rhel8:v3.9.0 repomirror
  • 如果您使用 /root/ca.crt 证书配置了 TLS 通信,请输入以下命令来启动存储库镜像 worker:

    $ sudo podman run -d --name mirroring-worker \
      -v $QUAY/config:/conf/stack:Z \
      -v /root/ca.crt:/etc/pki/ca-trust/source/anchors/ca.crt:Z \
      registry.redhat.io/quay/quay-rhel8:v3.9.0 repomirror

3.3.4. 创建已镜像的存储库

从外部容器 registry 镜像存储库时,您必须创建一个新的私有存储库。通常,名称与目标存储库相同,如 quay-rhel8

Create new Red Hat Quay repo

3.3.4.1. 存储库镜像设置

使用以下步骤调整已镜像存储库的设置。

先决条件

  • 您已在 Red Hat Quay 配置文件中启用了存储库镜像。
  • 您已部署了镜像 worker。

流程

  1. 在 Settings 选项卡中,将 Repository State 设置为 Mirror

    Create a new Red Hat Quay repo mirror

  2. 在 Mirror 选项卡中,输入连接到外部 registry 的详情,以及标签、调度和访问信息:

    Repository mirroring

  3. 在以下字段中输入详情:

    • registry 位置: 您要镜像的外部存储库,如 registry.redhat.io/quay/quay-rhel8
    • tags: 此字段是必需的。您可以输入以逗号分隔的各个标签或标签模式列表。(详情请参阅 Tag Patterns 部分。)
    • 开始日期: 镜像开始的日期。默认使用当前的日期和时间。
    • 同步间隔 : 默认为每 24 小时同步一次。您可以根据小时或天更改。
    • robot User: 创建一个新的机器人帐户,或选择一个现有的机器人帐户来进行镜像。
    • 用户名 : 用于访问您要镜像的存储库的外部 registry 的用户名。
    • Password : 与用户名关联的密码。请注意,密码不能包含需要转义字符(\)的字符。

3.3.4.2. 高级设置

Advanced Settings 部分中,您可以使用以下选项配置 SSL/TLS 和代理:

  • 验证 TLS: 如果您需要 HTTPS,并在与目标远程 registry 通信时验证证书,请选择这个选项。
  • 接受未签名的镜像 : 选择这个选项允许镜像未签名的镜像。
  • HTTP Proxy: 如果您需要 HTTPS,并在与目标远程 registry 通信时验证证书,请选择这个选项。
  • https PROXY: 如果需要代理服务器,请识别访问远程站点所需的 HTTPS 代理服务器。
  • 无代理: 不需要代理的位置列表。

3.3.4.3. 现在同步

使用以下步骤启动镜像操作。

流程

  • 要执行即时镜像操作,请按存储库镜像选项卡上的 Sync Now 按钮。日志在 Usage Logs 标签页中可用:

    Usage logs

    镜像完成后,镜像将显示在 Tags 选项卡中:

    Repository mirroring tags

    以下是已完成的仓库镜像屏幕示例:

    Repository mirroring details

3.3.5. 镜像标签模式

必须至少输入一个标签。下表引用可能的镜像标签模式。

3.3.5.1. 模式语法

pattern

描述

*

匹配所有字符

?

匹配任何单个字符

[seq]

匹配顺序中 的任何字符

[!seq]

匹配任何不在顺序 中的字符

3.3.5.2. 标签模式示例

Pattern 示例

匹配示例

v3*

v32, v3.1, v3.2, v3.2-4beta, v3.3

v3.*

v3.1、v3.2、v3.2-4beta

v3.?

v3.1, v3.2, v3.3

v3.[12]

v3.1, v3.2

v3.[12]*

v3.1、v3.2、v3.2-4beta

v3.[!1]*

v3.2, v3.2-4beta, v3.3