This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.10.2.3. 代理配置
对于 OpenShift Container Platform 4.1 及更早的版本,您必须在安装 Migration Toolkit for Containers Operator 后,在 MigrationController
自定义资源 (CR) 清单中配置代理,因为这些版本不支持集群范围的 proxy
对象。
对于 OpenShift Container Platform 4.2 到 4.7,MTC 会继承集群范围的代理设置。如果要覆盖集群范围的代理设置,可以更改代理参数。
10.2.3.1. 直接卷迁移 复制链接链接已复制到粘贴板!
MTC 1.4.2 中引入了直接卷迁移(DVM)。DVM 只支持一个代理。如果目标集群也位于代理后面,则源集群无法访问目标集群的路由。
如果要从代理后面的源集群执行 DVM,您必须配置一个 TCP 代理,该代理可在传输层进行透明处理,并在不使用自己的 SSL 证书的情况下转发 SSL 连接。Stunnel 代理是此类代理的示例。
10.2.3.1.1. DVM 的 TCP 代理设置 复制链接链接已复制到粘贴板!
您可以通过 TCP 代理在源和目标集群之间设置直接连接,并在 MigrationController
CR 中配置 stunnel_tcp_proxy
变量来使用代理:
直接卷迁移(DVM)只支持代理的基本身份验证。此外,DVM 仅适用于可透明地传输 TCP 连接的代理。在 man-in-the-middle 模式中的 HTTP/HTTPS 代理无法正常工作。现有的集群范围的代理可能不支持此行为。因此,DVM 的代理设置意与 MTC 中常见的代理配置不同。
10.2.3.1.2. 为什么使用 TCP 代理而不是 HTTP/HTTPS 代理? 复制链接链接已复制到粘贴板!
您可以通过 OpenShift 路由在源和目标集群之间运行 Rsync 来启用 DVM。流量通过 TCP 代理(Stunnel)加密。在源集群上运行的 Stunnel 会启动与目标 Stunnel 的 TLS 连接,并通过加密频道来传输数据。
OpenShift 中的集群范围 HTTP/HTTPS 代理通常在 man-in-the-middle 模式进行配置,其中它们将自己的 TLS 会话与外部服务器协商。但是,这不适用于 Stunnel。Stunnel 要求代理不处理它的 TLS 会话,基本上使代理成为一个透明的隧道,只需按原样转发 TCP 连接。因此,您必须使用 TCP 代理。
10.2.3.1.3. 已知问题 复制链接链接已复制到粘贴板!
迁移失败并显示 Upgrade request required
错误
迁移控制器使用 SPDY 协议在远程 pod 中执行命令。如果远程集群位于代理或不支持 SPDY 协议的防火墙后,迁移控制器将无法执行远程命令。迁移失败并显示出错信息 Upgrade request required
。临时解决方案: 使用支持 SPDY 协议的代理。
除了支持 SPDY 协议外,代理或防火墙还必须将 Upgrade
HTTP 标头传递给 API 服务器。客户端使用此标头打开与 API 服务器的 websocket 连接。如果代理或防火墙阻止 Upgrade
标头,则迁移会失败,并显示出错信息 Upgrade request required
。临时解决方案:确保代理转发 Upgrade
标头。