9.12. 仮想 Trusted Platform Module (vTPM) デバイスを使用する
Windows 11 や、Trusted Platform Module を必要とするその他のワークロードを実行するには、新規または既存の仮想マシンに仮想 TPM(vTPM) を追加できます。VirtualMachine または VirtualMachineInstance の マニフェストを編集することで、これを有効にできます。
OpenShift Virtualization 4.18 以降では、vTPM デバイスがアタッチされた 仮想マシン (VM) をエクスポート し、これらの仮想マシンのスナップショットを作成 して、これらのスナップショットから仮想マシンを復元 できます。ただし、vTPM デバイスがアタッチされた仮想マシンのクローン作成や、そのスナップショットからの新しい仮想マシンの作成はサポートされていません。
9.12.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 デバイスを認識しません。