2.4. 升级 QuayEcosystem


从以前的 Operator 版本升级中支持使用 QuayEcosystem API 进行有限的配置。为确保迁移不会意外发生,需要将一个特殊标签应用于 QuayEcosystem,以便其迁移。将为 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.4.1. 恢复 QuayEcosystem 升级

如果在从 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.4.2. 支持的 QuayEcosystem 配置升级

如果迁移 QuayEcosystem 组件失败或不支持,Quay Operator 会在日志中报告错误,并在 status.conditions 中报告错误。所有非受管组件都应成功迁移,因为不需要使用 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

不需要任何特别要求。

对象存储

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

存储库镜像

不需要任何特别要求。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat