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 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 可用前,不要执行以下步骤。在系统 A 上提供 UI 前,不要升级 System B 和 System C 上的 Red Hat Quay registry。

  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 geo-replication 配置至少两个站点,例如 usstorageeustorage
  • 每个站点都有自己的组织、存储库和镜像标签。

流程

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

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

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

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

    另外,您可以使用 Microsoft Azure 等第三方云工具来检查同步状态。

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

  2. 在站点 usstorage 的 Red Hat Quay config.yaml 文件中,删除 eustorage 站点的 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

© 2025 Red Hat