3.15. 从 2.9.5 升级到 3.0.5


对于 2.9.5 升级到 3.0.5,您可以使用 Red Hat Quay down (同步升级)进行整个升级,或只使 Red Hat Quay 变为几分钟,并可以把大量升级继续进行 Red Hat Quay 运行(回写升级)。

根据需要处理多少个标签,后台升级可能需要更长的时间来运行升级。然而,停机时间会减少。后台升级的不足之处是,在升级完成后您无法访问最新的功能。集群从 v2 兼容模式的 Quay v3 容器运行,直到升级完成。

3.15.1. 升级概述

如果您从 Red Hat Quay 2.y.z 集群开始,请按照以下步骤操作。升级到最新的 Red Hat Quay 3.x 版本前,您必须首先将该集群迁移到 3.0.5,如下所述。集群运行 3.0.5 后,您可以通过按顺序升级到每个次版本来升级到最新的 3.x 版本。例如:

  1. 3.0.5 3.1.3
  2. 3.1.3 3.2.2
  3. 3.2.2 3.3.4
  4. 3.3.4 3.4.z

在开始 Red Hat Quay 2.y.z 到 3.0 升级前,请注意以下几点:

  • 同步升级 :对于一个同步升级,对于小型安装,同步升级需要不到一小时的停机时间。考虑一个小安装,使其包含几千个容器镜像标签或更少。对于该大小安装,您可能会在短短几小时内得到的停机时间。整个 Red Hat Quay 服务在持续时间内停机,因此,如果您要在带有数百万标签的注册表中尝试同步升级,您可能在数天内停机。
  • 背景升级 :对于后台升级(也称为兼容性模式升级),在短暂关闭 Red Hat Quay 集群升级后,会在后台运行。对于大型 Red Hat Quay registry,这可能需要几周时间才能完成,但集群在升级期间继续以 v2 模式操作。作为一个参考点,一个 Red Hat Quay v3 升级需要 4 天时间来处理跨六个机器的约 3,000 万个标签。
  • 完成时 的完整功能 :在访问与 Docker 版本 2 相关的功能前,schema 2 更改(如支持不同架构的容器),整个迁移必须完成。当您切换时,其它 v3 功能可以立即使用。
  • 升级完成 :升级完成后,您需要在 Red Hat Quay config.yaml 文件中设置 V3_UPGRADE_MODE: 用于新功能的新功能。所有新的 Red Hat Quay v3 安装自动具有该集合。

3.15.2. 前提条件

为了保证最佳结果,我们推荐以下先决条件:

  • 在开始升级前备份 Red Hat Quay 数据库(定期备份是一个常规最佳实践)。在关闭 Red Hat Quay 集群进行升级后,最好是正确的时间。
  • 备份您的存储(同时也是常规最佳实践)。
  • 在开始 v3 升级前,将您当前的 Red Hat Quay 2.y.z 设置升级到最新的 2.9.z 版本(目前为 2.9.5)。要做到这一点:

    • 在 Red Hat Quay 集群仍在运行时,提取一个节点,并将该系统上的 Quay 容器改为运行最新的 2.9.z 版本的 Quay 容器。
    • 等待所有数据库迁移运行,使数据库进入最新的 2.9.z 版本。这只需花费几分钟时间,大约需要半小时。
    • 完成后,将所有现有节点上的 Quay 容器替换为同一最新的 2.9.z 版本。使用新版本上的整个 Red Hat Quay 集群,您可以继续升级到 v3 升级。

3.15.3. 选择升级类型

选择同步升级(完成停机时间中的升级)和后台升级(在 Red Hat Quay 仍在运行时完成升级)。这两个主要发行本升级要求 Red Hat Quay 集群在短时间内停机。

无论您选择哪个升级类型,在 Red Hat Quay 集群停机期间,如果正在使用 builder 和 Clair 镜像,您还需要升级到这些新镜像:

  • Builder: quay.io/redhat/quay-builder:v3.0.5
  • Clair: quay.io/redhat/clair-jwt:v3.0.5

这两个镜像都可从 registry.redhat.io/quay 仓库中找到。

3.15.4. 运行同步升级

