2.6. 升级 QuayEco 系统


以前的 Operator 版本支持升级,这些 Operator 将 QuayEcosystem API 用于一组有限的配置。为确保迁移不会意外发生,需要将一个特殊的标签应用到 QuayEco 系统 供迁移。为 Operator 创建一个新的 QuayRegistry,但旧的 QuayEcosystem 将保留到手动删除,以确保您可以回滚并仍能访问 Quay,以出现问题。要将现有的 QuayEcosystem 迁移到新的 QuayRegistry 中,请按照以下步骤操作:

  1. "quay-operator/migrate": "true" 添加到 QuayEcosystemmetadata.labels

    $ oc edit quayecosystem <quayecosystemname>
    Copy to Clipboard Toggle word wrap
    metadata:
      labels:
        quay-operator/migrate: "true"
    Copy to Clipboard Toggle word wrap
  2. 等待 QuayEcosystem 使用相同的 metadata.name 创建 QuayRegistryQuayEcosystem 将标记为标签 "quay-operator/migration-complete": "true "。
  3. 设置了新的 QuayRegistrystatus.registryEndpoint 后,访问 Quay 并确认所有数据和设置已成功迁移。
  4. 当您确定一切正常工作时,您可以删除 QuayEcosystem 和 Kubernetes 垃圾回收会清理所有旧资源。

2.6.1. 恢复 QuayEco 系统升级

如果在从 QuayEcosystem 自动升级到 QuayRegistry 时出现问题,请按照以下步骤恢复至使用 QuayEcosystem

  1. 使用 UI 或 kubectl 来删除 QuayRegistry

    $ kubectl delete -n <namespace> quayregistry <quayecosystem-name>
    Copy to Clipboard Toggle word wrap
  2. 如果使用 Route 提供外部访问,将 Route 更改为指回原始的 Service(使用 UI 或 kubectl)。
注意

如果您的 QuayEcosystem 管理 Postgres 数据库,升级过程会将数据迁移到由升级 Operator 管理的新 Postgres 数据库。旧数据库不会更改或删除,但 Quay 在迁移完成后将不再使用它。如果数据迁移过程中出现问题,升级过程将退出,建议您将数据库作为非受管组件继续进行。

2.6.2. 升级支持的 QuayEcosystem 配置

如果迁移 QuayEcosystem 组件失败或不受支持,Quay Operator 会在日志中报告错误,并且 status.conditions。所有非受管组件都应成功迁移,因为 Quay 的 config.yaml 中还没有提供任何 Kubernetes 资源,且所有必要的值都已在 Quay 的 config.yaml 中提供。

数据库

不支持临时数据库(必须设置volumeSize 字段)。

Redis

不需要任何特殊操作。

外部访问

自动迁移只支持 passthrough Route 访问。其他方法需要手动迁移。

  • 没有自定义主机名的 LoadBalancer :当 QuayEcosystem 使用标签 "quay-operator/migration-complete": "true" 标记后,在删除 QuayEcosystem 需要从现存的 Service 中删除 metadata.ownerReferences 字段,这可以防止 Kubernetes 对 Service 进行垃圾回收并并删除负载均衡器。一个新的 Service 将被创建,带有 metadata.name 格式 <QuayEcosystem-name>-quay-app。编辑现有 Servicespec.selector,使其与新 Servicespec.selector 匹配,以便进入旧负载均衡器端点的流量现在会被定向到新的 pod。旧的 Service 将会被您管理; Quay Operator 将不再管理它。
  • 带有自定义主机名的 LoadBalancer/NodePort/Ingress :将创建一个类型为 LoadBalancer 的新的 Service,带有 metadata.name 格式 <QuayEcosystem-name>-quay-app。将您的 DNS 设置更改为指向由新 Service 提供的 status.loadBalancer 端点。

Clair

不需要任何特殊操作。

Object Storage

QuayEcosystem 没有受管对象存储组件,因此对象存储始终标记为非受管状态。不支持本地存储。

仓库镜像

不需要任何特殊操作。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat