2.4. 升级 QuayEcosystem


从以前的 Operator 版本支持升级,这些 Operator 使用 QuayEcosystem API 进行一组有限的配置。为确保迁移不会意外发生,需要将一个特殊标签应用到 QuayEcosystem 以便它被迁移。将创建一个新的 QuayRegistry 以供 Operator 管理,但旧的 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 后,访问 Red Hat 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 管理 PostgreSQL 数据库,升级过程会将您的数据迁移到由升级 Operator 管理的新 PostgreSQL 数据库。您的旧数据库不会被更改或删除,但 Red Hat Quay 在迁移完成后不再使用它。如果数据迁移过程中出现问题,升级过程将退出,建议您继续将数据库作为非受管组件。

2.4.2. 支持的升级的 QuayEcosystem 配置

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