3.7. 既知の問題
OpenShift Virtualization 4.8.7 に更新すると、一部の仮想マシン (VM) がライブマイグレーションループでスタックします。これは、仮想マシンマニフェストの
spec.volumes.containerDisk.path
フィールドが相対パスに設定されている場合に発生します。-
回避策として、仮想マシンマニフェストを削除して再作成し、
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
このバグは、OpenShift Virtualization がバージョン 2.5.0 以降で最初にデプロイされたクラスターには影響しません。(BZ#1986989)
回避策として、
HyperConverged
カスタムリソース定義 (CRD) からv1alpha1
バージョンを削除し、アップグレードプロセスを再開します。次のコマンドを実行して、クラスターへのプロキシー接続を開きます。
$ oc proxy &
次のコマンドを実行して、
HyperConvergedCRD
の.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"]}]'
次のコマンドを実行して、アップグレードプロセスを再開します。
$ 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"}]'
次のコマンドを実行して、
oc proxy
プロセスを強制終了します。$ kill $(ps -C "oc proxy" -o pid=)
オプション: 次のコマンドを実行して、アップグレードステータスを監視します。
$ 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) プロバイダーとして使用する場合、OVN-Kubernetes のホストネットワークトポロジーの変更により、Linux ブリッジまたはボンディングをホストのデフォルトインターフェイスに割り当てることはできません。(BZ#1885605)
- 回避策として、ホストに接続されたセカンダリーネットワークインターフェイスを使用するか、OpenShift SDN デフォルト CNI プロバイダーに切り替えることができます。
ライブマイグレーションを実行できない仮想マシンを実行すると、OpenShift Container Platform クラスターのアップグレードがブロックされる可能性があります。これには、hostpath-provisioner ストレージまたは SR-IOV ネットワークインターフェイスを使用する仮想マシンが含まれます。(BZ#1858777)
回避策として、仮想マシンを再設定し、クラスターのアップグレード時にそれらの電源をオフにするようにできます。仮想マシン設定ファイルの
spec
セクションで、以下を実行します。-
evictionStrategy: LiveMigrate
フィールドを削除します。エビクションストラテジーの設定方法についての詳細は、仮想マシンのエビクションストラテジーの設定 を参照してください。 -
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 の誤った認証情報を入力すると、
vm-import-operator
が RHV API への接続を繰り返し試行するため、Manager は admin ユーザーアカウントをロックする可能性があります。(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"
回避策として、
apiVersion
がkubevirt.io/v1alpha3
になるようにVirtualMachine
マニフェストを編集します。以下に例を示します。apiVersion: kubevirt.io/v1alpha3 kind: VirtualMachine metadata: annotations: ...
Customize ウィザードを使用して仮想マシンを作成すると、以下のエラーメッセージが表示されます。
Error creating virtual machine
回避策として、マニフェストをコピーし、CLI から仮想マシンを作成します。
OpenShift Virtualization Web コンソールを使用して VNC コンソールに接続すると、VNC コンソールは常に応答に失敗します。
回避策として、CLI から仮想マシンを作成するか、OpenShift Virtualization 4.8 にアップグレードします。