第 2 章 MTC 发行注记


2.1. Migration Toolkit for Containers 1.8 发行注记

该版本的 Migration Toolkit for Containers 发行注记介绍了新的功能和增强功能、已弃用的功能以及已知的问题。

MTC(Migration Toolkit for Containers)可让您按照命名空间将应用程序工作负载在不同 OpenShift Container Platform 集群间进行迁移。

MTC 提供了一个基于 Kubernetes 自定义资源的 web 控制台和 API,可帮助您控制迁移并最小化应用程序停机时间。

有关 MTC 支持政策的信息,请参阅 OpenShift Application and Cluster Migration Solutions,它是 Red Hat OpenShift Container Platform 生命周期政策的一部分。

2.1.1. Migration Toolkit for Containers 1.8.5 发行注记

2.1.1.1. 技术变化

Migration Toolkit for Containers (MTC) 1.8.5 有以下技术更改:

联邦信息处理标准(FIPS)

FIPS 是美国联邦政府根据联邦信息处理标准(FISMA)开发的一组计算机安全标准。

从 1.8.5 开始,MTC 是为 FIPS 合规性而设计的。

2.1.1.2. 已解决的问题

如需更多信息,请参阅 JIRA 中的 MTC 1.8.5 解决的问题 列表。

2.1.1.3. 已知问题

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 转换会触发命名空间中的所有应用程序的缩减

当在多个应用程序上运行 StorageClass 转换时,MTC 会在 cutover 阶段缩减所有应用程序,包括不涉及迁移的应用程序。(MIG-1661)

在更改了后,MigPlan 无法编辑为与源集群具有相同的目标命名空间

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

迁移的构建器 Pod 无法推送到镜像 registry

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

冲突条件在显示后会简要清除

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

设置 pv_resizing_threshold后不会显示 PvCapacityAdjustmentRequired 警告

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

有关所有已知问题的完整列表,请参阅 JIRA 中的 MTC 1.8.5 已知问题 列表。

2.1.2. Migration Toolkit for Containers 1.8.4 发行注记

2.1.2.1. 技术变化

Migration Toolkit for Containers (MTC) 1.8.4 有以下技术更改:

  • MTC 1.8.4 扩展其依赖项解析,使其包含对使用 OpenShift API for Data Protection (OADP) 1.4 的支持。

支持带有 DirectVolumeMigration 的 KubeVirt 虚拟机

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

2.1.2.2. 已解决的问题

MTC 1.8.4 包括以下主要解决的问题:

安装 OpenShift Virtualization 时 Ansible Operator 无法正常工作

安装 OpenShift Virtualization 的 python3-openshift 软件包中有一个错误,在处理任务的过程中会返回一个例外 ValueError: too many values to unpack。早期版本的 MTC 会受到影响,MTC 1.8.4 提供了一个临时解决方案。更新至 MTC 1.8.4 代表您不再会受到此问题的影响。(OCPBUGS-38116)

在创建迁移计划时,UI 会在 Namespaces 步骤中卡住

当尝试从 MTC UI 创建迁移计划时,迁移计划向导会停留在 Namespaces 步骤中。这个问题已在 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 中的标签选择器

使用 Direct Image Migration (DIM) 时,如果在迁移计划上设置了标签选择器,DIM 并不会遵循它,并尝试迁移命名空间中的所有镜像流。(MIG-1533)

2.1.2.3. 已知问题

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 阶段失败。

(BZ#2231403)

迁移的构建器 pod 无法推送到镜像 registry

在将包含 BuildConfig 的应用程序迁移到目标集群时,构建器 Pod 会导致错误,无法将镜像推送到镜像 registry。

(BZ#2234781)

在创建后,冲突条件会在短暂的时间段内被清除

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

(BZ#2144299)

在设置 pv_resizing_threshold 后,PvCapacityAdjustmentRequired 警告信息没有显示

在调整 pv_resizing_threshold 后,PvCapacityAdjustmentRequired 警告信息将不会出现在迁移计划中。

(BZ#2270160)

2.1.3. Migration Toolkit for Containers 1.8.3 发行注记

2.1.3.1. 技术变化

Migration Toolkit for Containers (MTC) 1.8.3 有以下技术变化:

现在支持 OADP 1.3

MTC 1.8.3 添加了对 OpenShift API for Data Protection (OADP) 的支持,作为 MTC 1.8.z 的依赖。

2.1.3.2. 已解决的问题

MTC 1.8.3 包括以下主要解决的问题:

CVE-2024-24786: Golang protobuf 模块中的一个错误会导致 unmarshal 函数进入死循环

在以前的 MTC 版本中,在 Golang 的 protobuf 模块中发现了一个漏洞,在处理某些无效输入时,unmarshal 函数会进入一个死循环。因此,攻击者可以利用这个漏洞,通过一个精心构建的无效输入,会导致这个函数进入死循环。

在这个版本中,unmarshal 功能可以正常工作。

如需更多信息,请参阅 CVE-2024-24786

CVE-2023-45857: Axios Cross-Site Request Forgery 安全漏洞

在以前的 MTC 版本中,在 Axios 1.5.1 中发现了一个漏洞,它会被利用来发现存储在 Cookie 中的敏感的 XSRF-TOKEN,方法是在向主机发出的每个请求的 HTTP 标头 X-XSRF-TOKEN 中包括它。

如需更多信息,请参阅 CVE-2023-45857

当源工作负载没有静止时,Restic 备份无法正常工作

在以前的 MTC 版本中,当使用路由部署应用程序时,一些文件不会被迁移。当源工作负载取消选择 quiesce 选项时,Restic 备份无法正常工作。

这个问题已在 MTC 1.8.3 中解决。

如需更多信息,请参阅 BZ#2242064

因为 Velero 中的一个不被支持的值错误,Migration Controller 无法安装

因为 Velero 不支持的值错误,MigrationController 无法安装。将 OADP 1.3.0 更新至 OADP 1.3.1 可解决这个问题。如需更多信息,请参阅 BZ#2267018

这个问题已在 MTC 1.8.3 中解决。

有关所有已解决的问题的完整列表,请参阅 JIRA 中的 MTC 1.8.3 解决的问题 列表。

2.1.3.3. 已知问题

MTC (Migration Toolkit for Containers) 1.8.3 有以下已知问题:

安装 OpenShift Virtualization 时 Ansible Operator 无法正常工作

安装 OpenShift Virtualization 的 python3-openshift 软件包中有一个错误,在处理任务的过程中会返回一个例外 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 已知问题列表。

2.1.4. Migration Toolkit for Containers 1.8.2 发行注记

2.1.4.1. 已解决的问题

此发行版本有以下主要解决的问题:

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

在以前的 MTC 版本中,在编辑复制存储库后,添加自定义 CA 证书、成功连接仓库并触发迁移,在备份阶段出现问题。

CVE-2023-26136: 在 4.1.3 之前使用 tough-cookie 软件包会受到 Prototype Pollution 的攻击

在以前的 (MTC) 版本中,MTC 中使用的 tough-cookie 软件包版本 4.1.3 会被受到原型处理的影响。发生此漏洞的原因是,当 rejectPublicSuffixes 的值设置为 false 时,CookieJar 无法正确处理 Cookie。

如需了解更多详细信息,请参阅 (CVE-2023-26136)

CVE-2022-25883 openshift-migration-ui-container: nodejs-semver: Regular expression 拒绝服务

在以前的(MTC)版本中,当不受信任的用户数据作为 newRange 提供时,MTC 中使用的 7.5.2 之前的 semver 软件包版本容易受到 Regular Expression Denial 的 Service (ReDoS)的攻击。

如需了解更多详细信息,请参阅 (CVE-2022-25883)

2.1.4.2. 已知问题

MTC 1.8.2 包括以下已知的问题:

安装 OpenShift Virtualization 时 Ansible Operator 无法正常工作

安装 OpenShift Virtualization 的 python3-openshift 软件包中有一个错误,在处理任务的过程中会返回一个例外 ValueError: too many values to unpack。MTC 1.8.4 实施了一个临时解决方案。更新至 MTC 1.8.4 代表您不再会受到此问题的影响。(OCPBUGS-38116)

2.1.5. Migration Toolkit for Containers 1.8.1 发行注记

2.1.5.1. 已解决的问题

MTC (Migration Toolkit for Containers) 1.8.1 解决了以下主要问题:

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

在处理 HTTP/2 协议(被 MTC 使用)中的多路流中发现了一个安全漏洞。 客户端可以重复请求新的多路流,并立即发送 RST_STREAM 帧来取消它。这在设置和分离流方面为服务器创建额外的工作负载,同时避免每个连接的最大活跃流数量的服务器端限制,从而导致因为服务器资源消耗而拒绝服务。(BZ#2245079)

建议升级到 MTC 1.8.1 或更高版本,从而解决了这个问题。

如需了解更多详细信息,请参阅 (CVE-2023-39325)(CVE-2023-44487)

2.1.5.2. 已知问题

MTC (Migration Toolkit for Containers) 1.8.1 有以下已知问题:

安装 OpenShift Virtualization 时 Ansible Operator 无法正常工作

安装 OpenShift Virtualization 的 python3-openshift 软件包中存在一个错误。在任务执行期间会返回一个例外 ValueError: too too value to unpack。MTC 1.8.4 实施了一个临时解决方案。更新至 MTC 1.8.4 代表您不再会受到此问题的影响。(OCPBUGS-38116)

2.1.6. Migration Toolkit for Containers 1.8.0 发行注记

2.1.6.1. 已解决的问题

MTC (Migration Toolkit for Containers) 1.8.0 解决了以下问题:

间接迁移会一直处于备份阶段

在以前的版本中,因为 InvalidImageName 错误,间接迁移会卡住在备份阶段。 ((BZ#2233097))

PodVolumeRestore 会保留在 In Progress 状态,使迁移一直处于 Stage Restore 状态

在以前的版本中,在执行间接迁移时,迁移会停留在 Stage Restore 步骤中,等待 podvolumerestore 完成。 ((BZ#2233868))

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

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

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

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

2.1.6.2. 已知问题

MTC 1.8.0 包括以下已知的问题:

安装 OpenShift Virtualization 时 Ansible Operator 无法正常工作

安装 OpenShift Virtualization 的 python3-openshift 软件包中有一个错误,在处理任务的过程中会返回一个例外 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 无法推送到镜像 registry

在本发行版本中,在将包含 BuildConfig 的应用程序从源迁移到目标集群时,builder pod 会导致错误,无法将镜像推送到镜像 registry。((BZ#2234781))

[UI] CA 捆绑包文件字段没有被正确清除

在本发行版本中,在启用 Require SSL 验证 并将内容添加到 MigStorage 的 MCG NooBaa 存储桶的 CA 捆绑包文件中后,连接会如预期失败。但是,通过删除 CA 捆绑包内容并清除 Require SSL 验证 来恢复这些更改时,连接仍会失败。该问题仅通过删除和重新添加存储库来解决。((BZ#2240052))

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

在(MTC)编辑复制存储库后,添加自定义 CA 证书、成功连接仓库并触发迁移,在备份阶段出现问题。

这个问题已在 MTC 1.8.2 中解决。

CVE-2023-26136: 在 4.1.3 之前使用 tough-cookie 软件包会受到 Prototype Pollution 的攻击

MTC 中使用的 4.1.3 tough-cookie 软件包版本之前(在 MTC 中使用)容易受到对轮询建模的攻击。此漏洞发生,因为当 rejectPublicSuffixes 的值设置为 false 时,CookieJar 无法正确处理 Cookie。

这个问题已在 MTC 1.8.2 中解决。

如需了解更多详细信息,请参阅 (CVE-2023-26136)

CVE-2022-25883 openshift-migration-ui-container: nodejs-semver: Regular expression 拒绝服务

在以前的(MTC)版本中,当不受信任的用户数据作为 newRange 提供时,MTC 中使用的 7.5.2 之前的 semver 软件包版本容易受到 Regular Expression Denial 的 Service (ReDoS)的攻击。

这个问题已在 MTC 1.8.2 中解决。

如需了解更多详细信息,请参阅 (CVE-2022-25883)

2.1.6.3. 技术变化

此发行版本有以下技术更改:

  • 从 OpenShift Container Platform 3 迁移到 OpenShift Container Platform 4 需要旧的 MTC Operator 和 MTC 1.7.x 的 Migration Toolkit。
  • 不支持从 MTC 1.7.x 迁移到 MTC 1.8.x。
  • 您必须使用 MTC 1.7.x 来迁移使用 OpenShift Container Platform 4.9 或更早版本源的任何内容。

    • MTC 1.7.x 必须在源和目标中使用。
  • Migration Toolkit for Containers (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。如果没有这样做,Operator 升级会失败。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.