×

容器迁移工具包 (MTC) 的版本说明描述了新功能和增强功能、已弃用的功能以及已知问题。

MTC 使您可以以命名空间为粒度在 OpenShift Container Platform 集群之间迁移应用程序工作负载。

MTC 提供基于 Kubernetes 自定义资源的 Web 控制台和 API,以帮助您控制迁移并最大限度地减少应用程序停机时间。

有关 MTC 支持策略的信息,请参阅 OpenShift 应用程序和集群迁移解决方案,它是 Red Hat OpenShift Container Platform 生命周期策略 的一部分。

容器迁移工具包 1.8.5 版本说明

技术变更

容器迁移工具包 (MTC) 1.8.5 包含以下技术变更

联邦信息处理标准 (FIPS)

FIPS 是美国联邦政府根据《联邦信息安全管理法案》(FISMA) 制定的一套计算机安全标准。

从 1.8.5 版本开始,MTC 旨在符合 FIPS 标准。

已解决的问题

更多信息,请参见 Jira 中的MTC 1.8.5 已解决的问题列表

已知问题

MTC 1.8.5 存在以下已知问题

在 OpenShift Container Platform 4.12 中无法迁移服务帐户关联的 SCC。

OpenShift Container Platform 4.12 中服务帐户关联的安全上下文约束 (SCC) 无法迁移。此问题计划在未来的 MTC 版本中解决。(MIG-1454)

MTC 不会在存储类转换中修补statefulset.spec.volumeClaimTemplates[].spec.storageClassName

在为 StatefulSet 应用程序运行存储类转换时,MTC 会更新.spec.volumeClaimTemplates[].metadata.name中的持久卷声明 (PVC) 引用以使用迁移后的 PVC 名称。MTC 不会更新spec.volumeClaimTemplates[].spec.storageClassName,这会导致应用程序向上扩展。此外,新副本使用旧存储类下创建的 PVC,而不是迁移后的存储类。(MIG-1660)

执行存储类转换会触发命名空间中所有应用程序的缩容

在多个应用程序上运行StorageClass转换时,MTC 会在切换阶段缩容命名空间中的所有应用程序,包括那些未参与迁移的应用程序。(MIG-1661)

更改后无法编辑MigPlan使其目标命名空间与源集群相同

在 MTC UI 中创建MigPlan时,将目标命名空间更改为与源命名空间不同的命名空间后,无法再次编辑MigPlan以使目标命名空间与源命名空间相同。(MIG-1600)

迁移的构建器 pod 无法推送到镜像注册表

