12.6. 升级 QuayEco 系统
				以前的 Operator 版本支持升级,这些 Operator 将 QuayEcosystem API 用于一组有限的配置。为确保迁移不会意外发生,需要将一个特殊的标签应用到 QuayEco 系统 供迁移。为 Operator 创建一个新的 QuayRegistry,但旧的 QuayEcosystem 将保留到手动删除,以确保您可以回滚并仍能访问 Quay,以出现问题。要将现有的 QuayEcosystem 迁移到新的 QuayRegistry 中,请按照以下步骤操作:
			
- 将 - "quay-operator/migrate": "true"添加到- QuayEcosystem的- metadata.labels。- oc edit quayecosystem <quayecosystemname> - $ oc edit quayecosystem <quayecosystemname>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - metadata: labels: quay-operator/migrate: "true"- metadata: labels: quay-operator/migrate: "true"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
						等待 QuayEcosystem使用相同的metadata.name创建QuayRegistry。QuayEcosystem将标记为标签"quay-operator/migration-complete": "true"。
- 
						设置了新的 QuayRegistry的status.registryEndpoint后,访问 Quay 并确认所有数据和设置已成功迁移。
- 
						当您确定一切正常工作时,您可以删除 QuayEcosystem和 Kubernetes 垃圾回收会清理所有旧资源。
12.6.1. 恢复 QuayEco 系统升级
					如果在从 QuayEcosystem 自动升级到 QuayRegistry 时出现问题,请按照以下步骤恢复至使用 QuayEcosystem :
				
- 使用 UI 或 - kubectl来删除- QuayRegistry:- kubectl delete -n <namespace> quayregistry <quayecosystem-name> - $ kubectl delete -n <namespace> quayregistry <quayecosystem-name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
							如果使用 Route提供外部访问,将Route更改为指回原始的Service(使用 UI 或kubectl)。
						如果您的 QuayEcosystem 管理 Postgres 数据库,升级过程会将数据迁移到由升级 Operator 管理的新 Postgres 数据库。旧数据库不会更改或删除,但 Quay 在迁移完成后将不再使用它。如果数据迁移过程中出现问题,升级过程将退出,建议您将数据库作为非受管组件继续进行。
					
12.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。编辑现有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
不需要任何特殊操作。
Object Storage
					QuayEcosystem 没有受管对象存储组件,因此对象存储始终标记为非受管状态。不支持本地存储。
				
仓库镜像
不需要任何特殊操作。
其他资源
- 如需有关 Red Hat Quay Operator 的更多信息,请参阅 上游 quay-operator 项目。