6.3. 在 OpenShift Container Platform 上升级 Red Hat Quay 的地理复制部署
使用以下步骤升级 OpenShift Container Platform 部署中的地理复制 Red Hat Quay。
-
当 OpenShift Container Platform 上的 geo-replicated Red Hat Quay 升级到下一个 y-stream 版本(例如,Red Hat Quay 3.7
Red Hat Quay 3.8)时,您必须在升级前停止操作。 - 间歇性停机时间从一个 y-stream 版本升级到下一个版本。
- 在升级前,强烈建议在 OpenShift Container Platform 部署中备份 Red Hat Quay。
此流程假设您在三个或更多系统上运行 Red Hat Quay registry。在此过程中,我们将假设三个系统名为 System A、
System B
和 System C
。系统 A
将作为部署 Red Hat Quay Operator 的主要系统。
在 System B 和 System C 中,缩减 Red Hat Quay registry。这可以通过禁用自动扩展并覆盖 Red Hat Quay、mirror worker 和 Clair 的副本计数(如果被管理)。使用以下
quayregistry.yaml
文件作为参考:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您必须保持在 System A 上运行 Red Hat Quay registry。不要更新 System A 上的
quayregistry.yaml
文件。等待
registry-quay-app
、registry-quay-mirror
和registry-clair-app
pod 消失。输入以下命令检查其状态:oc get pods -n <quay-namespace>
oc get pods -n <quay-namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
quay-operator.v3.7.1-6f9d859bd-p5ftc 1/1 Running 0 12m quayregistry-clair-postgres-7487f5bd86-xnxpr 1/1 Running 1 (12m ago) 12m quayregistry-quay-app-upgrade-xq2v6 0/1 Completed 0 12m quayregistry-quay-redis-84f888776f-hhgms 1/1 Running 0 12m
quay-operator.v3.7.1-6f9d859bd-p5ftc 1/1 Running 0 12m quayregistry-clair-postgres-7487f5bd86-xnxpr 1/1 Running 1 (12m ago) 12m quayregistry-quay-app-upgrade-xq2v6 0/1 Completed 0 12m quayregistry-quay-redis-84f888776f-hhgms 1/1 Running 0 12m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 System A 中,启动 Red Hat Quay 升级到最新的 y-stream 版本。这是一个手动过程。有关升级安装的 Operator 的更多信息,请参阅 升级已安装的 Operator。有关 Red Hat Quay 升级路径的更多信息,请参阅升级 Red Hat Quay Operator。
-
安装新的 Red Hat Quay registry 后,集群上的必要升级会自动完成。之后,新的 Red Hat Quay Pod 使用最新的 y-stream 版本启动。另外,还会调度并启动新的
Quay
pod。 通过进入到 Red Hat Quay UI 确认更新是否正常工作:
在 OpenShift 控制台中,导航到 Operators
Installed Operators,然后点击 Registry Endpoint 链接。 重要在 Red Hat Quay UI 可用前,不要执行以下步骤。在系统 A 上提供 UI 前,不要升级 System B 和 System C 上的 Red Hat Quay registry。
确认更新已在 System A 上正常工作,在 System B 和 System C 上启动 Red Hat Quay 升级。Operator 升级会生成升级的 Red Hat Quay 安装,并且 pod 被重启。
注意因为数据库架构对于新的 y-stream 安装正确,System B 和 System C 上的新 pod 应该快速启动。
更新后,通过删除对组件的
覆盖
来恢复此步骤 1 中所做的更改。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果在升级前将
horizontalpodautoscaler
资源设置为True
,或者您希望 Red Hat Quay 在资源短缺的情况下扩展,请将其设置为True
。
通过按照以下流程,Red Hat Quay 管理员可以删除地理复制设置中的站点。
先决条件
- 已登陆到 OpenShift Container Platform。
-
您已为 Red Hat Quay geo-replication 配置至少两个站点,例如
usstorage
和eustorage
。 - 每个站点都有自己的组织、存储库和镜像标签。
流程
运行以下命令,在所有定义的站点间同步 Blob:
python -m util.backfillreplication
$ python -m util.backfillreplication
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告在从 Red Hat Quay
config.yaml
文件中删除存储引擎 前,您必须确保 所有 Blob 在所有定义的站点间同步。运行此命令时,会创建复制 worker 提取的复制作业。如果存在需要复制的 Blob,脚本会返回要复制的 Blob 的 UUID。如果您多次运行此命令,并且返回脚本的输出为空,这并不意味着复制过程已完成;这意味着没有为复制进行排队。在继续操作前,客户应该使用适当的 judgement,因为分配的时间复制取决于检测到的 Blob 数量。
另外,您可以使用 Microsoft Azure 等第三方云工具来检查同步状态。
在继续操作前,必须完成此步骤。
-
在站点
usstorage
的 Red Hat Quayconfig.yaml
文件中,删除eustorage
站点的DISTRIBUTED_STORAGE_CONFIG
条目。 输入以下命令识别您的
Quay
应用程序 pod:oc get pod -n <quay_namespace>
$ oc get pod -n <quay_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
quay390usstorage-quay-app-5779ddc886-2drh2 quay390eustorage-quay-app-66969cd859-n2ssm
quay390usstorage-quay-app-5779ddc886-2drh2 quay390eustorage-quay-app-66969cd859-n2ssm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令在
usstorage
pod 中打开交互式 shell 会话:oc rsh quay390usstorage-quay-app-5779ddc886-2drh2
$ oc rsh quay390usstorage-quay-app-5779ddc886-2drh2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令永久删除
eustorage
站点:重要无法撤销以下操作。请谨慎使用。
python -m util.removelocation eustorage
sh-4.4$ python -m util.removelocation eustorage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow