14.4. 升级 QuayEcosystem
升级从以前的 Operator 版本支持,该版本将 QuayEcosystem
API 用于一组有限的配置。为确保迁移不会意外发生,需要将一个特殊标签应用到 QuayEcosystem
,以便它被迁移。将为 Operator 创建新的 QuayRegistry
以管理,但旧的 QuayEcosystem
将保留下来,直到手动删除为止,以确保在出现问题时可以回滚并仍然访问 Quay。要将现有的 QuayEcosystem
迁移到新的 QuayRegistry
,请使用以下步骤。
流程
将
"quay-operator/migrate": "true"
添加到QuayEcosystem
的metadata.labels
中。$ oc edit quayecosystem <quayecosystemname>
metadata: labels: quay-operator/migrate: "true"
-
等待
QuayRegistry
使用与QuayEcosystem
相同的metadata.name
创建。QuayEcosystem
将标记为标签"quay-operator/migration-complete": "true
"。 -
设置了新的
QuayRegistry
的status.registryEndpoint
后,访问 Red Hat Quay 并确认所有数据和设置都已成功迁移。 -
如果一切都正常工作,您可以删除
QuayEcosystem
和 Kubernetes 垃圾回收会清理所有旧资源。
14.4.1. 恢复 QuayEcosystem 升级
如果在从 QuayEcosystem
升级到 QuayRegistry
过程中出现错误,请按照以下步骤恢复回使用 QuayEcosystem
:
流程
使用 UI 或
kubectl
删除QuayRegistry
:$ kubectl delete -n <namespace> quayregistry <quayecosystem-name>
-
如果使用
Route
提供外部访问,将Route
更改为指回原始的Service
(使用 UI 或kubectl
)。
如果您的 QuayEcosystem
管理 PostgreSQL 数据库,升级过程会将您的数据迁移到升级的 Operator 管理的新 PostgreSQL 数据库。旧数据库不会被更改或删除,但 Red Hat Quay 在迁移完成后将不再使用它。如果在数据迁移过程中出现问题,升级过程将退出,建议您继续将数据库作为非受管组件。
14.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
。编辑现有Service
的spec.selector
,使其与新Service
的spec.selector
匹配,以便进入旧负载均衡器端点的流量现在会被定向到新的 pod。旧的Service
将会被您管理; Quay Operator 将不再管理它。 -
带有自定义主机名的
LoadBalancer
/NodePort
/Ingress
:将创建一个类型为LoadBalancer
的新的Service
,带有metadata.name
格式<QuayEcosystem-name>-quay-app
。将您的 DNS 设置更改为指向由新Service
提供的status.loadBalancer
端点。
Clair
不需要特别需要。
对象存储
QuayEcosystem
没有受管对象存储组件,因此对象存储始终标记为 unmanaged。不支持本地存储。
仓库镜像
不需要特别需要。
其他资源
- 如需有关 Red Hat Quay Operator 的更多信息,请参阅上游 quay-operator 项目。