第 2 章 MTC 发行注记
2.1. Migration Toolkit for Containers 1.8 发行注记
该版本的 Migration Toolkit for Containers 发行注记介绍了新的功能和增强功能、已弃用的功能以及已知的问题。
MTC(Migration Toolkit for Containers)可让您按照命名空间将应用程序工作负载在不同 OpenShift Container Platform 集群间进行迁移。
您可以从 OpenShift Container Platform 3 迁移到 4.12,也可以在 OpenShift Container Platform 4 集群之间迁移。
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.3 发行注记
2.1.1.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.1.2. 已解决的问题
此发行版本有以下主要解决的问题:
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.1.3. 已知问题
MTC 有以下已知问题:
在 OpenShift Container Platform 4.12 中无法迁移服务帐户关联的 SCC
OpenShift Container Platform 版本 4.12 中服务帐户的相关安全性上下文约束 (SCC) 无法迁移。计划在以后的 MTC 版本中解决这个问题。(MIG-1454)
有关所有已知问题的完整列表,请参阅 JIRA 中的 MTC 1.8.3 已知问题列表。
2.1.2. Migration Toolkit for Containers 1.8.2 发行注记
2.1.2.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.2.2. 已知问题
这个版本没有主要已知的问题。
2.1.3. Migration Toolkit for Containers 1.8.1 发行注记
2.1.3.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.3.2. 已知问题
这个版本没有主要已知的问题。
2.1.4. Migration Toolkit for Containers 1.8.0 发行注记
2.1.4.1. 已解决的问题
此发行版本有以下解决的问题:
间接迁移会一直处于备份阶段
在以前的版本中,由于 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.4.2. 已知问题
这个版本有以下已知问题:
升级 MTC 1.7.x
在这个发行版本中,当将 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.4.3. 技术变化
此发行版本有以下技术更改:
- 从 OpenShift Container Platform 3 迁移到 OpenShift Container Platform 4 需要旧的 MTC Operator 和 MTC 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。如果没有这样做,Operator 升级会失败。