3.7. 已知问题


  • 更新至 OpenShift Virtualization 4.8.7 会导致一些虚拟机(VM) 处于实时迁移循环中。如果虚拟机清单中的 spec.volumes.containerDisk.path 字段设置为相对路径,会出现这种情况。

    • 作为临时解决方案,删除并重新创建 VM 清单,将 spec.volumes.containerDisk.path 字段的值设置为绝对路径。然后您可以更新 OpenShift Virtualization。
  • 如果您最初部署了 OpenShift Virtualization 版本 2.4.z 或更早版本,升级到 4.8 版本会失败并显示以下信息:

    risk of data loss updating hyperconvergeds.hco.kubevirt.io: new CRD removes
    version v1alpha1 that is listed as a stored version on the existing CRD

    此程序错误不会影响最初在 2.5.0 或更高版本部署 OpenShift Virtualization 的集群。(BZ#1986989)

    • 作为临时解决方案,从 HyperConverged 自定义资源定义 (CRD) 中删除 v1alpha1 版本,并恢复升级过程:

      1. 运行以下命令,打开集群的代理连接:

        $ oc proxy &
      2. 运行以下命令,从 HyperConverged CRD 上的 .status.storedVersions 中删除 v1alpha1 版本:

        $ curl --header "Content-Type: application/json-patch+json" --request PATCH http://localhost:8001/apis/apiextensions.k8s.io/v1/customresourcedefinitions/hyperconvergeds.hco.kubevirt.io/status --data '[{"op": "replace", "path": "/status/storedVersions", "value":["v1beta1"]}]'
      3. 运行以下命令恢复升级过程:

        $ curl --header "Content-Type: application/json-patch+json" --request PATCH http://localhost:8001/apis/operators.coreos.com/v1alpha1/namespaces/openshift-cnv/installplans/$(oc get installplan -n openshift-cnv | grep kubevirt-hyperconverged-operator.v4.8.0 | cut -d' ' -f1)/status --data '[{"op": "remove", "path": "/status/conditions"},{"op": "remove", "path": "/status/message"},{"op": "replace", "path": "/status/phase", "value": "Installing"}]'
      4. 运行以下命令来终止 oc proxy 进程:

        $ kill $(ps -C "oc proxy" -o pid=)
      5. 可选:运行以下命令来监控升级状态:

        $ oc get csv
  • 如果您删除版本 4.8 或更高版本中的 OpenShift Virtualization 提供的模板,OpenShift Virtualization Operator 会自动重新创建模板。但是,如果您删除版本 4.8 之前创建的 OpenShift Virtualization 提供的模板,这些以前的模板不会在删除后自动重新创建。因此,引用之前模板的虚拟机的任何编辑或更新都将失败。
  • 如果在源可用前启动克隆操作,则操作会无限期停止。这是因为克隆授权在克隆操作启动前过期。(BZ#1855182)

    • 作为临时解决方案,删除正在请求克隆的 DataVolume 对象。当源可用时,重新创建您删除的 DataVolume 对象,以便克隆操作可以成功完成。
  • 如果您的 OpenShift Container Platform 集群使用 OVN-Kubernetes 作为默认 Container Network Interface(CNI)供应商,则无法将 Linux 网桥或绑定附加到主机的默认接口,因为 OVN-Kubernetes 的主机网络拓扑发生了变化。(BZ#1885605)

    • 作为临时解决方案,您可以使用连接到主机的二级网络接口,或切换到 OpenShift SDN 默认 CNI 供应商。
  • 运行无法实时迁移的虚拟机可能会阻止 OpenShift Container Platform 集群升级。这包括使用 hostpath-provisioner 存储或 SR-IOV 网络接口的虚拟机。(BZ#1858777)

    • 作为临时解决方案,您可以重新配置虚拟机以便在集群升级过程中关闭它们。在虚拟机配置文件的 spec 部分中:

      1. 删除 evictionStrategy: LiveMigrate 字段。有关如何配置驱除策略的更多信息,请参阅配置虚拟机驱除策略
      2. runStrategy 字段设置为 Always
  • 当节点具有不同的 CPU 型号时,实时迁移会失败。即使节点具有相同的物理 CPU 型号,微代码更新引入的差异也会产生同样的问题。这是因为默认设置触发了主机 CPU 透传行为,这与实时迁移不兼容。(BZ#1760028)

    • 作为临时解决方案,请运行以下命令设置默认 CPU 模型:

      注意

      您必须在启动支持实时迁移的虚拟机前进行此更改。

      $ oc annotate --overwrite -n openshift-cnv hyperconverged kubevirt-hyperconverged kubevirt.kubevirt.io/jsonpatch='[
        {
            "op": "add",
            "path": "/spec/configuration/cpuModel",
            "value": "<cpu_model>" 1
        }
      ]'
      1
      <cpu_model> 替换为实际 CPU 型号值。要确定此值,您可以为所有节点运行 oc describe node <node> 并查看 cpu-model-<name> 标签。选择所有节点上出现的 CPU 型号。
  • 在导入 RHV 虚拟机的过程中,如果您为 RHV Manager 输入了错误的凭据,Manager 可能会锁定 admin 用户帐户,因为 vm-import-operator 会尝试多次连接到 RHV API。(BZ#1887140)

    • 要解锁帐户,请登录到 Manager 并输入以下命令:

      $ ovirt-aaa-jdbc-tool user unlock admin
  • 如果您使用 OpenShift Container Platform 4.8 运行 OpenShift Virtualization 2.6.5,则会出现各种问题。您可以通过将 OpenShift Virtualization 升级到 4.8 版本来避免这些问题。

    • 在 web 控制台中,如果您导航到 Virtualization 页面并选择 Create With YAML,会显示以下错误消息:

      The server doesn't have a resource type "kind: VirtualMachine, apiVersion: kubevirt.io/v1"
      • 作为临时解决方案,编辑 VirtualMachine 清单,使 apiVersionkubevirt.io/v1alpha3。例如:

        apiVersion: kubevirt.io/v1alpha3
        kind: VirtualMachine
        metadata:
          annotations:
        ...

        (BZ#1979114)

    • 如果使用 Customize 向导来创建虚拟机,则会显示以下错误消息:

      Error creating virtual machine
    • 当使用 OpenShift Virtualization web 控制台连接到 VNC 控制台时,VNC 控制台总是无法响应。

      • 作为临时解决方案,请通过 CLI 创建虚拟机或升级到 OpenShift Virtualization 4.8。

        (BZ#1977037)

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.