5.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 BSystem C系统 A 将作为部署 Red Hat Quay Operator 的主要系统。

  1. 在 System B 和 System C 中,缩减 Red Hat Quay registry。这可以通过禁用自动扩展并覆盖 Red Hat Quay、mirror 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
    Copy to Clipboard Toggle word wrap
    1
    禁用 QuayClairMirroring worker 的自动扩展
    2
    对于访问数据库和 objectstorage 的组件,将副本数设置为 0。
    注意

    您必须保持在 System A 上运行 Red Hat Quay registry。不要更新 System A 上的 quayregistry.yaml 文件。

  2. 等待 registry-quay-appregistry-quay-mirrorregistry-clair-app pod 消失。输入以下命令检查其状态:

    oc get pods -n <quay-namespace>
    Copy to Clipboard Toggle word wrap

    输出示例

    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 Toggle word wrap

  3. 在 System A 中,启动 Red Hat Quay 升级到最新的 y-stream 版本。这是一个手动过程。有关升级安装的 Operator 的更多信息,请参阅 升级已安装的 Operator。有关 Red Hat Quay 升级路径的更多信息,请参阅升级 Red Hat Quay Operator
  4. 安装新的 Red Hat Quay registry 后,集群上的必要升级会自动完成。之后,新的 Red Hat Quay Pod 使用最新的 y-stream 版本启动。另外,新的 Quay pod 会被调度并启动。
  5. 进入 Red Hat Quay UI 确认更新是否正常工作:

    1. OpenShift 控制台中,导航到 Operators Installed Operators,然后点击 Registry Endpoint 链接。

      重要

      在 Red Hat Quay UI 可用前,不要执行以下步骤。在 System A 上,不要升级 System B 上的 Red Hat Quay registry 和 System C。

  6. 确认更新已在 System A 上正常工作,在 System B 和 System C 上启动 Red Hat Quay 升级。Operator 升级会导致升级 Red Hat Quay 安装,pod 被重启。

    注意

    因为数据库模式对于新的 y-stream 安装是正确的,所以 System B 和 System C 上的新 pod 应该快速启动。

  7. 更新后,通过删除组件的 覆盖 来恢复此流程中第 1 步中所做的更改。例如:

    apiVersion: quay.redhat.com/v1
    kind: QuayRegistry
    metadata:
      name: registry
      namespace: ns
    spec:
      components:- kind: horizontalpodautoscaler
          managed: true 
    1
    
        - kind: quay
          managed: true
        - kind: clair
          managed: true
        - kind: mirror
          managed: true
    Copy to Clipboard Toggle word wrap
    1
    如果在升级前将 horizontalpodautoscaler 资源设置为 True,或者您希望 Red Hat Quay 在资源短缺的情况下扩展,请将其设置为 True

通过使用以下步骤,Red Hat Quay 管理员可以删除地理复制设置中的站点。

先决条件

  • 已登陆到 OpenShift Container Platform。
  • 您已配置了 Red Hat Quay 异地复制,至少有两个站点,例如 usstorageeustorage
  • 每个站点都有自己的组织、存储库和镜像标签。

步骤

  1. 运行以下命令,同步所有定义的站点之间的 Blob:

    $ python -m util.backfillreplication
    Copy to Clipboard Toggle word wrap
    警告

    在从 Red Hat Quay config.yaml 文件中删除存储引擎 前,您必须确保在 所有定义的站点间同步所有 Blob。

    在运行此命令时,会创建复制作业,由复制工作程序提取。如果有需要复制的 Blob,该脚本会返回将复制的 Blob 的 UUID。如果您多次运行此命令,并且返回脚本的输出为空,并不意味着完成复制过程;这意味着没有更多 Blob 进行复制。客户应在继续前使用适当的 judgement,因为分配的时间复制取决于检测到的 Blob 数量。

    或者,您可以使用第三方云工具(如 Microsoft Azure)来检查同步状态。

    在继续之前,必须完成此步骤。

  2. 在 Red Hat Quay config.yaml 文件中,删除 eu storage 站点的 DISTRIBUTED_STORAGE_CONFIG 条目。
  3. 输入以下命令来标识 Quay 应用程序 pod:

    $ oc get pod -n <quay_namespace>
    Copy to Clipboard Toggle word wrap

    输出示例

    quay390usstorage-quay-app-5779ddc886-2drh2
    quay390eustorage-quay-app-66969cd859-n2ssm
    Copy to Clipboard Toggle word wrap

  4. 输入以下命令在 usstorage pod 中打开交互式 shell 会话:

    $ oc rsh quay390usstorage-quay-app-5779ddc886-2drh2
    Copy to Clipboard Toggle word wrap
  5. 输入以下命令永久删除 eustorage 站点:

    重要

    以下操作无法撤消。请谨慎使用。

    sh-4.4$ python -m util.removelocation eustorage
    Copy to Clipboard Toggle word wrap

    输出示例

    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
    Copy to Clipboard Toggle word wrap

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部