4.7. 已知问题
- 您无法在单堆栈 IPv6 集群上运行 OpenShift Virtualization。(BZ#2193267)
- 在具有不同计算节点的异构集群中,启用了 HyperV Reenlightenment 的虚拟机无法调度到不支持时间戳扩展 (TSC) 或具有适当 TSC 频率的节点。(BZ#2151169)
当您使用具有不同 SELinux 上下文的两个 pod 时,带有
ocs-storagecluster-cephfs
存储类的虚拟机无法迁移,虚拟机状态变为Paused
。这是因为两个 pod 会尝试同时访问共享ReadWriteMany
CephFS 卷。(BZ#2092271)-
作为临时解决方案,使用
ocs-storagecluster-ceph-rbd
存储类在使用 Red Hat Ceph Storage 的集群上实时迁移虚拟机。
-
作为临时解决方案,使用
如果您在不更新 OpenShift Virtualization 的情况下将 OpenShift Container Platform 更新至版本 4.11,则恢复虚拟机快照会失败。这是因为用于快照对象的 API 版本不匹配。(BZ#2159442)
- 作为临时解决方案,将 OpenShift Virtualization 更新至与 OpenShift Container Platform 相同的次版本。要确保版本保持同步,请使用推荐的自动批准策略。
- 卸载 OpenShift Virtualization 不会删除 OpenShift Virtualization 创建的节点标签。您必须手动删除标签。(CNV-22036)
如果您创建了大量
NodePort
服务,则 OVN-Kubernetes 集群网络供应商会在出现峰值 RAM 和 CPU 使用时崩溃。如果您使用NodePort
服务向大量虚拟机公开 SSH 访问,会出现这种情况。(OCPBUGS-1940)-
作为临时解决方案,如果要通过
NodePort
服务向大量虚拟机公开 SSH 访问,请使用 OpenShift SDN 集群网络供应商。
-
作为临时解决方案,如果要通过
从 4.10 升级到 OpenShift Virtualization 4.11 被阻止,直到安装独立了 Kubernetes NMState Operator。即使集群配置不使用任何 nmstate 资源,也会发生这种情况。(BZ#2126537)
作为临时解决方案:
验证集群中没有定义节点网络配置策略:
$ oc get nncp
选择更新 OpenShift Virtualization 的适当方法:
- 如果节点网络配置策略列表不为空,请退出此流程并安装 Kubernetes NMState Operator 来保留并支持现有的 nmstate 配置。
- 如果列表为空,则转到第 3 步。
注解
HyperConverged
自定义资源 (CR)。以下命令覆盖任何现有 JSON 补丁:$ oc annotate --overwrite -n openshift-cnv hco kubevirt-hyperconverged 'networkaddonsconfigs.kubevirt.io/jsonpatch=[{"op": "replace","path": "/spec/nmstate", "value": null}]'
注意在应用此补丁时,
HyperConverged
对象会报告TaintedConfiguration
条件。这是 benign。- 更新 OpenShift Virtualization。
更新完成后,运行以下命令来删除注解:
$ oc annotate -n openshift-cnv hco kubevirt-hyperconverged networkaddonsconfigs.kubevirt.io/jsonpatch-
- 可选:添加任何覆盖的之前配置的 JSON 补丁。
Containerized Data Importer (CDI) 创建的一些持久性卷声明 (PVC) 注解可能会导致虚拟机快照恢复操作无限期挂起。(BZ#2070366)
作为临时解决方案,您可以手动删除注解:
-
从
VirtualMachineSnapshot
CR 中的status.virtualMachineSnapshotContentName
值获取 VirtualMachineSnapshotContent 自定义资源 (CR) 名称。 -
编辑
VirtualMachineSnapshotContent
CR,并删除包含k8s.io/cloneRequest
的所有行。 如果您没有在
VirtualMachine
对象中为spec.dataVolumeTemplates
指定值,请删除此命名空间中的所有DataVolume
和PersistentVolumeClaim
对象,其中这两个对象都满足以下条件:-
对象的名称以
restore-
开头。 不被虚拟机引用的对象。
如果为
spec.dataVolumeTemplates
指定了值,则此步骤是可选的。
-
对象的名称以
-
使用更新的
VirtualMachineSnapshot
CR 重复恢复操作。
-
从
-
Windows 11 虚拟机不会在以 FIPS 模式运行的集群上引导。Windows 11 默认需要一个 TPM (可信平台模块)设备。但是,
swtpm
(软件 TPM 模拟器)软件包与 FIPS 不兼容。(BZ#2089301) -
在单节点 OpenShift(SNO)集群中,在从驱除策略设置为
LiveMigrate
的通用模板中创建的虚拟机上会发生VMCannotBeEvicted
警报。(BZ#2092412) Fedora 35 虚拟机上的 QEMU 客户机代理受 SELinux 阻止,且不会报告数据。其他 Fedora 版本可能会受到影响。(BZ#2028762)
- 作为临时解决方案,请在虚拟机上禁用 SELinux,运行 QEMU 客户机代理命令,然后重新启用 SELinux。
如果您的 OpenShift Container Platform 集群使用 OVN-Kubernetes 作为默认 Container Network Interface(CNI)供应商,则无法将 Linux 网桥或绑定设备附加到主机的默认接口,因为 OVN-Kubernetes 的主机网络拓扑发生了变化。(BZ#1885605)
- 作为临时解决方案,您可以使用连接到主机的二级网络接口,或切换到 OpenShift SDN 默认 CNI 供应商。
如果您使用 Red Hat Ceph Storage 或 Red Hat OpenShift Data Foundation Storage,则一次克隆超过 100 个虚拟机可能会失败。(BZ#1989527)
作为临时解决方案,您可以通过在存储配置集清单中设置
spec.cloneStrategy: copy
来执行主机辅助副本。例如:apiVersion: cdi.kubevirt.io/v1beta1 kind: StorageProfile metadata: name: <provisioner_class> # ... spec: claimPropertySets: - accessModes: - ReadWriteOnce volumeMode: Filesystem cloneStrategy: copy 1 status: provisioner: <provisioner> storageClass: <provisioner_class>
- 1
- 默认克隆方法设置为
copy
。
在某些情况下,多个虚拟机可以以读写模式挂载相同的 PVC,这可能会导致数据崩溃。(BZ#1992753)
- 作为临时解决方案,请避免在使用多个虚拟机的读写模式中使用单个 PVC。
Pod Disruption Budget(PDB)可防止 pod 意外中断。如果 PDB 检测到 pod 中断,则
openshift-monitoring
会每 60 分钟发送PodDisruptionBudgetAtLimit
警报,以使用LiveMigrate
驱除策略。(BZ#2026733)- 作为临时解决方案,静默警报。
OpenShift Virtualization 将 pod 使用的服务帐户令牌链接到该特定 pod。OpenShift Virtualization 通过创建包含令牌的磁盘镜像来实施服务帐户卷。如果您迁移虚拟机,则服务帐户卷无效。(BZ#2037611)
- 作为临时解决方案,使用用户帐户而不是服务帐户,因为用户帐户令牌没有绑定到特定 pod。
如果您将
HyperConverged
自定义资源(CR)配置为在安装驱动程序前启用介质设备,新的设备配置不会生效。更新可能会触发此问题。例如,如果在daemonset
之前更新virt-handler
,它安装 NVIDIA 驱动程序,则节点无法提供虚拟机 GPU。(BZ#2046298)作为临时解决方案:
-
从
HyperConverged
CR 中删除mediatedDevicesConfiguration
和permittedHostDevices
。 -
使用您要使用的配置更新
mediatedDevicesConfiguration
和permittedHostDevices
小节。
-
从
如果您使用
csi-clone
克隆策略克隆超过 100 个虚拟机,则 Ceph CSI 可能无法清除克隆。手动删除克隆也会失败。(BZ#2055595)-
作为临时解决方案,您可以重启
ceph-mgr
来清除虚拟机克隆。
-
作为临时解决方案,您可以重启