第 5 章 迁移网关
5.1. 迁移网关 复制链接链接已复制到粘贴板!
如果您在 Red Hat OpenShift Service Mesh 2.6.9 中使用网关并将其迁移到 OpenShift Service Mesh 3.0,您可以像常规工作负载一样将网关从 OpenShift Service Mesh 2 迁移到 OpenShift Service Mesh 3。
使用以下两种方法之一将网关从 Red Hat OpenShift Service Mesh 2 迁移到 OpenShift Service Mesh 3:
- 网关 Canary 迁移
- 网关迁移
5.1.1. 网关 Canary 迁移 复制链接链接已复制到粘贴板!
当您想逐步推出部署时,请使用网关 Canary 迁移方法。它使用多个网关版本,并对网关推出部署进行最大控制。
网关命名空间的标签在 mulitenant 和集群范围的网格之间有所不同。要了解在特定迁移情况下要使用哪些标签,以及 maistra.io/ignore-namespace: "true"
标签要求,请参阅"多租户迁移指南"或"Cluster-wide migration guide"部分。
步骤
运行以下命令标记网关命名空间,以确保新网格启用了网关注入,并添加
maistra.io/ignore-namespace: "true"
标签:oc label namespace <gateway_namespace> istio.io/rev=<istio_revision_name> maistra.io/ignore-namespace="true"
$ oc label namespace <gateway_namespace> istio.io/rev=<istio_revision_name> maistra.io/ignore-namespace="true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果需要,删除
istio-injection=enabled
标签。
-
如果需要,删除
使用以下示例部署 canary 网关:
Canary 网关的 YAML 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保新网关部署使用新修订版本运行,并正在处理请求:
-
检查 pod 是否正在运行并处于
Ready
状态。 运行以下命令,检查网关是否正在运行新修订版本:
istioctl ps -n istio-ingress
$ istioctl ps -n istio-ingress
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 通过网关测试示例路由。
-
检查 pod 是否正在运行并处于
在部署间逐渐移动流量:
运行以下命令,为新网关增加副本:
oc scale -n istio-ingress deployment/<new_gateway_deployment> --replicas <new_number_of_replicas>
$ oc scale -n istio-ingress deployment/<new_gateway_deployment> --replicas <new_number_of_replicas>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来减少旧网关的副本:
oc scale -n istio-ingress deployment/<old_gateway_deployment> --replicas <new_number_of_replicas>
$ oc scale -n istio-ingress deployment/<old_gateway_deployment> --replicas <new_number_of_replicas>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重复此过程,逐步调整副本数,直到新网关处理到网关服务的所有流量。
后续步骤
5.1.2. 网关迁移 复制链接链接已复制到粘贴板!
如果您需要对网关迁移的详细控制,您可以对迁移执行网关。这个方法适用于带有专用网关的命名空间,以及使用多个命名空间共享的集中式网关的环境。
网关命名空间的标签在 mulitenant 和集群范围的网格之间有所不同。要了解在特定迁移情况下要使用哪些标签,以及 maistra.io/ignore-namespace: "true"
标签要求,请参阅"多租户迁移指南"或"Cluster-wide migration guide"部分。
步骤
运行以下命令标记网关命名空间,以确保新网格启用了网关注入,并添加
maistra.io/ignore-namespace: "true"
标签:oc label namespace <gateway_namespace> istio.io/rev=<istio_revision_name> maistra.io/ignore-namespace="true"
$ oc label namespace <gateway_namespace> istio.io/rev=<istio_revision_name> maistra.io/ignore-namespace="true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果需要,删除
istio-injection=enabled
标签。
-
如果需要,删除
运行以下命令来重启网关部署:
oc -n ${app_namespace} rollout restart deployment ${gateway_name}
$ oc -n ${app_namespace} rollout restart deployment ${gateway_name}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,检查网关是否正在运行新修订版本:
istioctl ps -n istio-ingress
$ istioctl ps -n istio-ingress
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 测试特定于应用程序的路由。
后续步骤