$ oc expose svc <app1-svc> --hostname <app1.apps.source.example.com> \
-n <app1-namespace>
迁移后查看重定向应用程序网络流量的策略。
目标集群的DNS域名与源集群的域名不同。默认情况下,应用程序在迁移后获得目标集群的FQDN。
要保留迁移应用程序的源DNS域名,请选择下面描述的两个选项之一。
您可以允许发送到源集群DNS域名的客户端请求到达目标集群的DNS域名,而无需将目标集群暴露给客户端。
在客户端和目标集群之间放置一个外部网络组件,例如应用程序负载均衡器或反向代理。
在DNS服务器中更新源集群上的应用程序FQDN,以返回外部网络组件的IP地址。
配置网络组件,将接收到的源域应用程序请求发送到目标集群域的负载均衡器。
为*.apps.source.example.com
域名创建通配符DNS记录,指向源集群负载均衡器的IP地址。
为每个应用程序创建一个DNS记录,指向目标集群前面外部网络组件的IP地址。特定DNS记录优先级高于通配符记录,因此在解析应用程序FQDN时不会发生冲突。
|
您可以设置目标集群以接受源集群DNS域名中已迁移应用程序的请求。
对于非安全的HTTP访问和安全的HTTPS访问,请执行以下步骤
在目标集群的项目中创建一个路由,该路由配置为接受指向源集群中应用程序FQDN的请求。
$ oc expose svc <app1-svc> --hostname <app1.apps.source.example.com> \
-n <app1-namespace>
有了这个新的路由,服务器将接受该FQDN的任何请求并将其发送到相应的应用程序Pod。此外,迁移应用程序后,将在目标集群域中创建另一个路由。请求使用这两个主机名中的任何一个访问已迁移的应用程序。
使用您的DNS提供商创建一个DNS记录,将源集群中应用程序的FQDN指向目标集群默认负载均衡器的IP地址。这将把流量从源集群重定向到目标集群。
应用程序的FQDN解析到目标集群的负载均衡器。默认的Ingress Controller路由器接受对该FQDN的请求,因为该主机名的路由已公开。
对于安全的HTTPS访问,请执行以下附加步骤
将安装过程中创建的默认Ingress Controller的x509证书替换为自定义证书。
将此证书配置为在subjectAltName
字段中包含源集群和目标集群的通配符DNS域名。
新证书可用于保护使用任一DNS域名进行的连接。
有关更多信息,请参阅替换默认入口证书。
成功迁移后,您必须将无状态应用程序的网络流量从源集群重定向到目标集群。
重定向网络流量的策略基于以下假设
应用程序Pod同时运行在源集群和目标集群上。
每个应用程序都有一个包含源集群主机名的路由。
包含源集群主机名的路由包含CA证书。
对于HTTPS,目标路由器CA证书包含源集群通配符DNS记录的主题备用名称。
考虑以下策略,并选择满足您目标的策略。
同时重定向所有应用程序的所有网络流量
更改源集群的通配符DNS记录,使其指向目标集群路由器的虚拟IP地址(VIP)。
此策略适用于简单的应用程序或小型迁移。
重定向单个应用程序的网络流量
为每个应用程序创建一个DNS记录,其中源集群主机名指向目标集群路由器的VIP。此DNS记录优先于源集群通配符DNS记录。
逐步重定向单个应用程序的网络流量
为每个应用程序创建一个代理,该代理可以将流量定向到源集群路由器的VIP和目标集群路由器的VIP。
为每个应用程序创建一个DNS记录,其中源集群主机名指向代理。
配置应用程序的代理条目,以将一定比例的流量路由到目标集群路由器的VIP,其余流量路由到源集群路由器的VIP。
逐步增加路由到目标集群路由器VIP的流量百分比,直到所有网络流量都被重定向。
基于用户的单个应用程序流量重定向
使用此策略,您可以过滤用户请求的TCP/IP头,以重定向预定义用户组的网络流量。这允许您在重定向整个网络流量之前,在特定用户群上测试重定向过程。
为每个应用程序创建一个代理,该代理可以将流量定向到源集群路由器的VIP和目标集群路由器的VIP。
为每个应用程序创建一个DNS记录,其中源集群主机名指向代理。
配置应用程序的代理条目,以将匹配给定标头模式(例如test customers
)的流量路由到目标集群路由器的VIP,并将其余流量路由到源集群路由器的VIP。
分阶段将流量重定向到目标集群路由器的VIP,直到所有流量都位于目标集群路由器的VIP上。