×

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

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

您可以从OpenShift Container Platform 3 迁移到 4.17,以及在 OpenShift Container Platform 4 集群之间迁移。

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

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

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

容器迁移工具包 (MTC) 1.7.17 是仅限容器等级 (CGO) 版本,发布目的是刷新容器的健康等级,与 MTC 1.7.16 相比,产品本身没有任何代码更改。

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

已解决的问题

此版本解决了以下问题:

CVE-2023-45290:Golang:net/httpRequest.ParseMultipartForm 方法中的内存耗尽

net/http Golang 标准库包中发现了一个缺陷,它会影响早期版本的 MTC。解析 multipart 表单时(无论是使用 Request.ParseMultipartForm 显式解析,还是使用 Request.FormValueRequest.PostFormValueRequest.FormFile 方法隐式解析),对已解析表单的总大小的限制不会应用于读取单个表单行时消耗的内存。这允许恶意制作的输入包含长行,从而导致分配任意大量的内存,可能导致内存耗尽。

要解决此问题,请升级到 MTC 1.7.16。

更多详细信息,请参阅CVE-2023-45290

CVE-2024-24783:Golang:crypto/x509:对具有未知公钥算法的证书进行验证时出现恐慌

crypto/x509 Golang 标准库包中发现了一个缺陷,它会影响早期版本的 MTC。验证包含具有未知公钥算法的证书的证书链会导致 Certificate.Verify 出现恐慌。这会影响所有将 Config.ClientAuth 设置为 VerifyClientCertIfGivenRequireAndVerifyClientCertcrypto/tls 客户端和服务器。默认行为是 TLS 服务器不验证客户端证书。

要解决此问题,请升级到 MTC 1.7.16。

更多详细信息,请参阅CVE-2024-24783

CVE-2024-24784:Golang:net/mail:显示名称中的注释处理不正确

net/mail Golang 标准库包中发现了一个缺陷,它会影响早期版本的 MTC。ParseAddressList 函数处理注释、括号中的文本和显示名称的方式不正确。由于这与符合标准的地址解析器不一致,因此使用不同解析器的程序可能会做出不同的信任决策。

要解决此问题,请升级到 MTC 1.7.16。

更多详细信息,请参阅CVE-2024-24784

CVE-2024-24785:Golang:html/template:从 MarshalJSON 方法返回的错误可能会破坏模板转义

html/template Golang 标准库包中发现了一个缺陷,它会影响早期版本的 MTC。如果从 MarshalJSON 方法返回的错误包含用户控制的数据,则它们可用于破坏 html/template 包的上下文自动转义行为,从而允许后续操作将意外内容注入模板。

要解决此问题,请升级到 MTC 1.7.16。

更多详细信息,请参阅CVE-2024-24785

CVE-2024-29180:webpack-dev-middleware:缺乏 URL 验证可能导致文件泄露

webpack-dev-middleware 包中发现了一个缺陷,它会影响早期版本的 MTC。此缺陷在返回本地文件之前未能充分验证提供的 URL 地址,这可能允许攻击者创建 URL 以从开发人员的机器返回任意本地文件。

要解决此问题,请升级到 MTC 1.7.16。

更多详细信息,请参阅CVE-2024-29180

CVE-2024-30255:envoy:由于 CONTINUATION 帧泛滥导致 HTTP/2 CPU 耗尽

envoy 代理实现 HTTP/2 编解码器的方式中发现了一个缺陷,它会影响早期版本的 MTC。对可以在单个流中发送的 CONTINUATION 帧的数量施加的限制不足,即使在超过 envoy 的报头映射限制之后也是如此。此缺陷可能允许未经身份验证的远程攻击者向易受攻击的服务器发送数据包。这些数据包可能会消耗计算资源并导致拒绝服务 (DoS)。

要解决此问题,请升级到 MTC 1.7.16。

更多详细信息,请参阅CVE-2024-30255

已知问题

此版本存在以下已知问题:

直接卷迁移失败,因为源集群上的 Rsync pod 进入错误状态

