×

DNS 注意事项

目标集群的 DNS 域与源集群的域不同。默认情况下,应用程序在迁移后获得目标集群的 FQDN。

要保留迁移应用程序的源 DNS 域,请选择下面描述的两个选项之一。

将目标集群的 DNS 域与客户端隔离

您可以允许发送到源集群 DNS 域的客户端请求到达目标集群的 DNS 域,而不会将目标集群暴露给客户端。

步骤
  1. 在客户端和目标集群之间放置一个外部网络组件,例如应用程序负载均衡器或反向代理。

  2. 在 DNS 服务器中更新源集群上的应用程序 FQDN 以返回外部网络组件的 IP 地址。

  3. 配置网络组件以将为源域中的应用程序接收到的请求发送到目标集群域中的负载均衡器。

  4. 为指向源集群负载均衡器 IP 地址的 `*.apps.source.example.com` 域创建一个通配符 DNS 记录。

  5. 为每个应用程序创建一个 DNS 记录,该记录指向目标集群前面的外部网络组件的 IP 地址。特定 DNS 记录的优先级高于通配符记录,因此当解析应用程序 FQDN 时不会发生冲突。

  • 外部网络组件必须终止所有安全的 TLS 连接。如果连接传递到目标集群负载均衡器,则目标应用程序的 FQDN 会暴露给客户端,并出现证书错误。

  • 应用程序不得向客户端返回引用目标集群域的链接。否则,应用程序的部分内容可能无法加载或正常工作。

设置目标集群以接受源 DNS 域名

您可以设置目标集群以接受针对源集群 DNS 域名中已迁移应用程序的请求。

步骤

对于非安全的 HTTP 访问和安全的 HTTPS 访问,请执行以下步骤:

  1. 在目标集群的项目中创建一个路由,该路由配置为接受发送到源集群中应用程序 FQDN 的请求。

    $ oc expose svc <app1-svc> --hostname <app1.apps.source.example.com> \
     -n <app1-namespace>

    有了这个新的路由,服务器将接受对该 FQDN 的任何请求,并将其发送到相应的应用程序 Pod。此外,迁移应用程序时,会在目标集群域中创建另一个路由。请求将使用这两个主机名中的任何一个到达已迁移的应用程序。

  2. 使用您的 DNS 提供商创建一个 DNS 记录,将源集群中应用程序的 FQDN 指向目标集群的默认负载均衡器的 IP 地址。这将把流量从源集群重定向到目标集群。

    应用程序的 FQDN 解析到目标集群的负载均衡器。默认 Ingress 控制器路由器接受对该 FQDN 的请求,因为该主机名的路由已公开。

对于安全的 HTTPS 访问,请执行以下附加步骤:

  1. 将安装过程中创建的默认 Ingress 控制器的 x509 证书替换为自定义证书。

  2. 将此证书配置为在subjectAltName字段中包含源集群和目标集群的通配符 DNS 域名。

    新证书对于使用任一 DNS 域名进行的安全连接有效。

其他资源

网络流量重定向策略

成功迁移后,必须将无状态应用程序的网络流量从源集群重定向到目标集群。

重定向网络流量的策略基于以下假设:

  • 应用程序 Pod 同时运行在源集群和目标集群上。

  • 每个应用程序都有一个包含源集群主机名的路由。

  • 包含源集群主机名的路由包含 CA 证书。

  • 对于 HTTPS,目标路由器 CA 证书包含源集群通配符 DNS 记录的主题替代名称。

考虑以下策略,并选择符合您目标的策略。

  • 同时重定向所有应用程序的所有网络流量

    更改源集群的通配符 DNS 记录,使其指向目标集群路由器的虚拟 IP 地址 (VIP)。

    此策略适用于简单的应用程序或小型迁移。

  • 重定向单个应用程序的网络流量

    为每个应用程序创建一个 DNS 记录,其中源集群主机名指向目标集群路由器的 VIP。此 DNS 记录优先于源集群通配符 DNS 记录。

  • 逐步重定向单个应用程序的网络流量

    1. 为每个应用程序创建一个代理,该代理可以将流量定向到源集群路由器的 VIP 和目标集群路由器的 VIP。

    2. 为每个应用程序创建一个 DNS 记录,其中源集群主机名指向代理。

    3. 将应用程序的代理条目配置为将一定比例的流量路由到目标集群路由器的 VIP,其余流量路由到源集群路由器的 VIP。

    4. 逐步增加路由到目标集群路由器 VIP 的流量百分比,直到所有网络流量都被重定向。

  • 基于用户的单个应用程序流量重定向

    使用此策略,您可以过滤用户请求的 TCP/IP 标头以重定向预定义用户组的网络流量。这允许您在重定向整个网络流量之前,在特定用户群中测试重定向过程。

    1. 为每个应用程序创建一个代理,该代理可以将流量定向到源集群路由器的 VIP 和目标集群路由器的 VIP。

    2. 为每个应用程序创建一个 DNS 记录,其中源集群主机名指向代理。

    3. 将应用程序的代理条目配置为将匹配给定标头模式(例如test customers)的流量路由到目标集群路由器的 VIP,并将其余流量路由到源集群路由器的 VIP。

    4. 分阶段将流量重定向到目标集群路由器的 VIP,直到所有流量都在目标集群路由器的 VIP 上。