9.14. 仮想 Trusted Platform Module (vTPM) デバイスを使用する
Windows 11 や、Trusted Platform Module を必要とするその他のワークロードを実行するには、新規または既存の仮想マシンに仮想 TPM(vTPM) を追加できます。VirtualMachine または VirtualMachineInstance の マニフェストを編集することで、これを有効にできます。
OpenShift Virtualization 4.18 以降では、vTPM デバイスが接続されている 仮想マシン (仮想マシン) をエクスポートしたり、これらの仮想マシンのスナップショットを作成したり、これらのスナップショットから仮想マシンを復元したりでき ます。ただし、vTPM デバイスがアタッチされた仮想マシンのクローン作成や、そのスナップショットからの新しい仮想マシンの作成はサポートされていません。
9.14.1. vTPM デバイスについて リンクのコピーリンクがクリップボードにコピーされました!
仮想トラステッドプラットフォームモジュール (vTPM) デバイスは、物理トラステッドプラットフォームモジュール (TPM) ハードウェアチップのように機能します。vTPM デバイスはどのオペレーティングシステムでも使用できますが、Windows 11 をインストールまたは起動するには TPM チップが必要です。
vTPM デバイスを使用すると、Windows 11 イメージから作成された VM を物理 TPM チップなしで機能させることができます。
OpenShift Virtualization は、仮想マシンの永続ボリューム要求 (PVC) を使用して、vTPM デバイス状態の永続化をサポートします。この PVC のストレージクラスを指定しない場合、OpenShift Virtualization は仮想化ワークロードのデフォルトのストレージクラスを使用します。仮想化ワークロードのデフォルトのストレージクラスが設定されていない場合、OpenShift Virtualization はクラスターのデフォルトのストレージクラスを使用します。
仮想化ワークロードのデフォルトとしてマークされているストレージクラスには、storageclass.kubevirt.io/is-default-virt-class のアノテーションが "true" に設定されています。このストレージクラスは、次のコマンドを実行すると見つかります。
$ oc get sc -o jsonpath='{range .items[?(.metadata.annotations.storageclass\.kubevirt\.io/is-default-virt-class=="true")]}{.metadata.name}{"\n"}{end}'
同様に、クラスターのデフォルトのストレージクラスでは、storageclass.kubernetes.io/is-default-class のアノテーションが "true" に設定されています。このストレージクラスを見つけるには、次のコマンドを実行します。
$ oc get sc -o jsonpath='{range .items[?(.metadata.annotations.storageclass\.kubernetes\.io/is-default-class=="true")]}{.metadata.name}{"\n"}{end}'
一貫した動作を確保するには、仮想化ワークロードとクラスターに対して、デフォルトのストレージクラスをそれぞれ 1 つずつ設定します。
HyperConverged カスタムリソース (CR) で vmStateStorageClass 属性を設定することで、ストレージクラスを明示的に指定することが推奨されます。
kind: HyperConverged
metadata:
name: kubevirt-hyperconverged
spec:
vmStateStorageClass: <storage_class_name>
# ...
vTPM を有効にしないと、ノードに TPM デバイスがある場合でも、VM は TPM デバイスを認識しません。