要运行同步升级(如果您的整个集群已停机)用于整个升级,请执行以下操作:

  1. 关闭整个 Red Hat Quay 集群,包括任何 quay-builder 和 Clair 容器。
  2. 在所有节点上的 config.yaml 文件添加以下设置:

    V3_UPGRADE_MODE:完成

  3. 在单个节点上拉取并启动 v3 容器,并等待很长时间才能进行升级(需要几分钟)。使用以下容器或更新:

    • Quay: quay.io/redhat/quay:v3.0.5

      请注意,Quay 容器上传了 Red Hat Quay 3 的端口 8080 和 8443,而不是 80 和 443,因为它们对于 Red Hat Quay 2 来说。因此,我们推荐将 8080 和 8443 分别重新映射到 80 和 443,如下例所示:

    # docker run --restart=always -p 80:8080 -p 443:8443 \
       --sysctl net.core.somaxconn=4096 \
       --privileged=true \
       -v /mnt/quay/config:/conf/stack:Z \
       -v /mnt/quay/storage:/datastorage:Z \
       -d quay.io/redhat/quay:v3.0.5
  4. 升级完成后,在所有其他节点上启动 Red Hat Quay 3 容器。
  5. 启动 quay-builder 和 Clair 的 3.0.z 版本,以替换您要返回到集群的容器的任何实例。
  6. 验证 Red Hat Quay 正常工作,包括推送和拉取与 Docker 版本 2, schema 2 兼容的容器。这可以包括 Windows 容器镜像和不同计算机架构的镜像(arm、ppc 等)。

3.15.5. 运行后台升级

要运行后台升级,您只需要在两个发生时间上关闭集群。在第一次停机时间后启动集群时,Quay v3 容器在 v2 兼容模式下运行,因为它回填数据库。该背景进程可能需要几小时甚至几天来完成。如果大型安装停机时间超过几个小时,则建议进行后台升级。

对于这种类型的升级,您可以将 Red Hat Quay 置于兼容性模式,其中正在运行 Quay 3 容器,但在升级完成时在旧数据模型中运行。以下是您做的:

  1. 将 Red Hat Quay 3 容器拉取到所有节点。使用以下容器或更新:

    quay.io/redhat/quay:v3.0.5

  2. 关闭整个 Red Hat Quay 集群,包括任何 quay-builder 和 Clair 容器。
  3. 编辑每个节点上的 config.yaml 文件,并将升级模式设置为后台,如下所示:

    V3_UPGRADE_MODE:后台

  4. 启动单一节点上的 Red Hat Quay 3 容器并等待迁移完成(需要几分钟时间)。下面是以下命令的示例:

    请注意,Quay 容器上传了 Red Hat Quay 3 的端口 8080 和 8443,而不是 80 和 443,因为它们对于 Red Hat Quay 2 来说。因此,我们推荐将 8080 和 8443 分别重新映射到 80 和 443,如下例所示:

    # docker run --restart=always -p 80:8080 -p 443:8443 \
       --sysctl net.core.somaxconn=4096 \
       --privileged=true \
       -v /mnt/quay/config:/conf/stack:Z \
       -v /mnt/quay/storage:/datastorage:Z \
       -d quay.io/redhat/quay:v3.0.5
  5. 在所有其他节点上启动 Red Hat Quay 3 容器。
  6. 监控 /upgradeprogress API 端点,直到报告足以移动到下一步(状态达到 99%)。例如,查看 https://myquay.example.com/upgradeprogress 或者使用其它工具查询 API。
  7. 后台进程已足够快,您必须计划其他维护窗口。
  8. 在计划的维护期间,关闭整个 Red Hat Quay 集群。
  9. 编辑每个节点上的 config.yaml 文件,并将升级模式设置为 完成,如下所示:

    V3_UPGRADE_MODE: complete
  10. 在一个节点上重启 Red Hat Quay,使其进行最终检查。
  11. 最终检查完成后,将 Red Hat Quay v3 备份到所有其他节点上。
  12. 启动 quay-builder 和 Clair 的 3.0.z 版本,以替换您要返回到集群的容器的任何实例。
  13. 验证 Quay 正常工作,包括推送和拉取与 Docker 版本 2, schema 2 兼容的容器。这可以包括 Windows 容器镜像和不同计算机架构的镜像(arm、ppc 等)。

3.15.6. 目标镜像

  • quay: quay.io/redhat/quay:v3.0.5
  • Clair: quay.io/redhat/clair-jwt:v3.0.5
  • Redis: registry.access.redhat.com/rhscl/redis-32-rhel7
  • postgresql: rhscl/postgresql-96-rhel7
  • builder : quay.io/redhat/quay-builder:v3.0.5
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部