15.3. 使用独立 Red Hat Quay 进行 geo-replication

在以下镜像中,Red Hat Quay 在两个独立的区域独立运行,一个通用数据库和通用 Redis 实例。每个地区和镜像拉取都提供了本地化镜像存储,可从最接近的可用存储引擎提供。容器镜像推送被写入 Red Hat Quay 实例的首选存储引擎,然后在后台复制到其他存储引擎。

注意

如果 Clair 在一个集群中失败,例如 US 集群,则美国用户不会在 Red Hat Quay for the second cluster (EU)中看到漏洞报告。这是因为所有 Clair 实例都具有相同的状态。当 Clair 失败时,它通常是因为集群中的问题而造成的。

地理复制架构

Geo-replication

15.3.1. 启用存储复制 - 独立 Quay

使用以下步骤在 Red Hat Quay 上启用存储复制。

流程

  1. 在 Red Hat Quay 配置编辑器中,找到 Registry Storage 部分。
  2. 单击 Enable Storage Replication
  3. 添加要复制数据的每个存储引擎。必须列出所有要使用的存储引擎。
  4. 如果需要所有镜像完成复制到所有存储引擎,请在每个存储引擎配置下单击 Replicate to storage engine。这可确保所有镜像都复制到该存储引擎。

    注意

    要启用每个命名空间复制,请联系红帽 Quay 支持。

  5. 完成后,单击 Save Configuration Changes。在 Red Hat Quay 重启后,配置更改将生效。
  6. 在为异地复制 默认添加存储 并启用 Replicate 后,您必须在所有存储间同步现有镜像数据。要做到这一点,您必须在容器中 oc exec (原生、docker execkubectl exec)并输入以下命令:

    # scl enable python27 bash
    # python -m util.backfillreplication
    注意

    在添加新存储后,这是同步内容的一个时间操作。

15.3.2. 使用存储首选项运行 Red Hat Quay

  1. 将 config.yaml 复制到所有运行 Red Hat Quay 的机器
  2. 对于每个地区中的每个机器,添加一个 QUAY_DISTRIBUTED_STORAGE_PREFERENCE 环境变量,其中包含运行机器所在区域的首选存储引擎。

    例如,对于在欧洲且主机上的配置目录( $QUAY/config )中运行的机器:

    $ sudo podman run -d --rm -p 80:8080 -p 443:8443  \
       --name=quay \
       -v $QUAY/config:/conf/stack:Z \
       -e QUAY_DISTRIBUTED_STORAGE_PREFERENCE=europestorage \
       registry.redhat.io/quay/quay-rhel8:v3.8.15
    注意

    指定的环境变量值必须与 config 面板中定义的位置 ID 名称匹配。

  3. 重启所有 Red Hat Quay 容器