将包含BuildConfig的应用程序从源集群迁移到目标集群时,构建器 pod 会遇到错误,无法将镜像推送到镜像注册表。(BZ#2234781)

冲突条件在显示后短暂清除

创建导致冲突错误的新状态迁移计划时,错误会在显示后不久清除。(BZ#2144299)

设置pv_resizing_threshold后未显示PvCapacityAdjustmentRequired警告

调整pv_resizing_threshold后,迁移计划中不会显示PvCapacityAdjustmentRequired警告。(BZ#2270160)

有关所有已知问题的完整列表,请参见 Jira 中的MTC 1.8.5 已知问题列表

容器迁移工具包 1.8.4 发行说明

技术变更

容器迁移工具包 (MTC) 1.8.4 包含以下技术变更

  • MTC 1.8.4 扩展了其依赖项解析,以支持使用 OpenShift 数据保护 API (OADP) 1.4。

支持使用 DirectVolumeMigration 的 KubeVirt 虚拟机

MTC 1.8.4 添加了对使用直接卷迁移 (DVM) 的 KubeVirt 虚拟机 (VM) 的支持。

已解决的问题

MTC 1.8.4 已解决以下主要问题

安装 OpenShift Virtualization 后 Ansible Operator 出现故障

python3-openshift包中存在一个 bug,安装 OpenShift Virtualization 会暴露出该 bug,并返回一个异常ValueError: too many values to unpack。早期版本的 MTC 受此影响,而 MTC 1.8.4 已实现了一种解决方法。更新到 MTC 1.8.4 后,您将不再受此问题的影响。(OCPBUGS-38116)

创建迁移计划时 UI 卡在命名空间处

尝试从 MTC UI 创建迁移计划时,迁移计划向导会卡在“命名空间”步骤。此问题已在 MTC 1.8.4 中解决。(MIG-1597)

迁移失败,出现版本 kubevirt/v1 中没有与虚拟机类型匹配项的错误

在应用程序迁移期间,所有必要步骤(包括备份、DVM 和恢复)都已成功完成。但是,迁移被标记为不成功,并显示错误消息no matches for kind Virtual machine in version kubevirt/v1(MIG-1594)

将迁移到与源命名空间不同的命名空间时,直接卷迁移失败

从源集群迁移到目标集群时,如果目标命名空间与源命名空间不同,则 DVM 会失败。(MIG-1592)

直接镜像迁移不遵守 migplan 上的标签选择器

使用直接镜像迁移 (DIM) 时,如果在迁移计划上设置了标签选择器,DIM 不会遵守它,而是尝试迁移命名空间中的所有 imagestream。(MIG-1533)

已知问题

MTC 1.8.4 存在以下已知问题

在 OpenShift Container Platform 4.12 中无法迁移服务帐户关联的 SCC。

OpenShift Container Platform 4.12 中服务帐户关联的安全上下文约束 (SCC) 无法迁移。此问题计划在未来的 MTC 版本中解决。(MIG-1454)

Rsync pod 无法启动,导致 DVM 阶段失败

由于权限问题导致 Rsync pod 无法启动,因此 DVM 阶段失败。

迁移的构建器 pod 无法推送到镜像注册表

将包含BuildConfig的应用程序从源集群迁移到目标集群时,构建器 pod 会出现错误,无法将镜像推送到镜像注册表。

冲突条件在创建后短暂清除

创建导致冲突错误的新状态迁移计划时,该错误会在显示后不久清除。

设置 pv_resizing_threshold 后未显示 PvCapacityAdjustmentRequired 警告

调整pv_resizing_threshold后,迁移计划中不会显示PvCapacityAdjustmentRequired警告。

容器迁移工具包 1.8.3 发行说明

技术变更

容器迁移工具包 (MTC) 1.8.3 包含以下技术变更

现在支持 OADP 1.3

MTC 1.8.3 将 OpenShift 数据保护 API (OADP) 添加为 MTC 1.8.z 的依赖项。

已解决的问题

MTC 1.8.3 已解决以下主要问题

CVE-2024-24786:Golang protobuf 模块中的缺陷导致unmarshal函数进入无限循环

在之前的 MTC 版本中,发现 Golang 的protobuf模块中存在一个漏洞,其中unmarshal函数在处理某些无效输入时会进入无限循环。因此,攻击者提供精心构造的无效输入,导致该函数进入无限循环。

通过此更新,unmarshal函数可以按预期工作。

更多信息,请参见 CVE-2024-24786

CVE-2023-45857:Axios 跨站请求伪造漏洞

在之前的 MTC 版本中,Axios 1.5.1 中发现了一个漏洞,该漏洞无意中泄露了存储在 Cookie 中的机密XSRF-TOKEN,因为它在对主机的每次请求中都将其包含在 HTTP 头部X-XSRF-TOKEN中,允许攻击者查看敏感信息。

更多信息,请参见 CVE-2023-45857

当源工作负载未处于静止状态时,Restic 备份无法正常工作

在之前的 MTC 版本中,使用路由部署应用程序时,某些文件未迁移。当源工作负载的静止选项未选中时,Restic 备份无法按预期运行。

此问题已在 MTC 1.8.3 中解决。

更多信息,请参见 BZ#2242064

由于 Velero 中的 unsupported value 错误,Migration Controller 无法安装

由于 Velero 中的 unsupported value 错误,MigrationController 无法安装。将 OADP 1.3.0 更新到 OADP 1.3.1 可解决此问题。更多信息,请参见 BZ#2267018

此问题已在 MTC 1.8.3 中解决。

有关所有已解决问题的完整列表,请参见 Jira 中的 MTC 1.8.3 已解决的问题列表

已知问题

容器迁移工具包 (MTC) 1.8.3 存在以下已知问题

安装 OpenShift Virtualization 后 Ansible Operator 出现故障

python3-openshift 包中存在一个错误,安装 OpenShift Virtualization 会暴露出该错误,并返回一个异常ValueError: too many values to unpack。MTC 1.8.4 已实现一个解决方法。更新到 MTC 1.8.4 后,您将不再受此问题影响。(OCPBUGS-38116)

在 OpenShift Container Platform 4.12 中无法迁移服务帐户关联的 SCC。

无法迁移 OpenShift Container Platform 4.12 版本中服务帐户关联的安全上下文约束 (SCC)。此问题计划在未来的 MTC 版本中解决。(MIG-1454)

有关所有已知问题的完整列表,请参见 Jira 中的 MTC 1.8.3 已知问题列表

容器迁移工具包 1.8.2 发行说明

已解决的问题

此版本解决了以下主要问题

设置自定义 CA 复制存储库后,备份阶段失败

在之前的容器迁移工具包 (MTC) 版本中,编辑复制存储库、添加自定义 CA 证书、成功连接存储库并触发迁移后,在备份阶段发生故障。

CVE-2023-26136:4.1.3 之前的 tough-cookie 包容易受到原型污染攻击

在之前的 (MTC) 版本中,MTC 中使用的 4.1.3 之前的tough-cookie包版本容易受到原型污染攻击。此漏洞的发生是因为当rejectPublicSuffixes的值设置为false时,CookieJar 没有正确处理 Cookie。

更多详情,请参见 (CVE-2023-26136)

CVE-2022-25883 openshift-migration-ui-container:nodejs-semver:正则表达式拒绝服务

在之前的 (MTC) 版本中,MTC 中使用的 7.5.2 之前的semver包版本容易受到来自函数newRange的正则表达式拒绝服务 (ReDoS) 攻击,当提供不受信任的用户数据作为范围时。

更多详情,请参见 (CVE-2022-25883)

已知问题

MTC 1.8.2 存在以下已知问题

安装 OpenShift Virtualization 后 Ansible Operator 出现故障

python3-openshift 包中存在一个错误,安装 OpenShift Virtualization 会暴露出该错误,并返回一个异常ValueError: too many values to unpack。MTC 1.8.4 已实现一个解决方法。更新到 MTC 1.8.4 后,您将不再受此问题影响。(OCPBUGS-38116)

容器迁移工具包 1.8.1 发行说明

已解决的问题

容器迁移工具包 (MTC) 1.8.1 解决了以下主要问题

CVE-2023-39325:golang:net/http,x/net/http2:快速流重置可能导致过度工作

在 MTC 使用的 HTTP/2 协议中处理多路复用流时发现了一个缺陷。客户端可以反复请求新的多路复用流并立即发送RST_STREAM帧以取消它。这会为服务器创建额外的设置和拆卸流的工作负载,同时避免任何服务器端对每个连接上的最大活动流数的限制,从而导致由于服务器资源消耗而导致拒绝服务。(BZ#2245079)

建议更新到 MTC 1.8.1 或更高版本,以解决此问题。

更多详情,请参见 (CVE-2023-39325)(CVE-2023-44487)

已知问题

容器迁移工具包 (MTC) 1.8.1 存在以下已知问题

安装 OpenShift Virtualization 后 Ansible Operator 出现故障

python3-openshift 包中存在一个错误,安装 OpenShift Virtualization 会暴露出该错误。在任务期间返回一个异常ValueError: too many values to unpack。MTC 1.8.4 已实现一个解决方法。更新到 MTC 1.8.4 后,您将不再受此问题影响。(OCPBUGS-38116)

容器迁移工具包 1.8.0 发行说明

已解决的问题

容器迁移工具包 (MTC) 1.8.0 解决了以下问题

间接迁移卡在备份阶段

在之前的版本中,由于InvalidImageName错误,间接迁移卡在了备份阶段。(BZ#2233097)

PodVolumeRestore 保持“进行中”状态,导致迁移卡在“恢复”阶段

在之前的版本中,执行间接迁移时,迁移卡在了恢复阶段,等待podvolumerestore完成。(BZ#2233868)

迁移的应用程序无法从目标集群上的内部注册表中拉取镜像

在之前的版本中,将应用程序迁移到目标集群时,迁移的应用程序无法从内部镜像注册表中拉取镜像,导致应用程序失败(BZ#2233103)

由于授权问题,Azure 上的迁移失败

在之前的版本中,在 Azure 集群上,当备份到 Azure 存储时,迁移在备份阶段失败。(BZ#2238974)

已知问题

MTC 1.8.0 存在以下已知问题

安装 OpenShift Virtualization 后 Ansible Operator 出现故障

python3-openshift 包中存在一个错误,安装 OpenShift Virtualization 会暴露出该错误,并返回一个异常ValueError: too many values to unpack。MTC 1.8.4 已实现一个解决方法。更新到 MTC 1.8.4 后,您将不再受此问题影响。(OCPBUGS-38116)

升级 MTC 1.7.x → 1.8.x 时,旧的 Restic pod 不会被删除

在本版本中,将MTC Operator从1.7.x升级到1.8.x时,旧的Restic pod不会被删除。因此,升级后,Restic和node-agent pod都会在命名空间中可见。((BZ#2236829))

迁移的构建器 pod 无法推送到镜像注册表

在本版本中,在将包含BuildConfig的应用程序从源集群迁移到目标集群时,构建器pod会返回error,无法将镜像推送到镜像注册表。((BZ#2234781))

[UI] CA证书文件字段未正确清除

在本版本中,在为MigStorage中的MCG NooBaa存储桶启用Require SSL verification并向CA证书文件添加内容后,连接会按预期失败。但是,当通过删除CA证书内容并清除Require SSL verification来撤消这些更改时,连接仍然失败。只有删除并重新添加存储库才能解决此问题。((BZ#2240052))

设置自定义 CA 复制存储库后,备份阶段失败

在(MTC)中,编辑复制存储库、添加自定义CA证书、成功连接存储库并触发迁移后,在备份阶段会发生故障。

此问题已在MTC 1.8.2中解决。

CVE-2023-26136:4.1.3 之前的 tough-cookie 包容易受到原型污染攻击

MTC中使用的tough-cookie包的4.1.3之前的版本容易受到原型污染漏洞的影响。当rejectPublicSuffixes的值设置为false时,此漏洞是因为CookieJar没有正确处理cookie。

此问题已在MTC 1.8.2中解决。

更多详情,请参见 (CVE-2023-26136)

CVE-2022-25883 openshift-migration-ui-container:nodejs-semver:正则表达式拒绝服务

在(MTC)的先前版本中,MTC中使用的semver包的7.5.2之前的版本容易受到来自newRange函数的正则表达式拒绝服务(ReDoS)攻击,当提供不受信任的用户数据作为范围时。

此问题已在MTC 1.8.2中解决。

更多详情,请参见 (CVE-2022-25883)

技术变更

此版本包含以下技术变更

  • 从OpenShift Container Platform 3迁移到OpenShift Container Platform 4需要使用旧版容器迁移工具操作器和容器迁移工具1.7.x。

  • 不支持从MTC 1.7.x迁移到MTC 1.8.x。

  • 必须使用MTC 1.7.x迁移任何源为OpenShift Container Platform 4.9或更早版本的资源。

    • 源和目标都需要使用MTC 1.7.x。

  • 容器迁移工具(MTC) 1.8.x仅支持从OpenShift Container Platform 4.10或更高版本迁移到OpenShift Container Platform 4.10或更高版本。对于仅涉及4.10及更高版本集群的迁移,可以使用1.7.x或1.8.x。但是,源和目标必须使用相同的MTC 1.Y.z版本。

    • 不支持从源MTC 1.7.x迁移到目标MTC 1.8.x。

    • 不支持从源MTC 1.8.x迁移到目标MTC 1.7.x。

    • 支持从源MTC 1.7.x迁移到目标MTC 1.7.x。

    • 支持从源MTC 1.8.x迁移到目标MTC 1.8.x。

  • MTC 1.8.x默认安装OADP 1.2.x。

  • 从MTC 1.7.x升级到MTC 1.8.0需要手动将OADP通道更改为1.2。如果不这样做,操作器的升级将会失败。