14.3. 使用独立 Red Hat Quay 进行异地复制
在上面的示例中,Quay 在两个独立区域(一个通用数据库和通用 Redis 实例)上运行。本地化的镜像存储在每个区域中提供,从最接近的可用存储引擎提供镜像拉取。容器镜像推送被写入 Quay 实例的首选存储引擎,然后在后台复制到其他存储引擎。
如果 Clair 在一个集群中失败,例如 US 集群,美国用户不会看到 Quay 中针对第二个集群(EU)的漏洞报告。这是因为所有 Clair 实例都具有相同的状态。当 Clair 失败时,它通常是因为集群中的问题。
14.3.1. 启用存储复制 - 独立 Quay
-
向下滚动到标题
Registry Storage
的部分。 -
点
Enable Storage Replication
。 - 添加要复制数据的每个存储引擎。必须列出要使用的所有存储引擎。
-
如果需要将所有镜像复制到所有存储引擎,请在各个存储引擎配置中单击
Replicate 到存储引擎
。这将确保所有镜像都复制到该存储引擎。要改为启用按命名空间复制,请联系支持。 -
完成后,单击
Save Configuration Changes
。配置更改将在 Red Hat Quay 下次重启时生效。 为 Georeplications 添加存储并启用"Replicate to存储引擎"后,您需要在所有存储间同步现有镜像数据。要做到这一点,您需要
oc exec
(或 docker/kubectl exec)到容器中,并运行:# scl enable python27 bash # python -m util.backfillreplication
这是在添加新存储后同步内容的一个时间操作。
14.3.2. 使用存储首选项运行 Red Hat Quay
- 将 config.yaml 复制到所有运行 Red Hat Quay 的机器
对于每个地区中的每个计算机,添加一个
QUAY_DISTRIBUTED_STORAGE_PREFERENCE
环境变量,其中包含机器正在运行的区域的首选存储引擎。例如,对于在欧洲中运行的机器,使用主机上的 config 目录通过
$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.7.13
注意指定的环境变量的值必须与配置面板中定义的位置 ID 的名称匹配。
- 重启所有 Red Hat Quay 容器