迁移任何具有持久卷声明 (PVC) 的应用程序时,阶段迁移操作会成功并发出警告,但直接卷迁移 (DVM) 失败,源命名空间上的 rsync pod 进入 错误状态。(BZ#2256141)

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

创建返回冲突错误消息的新状态迁移计划时,错误消息会在显示后很快被清除。(BZ#2144299)

当集群中配置了多个不同提供商类型的卷快照位置时,迁移失败

当集群中存在多个具有不同提供商类型的卷快照位置 (VSL),但您未将任何一个设置为默认 VSL 时,Velero 会导致验证错误,从而导致迁移操作失败。(BZ#2180565)

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

已解决的问题

此版本解决了以下问题:

CVE-2024-24786:在 Golang 的 protobuf 模块中发现了一个缺陷,其中 unmarshal 函数可能会进入无限循环

protojson.Unmarshal 函数中发现了一个缺陷,在解组某些形式的无效 JSON 消息时,该函数可能会进入无限循环。当解组到包含 google.protobuf.Any 值的消息中,或者在 JSON 格式的消息中设置了 UnmarshalOptions.DiscardUnknown 选项时,可能会发生这种情况。

要解决此问题,请升级到 MTC 1.7.15。

更多详细信息,请参阅(CVE-2024-24786)

CVE-2024-28180:jose-go 对高度压缩数据的处理不当

由于对高度压缩数据的处理不当,在 Jose 中发现了一个漏洞。攻击者可以发送包含压缩数据的 JSON Web Encryption (JWE) 加密消息,这些数据在由 DecryptDecryptMulti 函数解压缩时会使用大量的内存和 CPU。

要解决此问题,请升级到 MTC 1.7.15。

更多详细信息,请参阅(CVE-2024-28180)

已知问题

此版本存在以下已知问题:

直接卷迁移失败,因为源集群上的 Rsync pod 进入错误状态

迁移任何具有持久卷声明 (PVC) 的应用程序时,阶段迁移操作会成功并发出警告,但直接卷迁移 (DVM) 失败,源命名空间上的 rsync pod 进入 错误状态。(BZ#2256141)

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

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

如果集群中配置了多个不同提供程序类型的卷快照位置 (VSL),并且没有指定默认 VSL,则迁移将失败。

如果集群中有多个不同提供程序类型的 VSL,并且您未将它们中的任何一个设置为默认 VSL,则 Velero 将导致验证错误,从而导致迁移操作失败。(BZ#2180565)

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

已解决的问题

此版本解决了以下问题:

CVE-2023-39325 CVE-2023-44487:各种漏洞

在容器迁移工具包 (MTC) 使用的 HTTP/2 协议中处理多路复用流的过程中发现了一个漏洞。客户端可以重复请求新的多路复用流,然后立即发送RST_STREAM帧以取消这些请求。此活动在设置和拆除流方面为服务器创建了额外的负载,但避免了服务器端对每个连接上的最大活动流数的任何限制。结果,由于服务器资源消耗,导致拒绝服务攻击。

要解决此问题,请升级到 MTC 1.7.14。

有关更多详细信息,请参阅 (CVE-2023-44487)(CVE-2023-39325)

CVE-2023-39318 CVE-2023-39319 CVE-2023-39321:各种漏洞
  • (CVE-2023-39318):在 MTC 使用的 Golang 中发现了一个漏洞。html/template 包未正确处理 HTML 式的""注释标记或"#!"注释标记(在<script> 上下文中)。此漏洞可能导致模板解析器错误地解释<script>上下文的内容,从而导致操作转义不正确。

  • (CVE-2023-39319):在 MTC 使用的 Golang 中发现了一个漏洞。html/template 包未应用正确的规则来处理"<script""<!--""</script"<script>上下文中的 JavaScript 文字中的出现。这可能导致模板解析器错误地认为脚本上下文过早终止,从而导致操作转义不正确。

  • (CVE-2023-39321):在 MTC 使用的 Golang 中发现了一个漏洞。处理 QUIC 连接的不完整后握手消息可能会导致 panic。

  • (CVE-2023-39322):在 MTC 使用的 Golang 中发现了一个漏洞。使用 QUIC 传输协议的连接未设置读取后握手消息时缓冲的数据量上限,允许恶意 QUIC 连接导致无限制的内存增长。

要解决这些问题,请升级到 MTC 1.7.14。

有关更多详细信息,请参阅 (CVE-2023-39318)(CVE-2023-39319)(CVE-2023-39321)

已知问题

此版本中没有主要已知问题。

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

已解决的问题

此版本中没有主要已解决的问题。

已知问题

此版本中没有主要已知问题。

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

已解决的问题

此版本中没有主要已解决的问题。

已知问题

此版本存在以下已知问题:

迁移详细信息页面上显示错误代码 504

在**迁移详细信息**页面上,首先会显示迁移详细信息,没有任何问题。但是,一段时间后,详细信息会消失,并返回504错误。(BZ#2231106)

将容器迁移工具包 1.7.x 升级到容器迁移工具包 1.8 时,不会删除旧的 restic pod

将容器迁移工具包 (MTC) 运算符从 1.7.x 升级到 1.8.x 后,不会删除旧的 restic pod。升级后,restic 和 node-agent pod 都在命名空间中可见。(BZ#2236829)

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

已解决的问题

此版本中没有主要已解决的问题。

已知问题

此版本中没有已知问题。

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

已解决的问题

此版本包含以下主要已解决的问题

调整 DVM 中的 rsync 选项

在此版本中,您可以防止在直接卷迁移 (DVM) 过程中 Rsync 操纵绝对符号链接。在特权模式下运行 DVM 会保留持久卷声明 (PVC) 内的绝对符号链接。要切换到特权模式,请在MigrationController CR 中将migration_rsync_privileged规范设置为true。(BZ#2204461)

已知问题

此版本中没有已知问题。

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

已解决的问题

此版本中没有主要已解决的问题。

已知问题

此版本包含以下已知问题

调整 DVM 中的 rsync 选项

在此版本中,用户无法防止在直接卷迁移 (DVM) 期间 rsync 操纵绝对符号链接。(BZ#2204461)

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

已解决的问题

此版本包含以下主要已解决的问题

无法在容器迁移工具包 (MTC) 运算符中覆盖 Velero 镜像

在以前的版本中,无法使用MigrationController自定义资源 (CR) 中的velero_image_fqin参数覆盖 velero 镜像。(BZ#2143389)

当域名超过六个字符时,通过UI添加MigCluster会失败

在之前的版本中,当域名超过六个字符时,通过UI添加MigCluster会失败。UI代码预期域名长度在两到六个字符之间。(BZ#2152149

UI无法渲染“迁移”页面:无法读取未定义属性 (读取 'name')

在之前的版本中,UI无法渲染“迁移”页面,返回错误代码Cannot read properties of undefined (reading 'name')。(BZ#2163485

在Red Hat OpenShift Container Platform 4.6集群上创建DPA资源失败

在之前的版本中,在OpenShift Container Platform 4.6集群上部署MTC时,根据日志,DPA创建失败,导致一些Pod缺失。OpenShift Container Platform 4.6集群中migration-controller的日志表明,传递了一个意外的null值,导致了错误。(BZ#2173742

已知问题

此版本中没有已知问题。

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

已解决的问题

此版本中没有主要已解决的问题。

已知问题

此版本中没有已知问题。

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

新功能

在Red Hat OpenShift Container Platform 4.12中实现针对DVM支持与PSA的建议更改

随着OpenShift Container Platform 4.12中Pod安全准入(PSA)的强制执行,默认Pod将以restricted配置文件运行。这个restricted配置文件意味着要迁移的工作负载将违反此策略,并且从现在开始将不再工作。以下增强功能概述了为保持与OCP 4.12兼容所需进行的更改。(MIG-1240

已解决的问题

此版本包含以下主要已解决的问题

由于Red Hat OpenShift Platform 4.12中缺少cronjob错误,无法创建存储类转换计划

在之前的版本中,在持久卷页面上,会抛出一个错误,指出在batch/v1beta1版本中CronJob不可用,并且单击取消后,migplan将创建并状态为Not ready。(BZ#2143628

已知问题

此版本包含以下已知问题

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

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

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

已解决的问题

此版本包含以下主要已解决的问题

直接卷迁移失败,因为源集群上的rsync pod进入错误状态

在之前的版本中,迁移成功但带有警告,但直接卷迁移失败,源命名空间上的rsync pod进入错误状态。(BZ#2132978

已知问题

此版本存在以下已知问题:

无法在容器迁移工具包 (MTC) 运算符中覆盖 Velero 镜像

在以前的版本中,无法使用MigrationController自定义资源 (CR) 中的velero_image_fqin参数覆盖 velero 镜像。(BZ#2143389)

在UI中编辑MigHook时,页面可能无法重新加载

如果存在网络连接问题,则在编辑hook时,UI可能无法重新加载。网络连接恢复后,页面将无法重新加载,直到缓存被清除。(BZ#2140208

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

已解决的问题

此版本中没有主要已解决的问题。

已知问题

回滚遗漏了从目标集群删除某些资源

在执行容器迁移工具包(MTC)UI的应用程序回滚时,某些资源未从目标集群中删除,回滚显示状态为成功完成。(BZ#2126880

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

已解决的问题

此版本包含以下主要已解决的问题

正确的目标命名空间DNS验证

在之前的版本中,如果目标命名空间以非字母字符开头,则无法验证MigPlan。(BZ#2102231

取消选择UI中的所有PVC仍会导致尝试PVC传输

在之前的版本中,在执行完全迁移时,取消选择持久卷声明(PVC)不会跳过选择PVC,仍然会尝试迁移它们。(BZ#2106073

不正确的目标命名空间DNS验证

在之前的版本中,由于目标命名空间以非字母字符开头,因此无法验证MigPlan。(BZ#2102231

已知问题

此版本中没有已知问题。

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

已解决的问题

此版本包含以下主要已解决的问题

MTC UI无法正确显示日志

在之前的版本中,容器迁移工具包(MTC)UI无法正确显示日志。(BZ#2062266

存储类转换计划在migplan中添加migstorage引用

在之前的版本中,即使没有使用,存储类转换计划也具有migstorage引用。(BZ#2078459

下载的日志中缺少Velero pod日志

在之前的版本中,下载所有日志的压缩(.zip)文件夹时,缺少velero pod。(BZ#2076599

UI下拉菜单中缺少Velero pod日志

在之前的版本中,执行迁移后,下拉列表中提供的日志中不包含velero pod日志。(BZ#2076593

log-reader pod中看不到Rsync选项日志

在之前的版本中,当尝试在migrationcontroller中设置任何有效或无效的rsync选项时,log-reader不会显示任何关于无效选项或关于正在使用的rsync命令的日志。(BZ#2079252

Velero/Restic的默认CPU请求过高,在某些环境中会失败

在之前的版本中,Velero/Restic的默认CPU请求过高,在某些环境中会失败。Velero和Restic Pod的默认CPU请求设置为500m。这些值过高。(BZ#2088022

已知问题

此版本存在以下已知问题:

UI不尊重将复制存储库更新到不同的存储提供商类型

将复制存储库更新到不同的类型并单击“更新存储库”后,它会显示连接成功,但UI不会使用正确的详细信息更新。再次单击“编辑”按钮时,它仍然显示旧的复制存储库信息。

此外,当尝试再次更新复制存储库时,它仍然显示旧的复制详细信息。选择新的存储库时,它还会显示您之前输入的所有信息,并且“更新存储库”未启用,就好像没有要提交的更改一样。(BZ#2102020

迁移失败,因为找不到备份

迁移在还原阶段失败,因为找不到初始备份。(BZ#2104874

更新Azure资源组时,“更新集群”按钮未启用

更新远程集群时,选中**Azure 资源组**复选框并添加资源组不会启用**更新集群**选项。(BZ#2098594

删除 migstorage 资源时,UI 中弹出错误。

在 OpenShift Container Platform 中创建backupStorage凭据密钥时,如果从 UI 中删除migstorage,则会返回 404 错误,并且底层密钥不会被删除。(BZ#2100828

Miganalytic 资源在 UI 中显示资源计数为 0。

从后端创建 migplan 后,Miganalytic 资源在 UI 中显示资源计数为0。(BZ#2102139

如果在指向镜像注册表的公开路由主机中添加两个尾部斜杠,则注册表验证将失败。

在公开的注册表路由中添加两个尾部斜杠(即//)后,MigCluster 资源的状态显示为已连接。当使用 DIM 从后端创建 migplan 时,计划将变为未就绪状态。(BZ#2104864

编辑源集群时,服务帐户令牌不可见。

在 UI 中编辑已添加并处于**已连接**状态的源集群时,服务帐户令牌在字段中不可见。要保存向导,必须再次获取令牌并在字段中提供详细信息。(BZ#2097668

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

已解决的问题

此版本中没有主要已解决的问题。

已知问题

此版本存在以下已知问题:

不正确的目标命名空间DNS验证

由于目标命名空间以非字母字符开头,因此无法验证 MigPlan。(BZ#2102231

由于 Velero Pod 上缺少标签,迁移控制器的云传播阶段无法正常工作。

由于 Velero Pod 上缺少标签,迁移控制器的云传播阶段无法正常工作。迁移控制器中的EnsureCloudSecretPropagated阶段将等待直到复制存储库密钥在两侧都传播。由于 Velero Pod 上缺少此标签,因此该阶段无法按预期工作。(BZ#2088026

Velero/Restic 的默认 CPU 请求过高,导致某些环境中调度失败。

Velero/Restic 的默认 CPU 请求过高,导致某些环境中调度失败。Velero 和 Restic Pod 的默认 CPU 请求设置为 500m。这些值过高。可以使用 DPA 中的podConfig字段配置 Velero 和 Restic 的资源。迁移操作符应将 CPU 请求设置为较低的值,例如 100m,以便在资源受限的环境中调度 Velero 和 Restic Pod,容器迁移工具包 (MTC) 通常在这些环境中运行。(BZ#2088022

编辑存储类转换计划后,在 persistentVolumes 页面上显示警告。

编辑存储类转换计划后,在**persistentVolumes**页面上显示警告。编辑现有迁移计划时,UI 上会显示警告必须至少选择一个 PVC 用于存储类转换。(BZ#2079549

下载的日志中缺少Velero pod日志

下载所有日志的压缩(.zip)文件夹时,缺少 velero pod。(BZ#2076599

UI下拉菜单中缺少Velero pod日志

执行迁移后,下拉列表中提供的日志中不包含 velero pod 日志。(BZ#2076593

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

新功能和增强功能

此版本包含以下新功能和增强功能:

  • 容器迁移工具包 (MTC) 运算符现在依赖于用于数据保护的 OpenShift API (OADP) 运算符。安装 MTC 运算符时,运算符生命周期管理器 (OLM) 会自动在同一命名空间中安装 OADP 运算符。

  • 您可以通过使用crane tunnel-api命令在两个集群之间建立网络隧道,将数据从位于防火墙后的源集群迁移到基于云的目标集群。

  • 在 MTC Web 控制台中转换存储类:您可以通过在同一集群内迁移持久卷 (PV) 来转换其存储类。

已知问题

此版本存在以下已知问题:

  • 当 AWS gp2 PVC 没有可用空间时,MigPlan自定义资源不会显示警告。(BZ#1963927

  • 如果目标存储是由 AWS Elastic File System (EFS) 动态配置的 PV,则直接和间接数据传输将无法工作。这是由于 AWS EFS 容器存储接口 (CSI) 驱动程序的限制。(BZ#2085097

  • IBM Cloud 的块存储必须位于同一可用区。请参阅IBM 关于虚拟私有云块存储的常见问题解答

  • MTC 1.7.6 无法将支持v1beta1 cron 作业的源集群中的 cron 作业迁移到不支持v1beta1 cron 作业的 OpenShift Container Platform 4.12 及更高版本的集群。(BZ#2149119