7.3. 升级 Red Hat Quay Operator 的 geo-replication 部署
使用以下步骤升级地理复制的 Red Hat Quay Operator。
- 当将 geo-replicated Red Hat Quay Operator 部署升级到下一个 y-stream 版本(例如,Red Hat Quay 3.7 → Red Hat Quay 3.8),您必须在升级前停止操作。
- 故障时间从一个 y-stream 版本升级到下一个版本会间歇性。
- 在升级前,强烈建议您备份 Red Hat Quay Operator 部署。
此流程假设您在三个(或更多)系统上运行 Red Hat Quay Operator。对于此过程,我们将假设三个名为 System A、 System B 和 System C 的系统。系统 A 将充当部署 Red Hat Quay Operator 的主要系统。
在 System B 和 System C 上,缩减您的 Red Hat Quay Operator 部署。这可以通过禁用自动扩展并覆盖 Red Hat Quay、镜像 worker 和 Clair 的副本计数(如果被管理)来实现。使用以下
quayregistry.yaml文件作为参考:apiVersion: quay.redhat.com/v1 kind: QuayRegistry metadata: name: registry namespace: ns spec: components: … - kind: horizontalpodautoscaler managed: false 1 - kind: quay managed: true overrides: 2 replicas: 0 - kind: clair managed: true overrides: replicas: 0 - kind: mirror managed: true overrides: replicas: 0 …注意您必须保留在 System A 上运行的 Red Hat Quay Operator。不要更新 System A 上的
quayregistry.yaml文件。等待
registry-quay-app、registry-quay-mirror和registry-clair-apppod 消失。输入以下命令检查其状态:oc get pods -n <quay-namespace>
输出示例
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-config-editor-6dfdcfc44f-hlvwm 1/1 Running 0 73s quayregistry-quay-redis-84f888776f-hhgms 1/1 Running 0 12m
- 在 System A 上,启动 Red Hat Quay Operator 升级到最新的 y-stream 版本。这是手动过程。有关升级安装的 Operator 的更多信息,请参阅 升级已安装的 Operator。如需有关 Red Hat Quay 升级路径的更多信息,请参阅升级 Red Hat Quay Operator。
-
安装新的 Red Hat Quay Operator 后,集群上所需的升级会自动完成。之后,新的 Red Hat Quay pod 会使用最新的 y-stream 版本启动。另外,还会调度并启动新的
Quaypod。 通过进入到 Red Hat Quay UI 确认更新是否正常工作:
在 OpenShift 控制台中,导航到 Operators → Installed Operators,然后点击 Registry Endpoint 链接。
重要在 Red Hat Quay UI 可用前,不要执行以下步骤。在系统 A 上提供 UI 前,不要升级 System B 和 System C 上的 Red Hat Quay Operator。
确认更新在 System A 上正常工作后,在 System B 和 System C 上启动 Red Hat Quay Operator。Operator 升级会导致升级的 Red Hat Quay 安装,并重启 pod。
注意因为数据库架构对于新的 y-stream 安装正确,System B 和 System C 上的新 pod 应该快速启动。
7.3.1. 从 Red Hat Quay Operator 部署中删除地理复制站点
通过按照以下流程,Red Hat Quay 管理员可以删除地理复制设置中的站点。
先决条件
- 已登陆到 OpenShift Container Platform。
-
您已为 Red Hat Quay geo-replication 配置至少两个站点,例如
usstorage和eustorage。 - 每个站点都有自己的组织、存储库和镜像标签。
步骤
运行以下命令,在所有定义的站点间同步 Blob:
$ python -m util.backfillreplication
警告在从 Red Hat Quay
config.yaml文件中删除存储引擎 前,您必须确保 所有 Blob 在所有定义的站点间同步。在继续操作前,请完成此步骤。-
在站点
usstorage的 Red Hat Quayconfig.yaml文件中,删除eustorage站点的DISTRIBUTED_STORAGE_CONFIG条目。 输入以下命令识别您的
Quay应用程序 pod:$ oc get pod -n <quay_namespace>
输出示例
quay390usstorage-quay-app-5779ddc886-2drh2 quay390eustorage-quay-app-66969cd859-n2ssm
输入以下命令在
usstoragepod 中打开交互式 shell 会话:$ oc rsh quay390usstorage-quay-app-5779ddc886-2drh2
输入以下命令永久删除
eustorage站点:重要无法撤销以下操作。请谨慎使用。
sh-4.4$ python -m util.removelocation eustorage
输出示例
WARNING: This is a destructive operation. Are you sure you want to remove eustorage from your storage locations? [y/n] y Deleted placement 30 Deleted placement 31 Deleted placement 32 Deleted placement 33 Deleted location eustorage