8.13. 高度な仮想マシン管理
8.13.1. 仮想マシンのリソースクォータの使用 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシンのリソースクォータの作成および管理
8.13.1.1. 仮想マシンのリソースクォータ制限の設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、OpenShift Virtualization は、制限を設定する必要があるリソースクォータを namespace が強制する場合、仮想マシン (VM) の CPU およびメモリー制限を自動的に管理します。メモリー制限は要求されたメモリーの 2 倍に自動的に設定され、CPU 制限は仮想 CPU ごとに 1 に設定されます。
alpha.kubevirt.io/auto-memory-limits-ratio ラベルを namespace に追加することで、特定の namespace のメモリー制限比率をカスタマイズできます。たとえば、次のコマンドはメモリー制限比率を 1.2 に設定します。
oc label ns/my-virtualization-project alpha.kubevirt.io/auto-memory-limits-ratio=1.2
$ oc label ns/my-virtualization-project alpha.kubevirt.io/auto-memory-limits-ratio=1.2
リソースクォータ制限を手動で管理することは避けてください。誤った設定やスケジュールの問題を防ぐには、デフォルトをオーバーライドする必要がある場合を除き、OpenShift Virtualization が提供する自動リソース制限管理を利用してください。
requests のみを使用するリソースクォータは、仮想マシンで自動的に機能します。リソースクォータで制限を使用する場合は、仮想マシンに手動でリソース制限を設定する必要があります。リソース limits は、リソース requests より少なくとも 100 MiB 大きくする必要があります。
手順
VirtualMachineマニフェストを編集して、VM の制限を設定します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この設定がサポートされるのは、
limits.memory値がrequests.memory値より少なくとも100Mi大きいためです。
-
VirtualMachineマニフェストを保存します。
8.13.2. 仮想マシンのノードの指定 リンクのコピーリンクがクリップボードにコピーされました!
ノードの配置ルールを使用して、仮想マシン (VM) を特定のノードに配置することができます。
8.13.2.1. 仮想マシンのノード配置について リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) が適切なノードで実行されるようにするには、ノードの配置ルールを設定できます。以下の場合にこれを行うことができます。
- 仮想マシンが複数ある。フォールトトレランスを確保するために、これらを異なるノードで実行する必要がある。
- 2 つの相互間のネットワークトラフィックの多い chatty VM がある。冗長なノード間のルーティングを回避するには、仮想マシンを同じノードで実行します。
- 仮想マシンには、利用可能なすべてのノードにない特定のハードウェア機能が必要です。
- 機能をノードに追加する Pod があり、それらの機能を使用できるように仮想マシンをそのノードに配置する必要があります。
仮想マシンの配置は、ワークロードの既存のノードの配置ルールに基づきます。ワークロードがコンポーネントレベルの特定のノードから除外される場合、仮想マシンはそれらのノードに配置できません。
以下のルールタイプは、VirtualMachine マニフェストの spec フィールドで使用できます。
nodeSelector- このフィールドで指定したキーと値のペアでラベル付けされたノード上で仮想マシンをスケジュールできるようにします。ノードには、リスト表示されたすべてのペアに一致するラベルがなければなりません。
affinity-
より表現的な構文を使用して、ノードと仮想マシンに一致するルールを設定できます。たとえば、ルールがハード要件ではなく基本設定になるように指定し、ルールの条件が満たされない場合も仮想マシンがスケジュールされるようにすることができます。Pod のアフィニティー、Pod のアンチアフィニティー、およびノードのアフィニティーは仮想マシンの配置でサポートされます。Pod のアフィニティーは仮想マシンに対して動作します。
VirtualMachineワークロードタイプはPodオブジェクトに基づくためです。 tolerations一致する taint を持つノードに仮想マシンをスケジュールすることを許容します。ノードに taint が適用されると、そのノードはその taint を許容する仮想マシンのみを受け入れます。
注記アフィニティールールは、スケジューリング時にのみ適用されます。Red Hat OpenShift Service on AWS は、制約が満たされなくなった場合、実行中のワークロードを再スケジュールしません。
8.13.2.2. ノード配置の例 リンクのコピーリンクがクリップボードにコピーされました!
以下の YAML スニペットの例では、nodePlacement、affinity、および tolerations フィールドを使用して仮想マシンのノード配置をカスタマイズします。
8.13.2.2.1. 例: nodeSelector を使用した仮想マシンノードの配置 リンクのコピーリンクがクリップボードにコピーされました!
この例では、仮想マシンに example-key-1 = example-value-1 および example-key-2 = example-value-2 ラベルの両方が含まれるメタデータのあるノードが必要です。
この説明に該当するノードがない場合、仮想マシンはスケジュールされません。
仮想マシンマニフェストの例
8.13.2.2.2. 例: Pod のアフィニティーおよび Pod のアンチアフィニティーによる仮想マシンノードの配置 リンクのコピーリンクがクリップボードにコピーされました!
この例では、仮想マシンはラベル example-key-1 = example-value-1 を持つ実行中の Pod のあるノードでスケジュールされる必要があります。このようなノードで実行中の Pod がない場合、仮想マシンはスケジュールされません。
可能な場合に限り、仮想マシンはラベル example-key-2 = example-value-2 を持つ Pod のあるノードではスケジュールされません。ただし、すべての候補となるノードにこのラベルを持つ Pod がある場合、スケジューラーはこの制約を無視します。
仮想マシンマニフェストの例
8.13.2.2.3. 例: ノードのアフィニティーによる仮想マシンノードの配置 リンクのコピーリンクがクリップボードにコピーされました!
この例では、仮想マシンはラベル example.io/example-key = example-value-1 またはラベル example.io/example-key = example-value-2 を持つノードでスケジュールされる必要があります。この制約は、ラベルのいずれかがノードに存在する場合に満たされます。いずれのラベルも存在しない場合、仮想マシンはスケジュールされません。
可能な場合、スケジューラーはラベル example-node-label-key = example-node-label-value を持つノードを回避します。ただし、すべての候補となるノードにこのラベルがある場合、スケジューラーはこの制約を無視します。
仮想マシンマニフェストの例
8.13.2.2.4. 例: toleration を使用した仮想マシンノードの配置 リンクのコピーリンクがクリップボードにコピーされました!
この例では、仮想マシン用に予約されているノードに、すでに key=virtualization:NoSchedule taint のラベルが付けられています。この仮想マシンには一致する tolerations があるため、この仮想マシンを taint を持つノードにスケジュールできます。
taint を許容する仮想マシンを、その taint を持つノードにスケジュールする必要はありません。
仮想マシンマニフェストの例
8.13.3. デフォルトの CPU モデルの設定 リンクのコピーリンクがクリップボードにコピーされました!
HyperConverged カスタムリソース (CR) の defaultCPUModel 設定を使用して、クラスター全体のデフォルト CPU モデルを定義します。
仮想マシン (VM) の CPU モデルは、仮想マシンおよびクラスター内の CPU モデルの可用性によって異なります。
仮想マシンに定義された CPU モデルがない場合:
-
defaultCPUModelは、クラスター全体のレベルで定義された CPU モデルを使用して自動的に設定されます。
-
仮想マシンとクラスターの両方に CPU モデルが定義されている場合:
- 仮想マシンの CPU モデルが優先されます。
仮想マシンにもクラスターにも CPU モデルが定義されていない場合:
- ホストモデルは、ホストレベルで定義された CPU モデルを使用して自動的に設定されます。
8.13.3.1. デフォルトの CPU モデルの設定 リンクのコピーリンクがクリップボードにコピーされました!
HyperConverged カスタムリソース (CR) を更新して、defaultCPUModel を設定します。OpenShift Virtualization の実行中に、defaultCPUModel を変更できます。
defaultCPUModel では、大文字と小文字が区別されます。
前提条件
- OpenShift CLI (oc) のインストール。
手順
以下のコマンドを実行して
HyperConvergedCR を開きます。oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnvCopy to Clipboard Copied! Toggle word wrap Toggle overflow CR に
defaultCPUModelフィールドを追加し、値をクラスター内に存在する CPU モデルの名前に設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - YAML ファイルをクラスターに適用します。
8.13.4. 仮想マシンに UEFI モードを使用する リンクのコピーリンクがクリップボードにコピーされました!
Unified Extensible Firmware Interface (UEFI) モードで仮想マシン (VM) を起動できます。
8.13.4.1. 仮想マシンの UEFI モードについて リンクのコピーリンクがクリップボードにコピーされました!
レガシー BIOS などの Unified Extensible Firmware Interface (UEFI) は、コンピューターの起動時にハードウェアコンポーネントやオペレーティングシステムのイメージファイルを初期化します。UEFI は BIOS よりも最新の機能とカスタマイズオプションをサポートするため、起動時間を短縮できます。
これは、.efi 拡張子を持つファイルに初期化と起動に関する情報をすべて保存します。このファイルは、EFI System Partition (ESP) と呼ばれる特別なパーティションに保管されます。ESP には、コンピューターにインストールされるオペレーティングシステムのブートローダープログラムも含まれます。
8.13.4.2. UEFI モードでの仮想マシンの起動 リンクのコピーリンクがクリップボードにコピーされました!
VirtualMachine マニフェストを編集して、UEFI モードで起動するように仮想マシンを設定できます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。
手順
VirtualMachineマニフェストファイルを編集または作成します。spec.firmware.bootloaderスタンザを使用して、UEFI モードを設定します。セキュアブートがアクティブな状態の UEFI モードでのブート
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、マニフェストをクラスターに適用します。
oc create -f <file_name>.yaml
$ oc create -f <file_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.13.4.3. 永続的な EFI の有効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスターレベルで RWX ストレージクラスを設定し、仮想マシンの EFI セクションで設定を調整することで、仮想マシンで EFI 永続性を有効にできます。
前提条件
- クラスター管理者の権限がある。
- RWX アクセスモードと FS ボリュームモードをサポートするストレージクラスが必要です。
-
OpenShift CLI (
oc) がインストールされている。
手順
次のコマンドを実行して、
VMPersistentStateフィーチャーゲートを有効にします。oc patch hyperconverged kubevirt-hyperconverged -n openshift-cnv \ --type json -p '[{"op":"replace","path":"/spec/featureGates/VMPersistentState", "value": true}]'$ oc patch hyperconverged kubevirt-hyperconverged -n openshift-cnv \ --type json -p '[{"op":"replace","path":"/spec/featureGates/VMPersistentState", "value": true}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.13.4.4. 永続的な EFI を使用した仮想マシンの設定 リンクのコピーリンクがクリップボードにコピーされました!
マニフェストファイルを編集して、EFI の永続性を有効にするように仮想マシンを設定できます。
前提条件
-
VMPersistentStateフィーチャーゲートが有効になっている。
手順
仮想マシンマニフェストファイルを編集して保存し、設定を適用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.13.5. 仮想マシンの PXE ブートの設定 リンクのコピーリンクがクリップボードにコピーされました!
PXE ブートまたはネットワークブートは OpenShift Virtualization で利用できます。ネットワークブートにより、ローカルに割り当てられたストレージデバイスなしにコンピューターを起動し、オペレーティングシステムまたは他のプログラムを起動し、ロードすることができます。たとえば、これにより、新規ホストのデプロイ時に PXE サーバーから必要な OS イメージを選択できます。
8.13.5.1. MAC アドレスを指定した PXE ブート リンクのコピーリンクがクリップボードにコピーされました!
まず、管理者は PXE ネットワークの NetworkAttachmentDefinition オブジェクトを作成し、ネットワーク経由でクライアントを起動できます。次に、仮想マシンインスタンスの設定ファイルで Network Attachment Definition を参照して仮想マシンインスタンスを起動します。また PXE サーバーで必要な場合には、仮想マシンインスタンスの設定ファイルで MAC アドレスを指定することもできます。
前提条件
- Linux ブリッジが接続されている。
- PXE サーバーがブリッジとして同じ VLAN に接続されている。
-
OpenShift CLI (
oc) がインストールされている。
手順
クラスターに PXE ネットワークを設定します。
PXE ネットワーク
pxe-net-confの Network Attachment Definition ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
NetworkAttachmentDefinitionオブジェクトの名前。- 2
- 設定の名前。設定名を Network Attachment Definition の
name値に一致させることが推奨されます。 - 3
- この Network Attachment Definition のネットワークを提供する Container Network Interface (CNI) プラグインの実際の名前。この例では、Linux bridge CNI プラグインを使用します。OVN-Kubernetes localnet または SR-IOV CNI プラグインを使用することもできます。
- 4
- ノードに設定される Linux ブリッジの名前。
- 5
- オプション: MAC スプーフィングチェックを有効にするフラグ。
trueに設定すると、Pod またはゲストインターフェイスの MAC アドレスを変更できません。この属性により、Pod から出ることができる MAC アドレスは 1 つだけになり、MAC スプーフィング攻撃に対するセキュリティーが確保されます。 - 6
- オプション: VLAN タグ。Node Network Configuration Policy では、追加の VLAN 設定は必要ありません。
- 7
- オプション: 仮想マシンがデフォルト VLAN 経由でブリッジに接続するかどうかを示します。デフォルト値は
trueです。
直前の手順で作成したファイルを使用して Network Attachment Definition を作成します。
oc create -f pxe-net-conf.yaml
$ oc create -f pxe-net-conf.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 仮想マシンインスタンス設定ファイルを、インターフェイスおよびネットワークの詳細を含めるように編集します。
PXE サーバーで必要な場合には、ネットワークおよび MAC アドレスを指定します。MAC アドレスが指定されていない場合、値は自動的に割り当てられます。
bootOrderが1に設定されており、インターフェイスが最初に起動することを確認します。この例では、インターフェイスは<pxe-net>というネットワークに接続されています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記複数のインターフェイスおよびディスクのブートの順序はグローバル順序になります。
オペレーティングシステムのプロビジョニング後に起動が適切に実行されるよう、ブートデバイス番号をディスクに割り当てます。
ディスク
bootOrderの値を2に設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 直前に作成された Network Attachment Definition に接続されるネットワークを指定します。このシナリオでは、
<pxe-net>は<pxe-net-conf>という Network Attachment Definition に接続されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
仮想マシンインスタンスを作成します。
oc create -f vmi-pxe-boot.yaml
$ oc create -f vmi-pxe-boot.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
virtualmachineinstance.kubevirt.io "vmi-pxe-boot" created
virtualmachineinstance.kubevirt.io "vmi-pxe-boot" createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 仮想マシンインスタンスの実行を待機します。
oc get vmi vmi-pxe-boot -o yaml | grep -i phase
$ oc get vmi vmi-pxe-boot -o yaml | grep -i phase phase: RunningCopy to Clipboard Copied! Toggle word wrap Toggle overflow VNC を使用して仮想マシンインスタンスを表示します。
virtctl vnc vmi-pxe-boot
$ virtctl vnc vmi-pxe-bootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ブート画面で、PXE ブートが正常に実行されていることを確認します。
仮想マシンインスタンスにログインします。
virtctl console vmi-pxe-boot
$ virtctl console vmi-pxe-bootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
仮想マシンのインターフェイスおよび MAC アドレスを確認し、ブリッジに接続されたインターフェイスに MAC アドレスが指定されていることを確認します。この場合、PXE ブートには IP アドレスなしに
eth1を使用しています。もう 1 つのインターフェイスeth0は、Red Hat OpenShift Service on AWS から IP アドレスを取得しています。ip addr
$ ip addrCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
... 3. eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether de:00:00:00:00:de brd ff:ff:ff:ff:ff:ff
... 3. eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether de:00:00:00:00:de brd ff:ff:ff:ff:ff:ffCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.13.5.2. OpenShift Virtualization ネットワークの用語集 リンクのコピーリンクがクリップボードにコピーされました!
以下の用語は、OpenShift Virtualization ドキュメント全体で使用されています。
- Container Network Interface (CNI)
- コンテナーのネットワーク接続に重点を置く Cloud Native Computing Foundation プロジェクト。OpenShift Virtualization は CNI プラグインを使用して基本的な Kubernetes ネットワーク機能を強化します。
- Multus
- 複数の CNI の存在を可能にし、Pod または仮想マシンが必要なインターフェイスを使用できるようにする "メタ" CNI プラグイン。
- カスタムリソース定義 (CRD)
- カスタムリソースの定義を可能にする Kubernetes API リソース、または CRD API リソースを使用して定義されるオブジェクト。
- Network Attachment Definition (NAD)
- Multus プロジェクトによって導入された CRD。Pod、仮想マシン、および仮想マシンインスタンスを 1 つ以上のネットワークに接続できるようにします。
- UserDefinedNetwork (UDN)
- ユーザー定義ネットワーク API によって導入された namespace スコープの CRD。これを使用して、テナント namespace を他の namespace から分離するテナントネットワークを作成できます。
- ClusterUserDefinedNetwork (CUDN)
- ユーザー定義ネットワーク API によって導入されたクラスタースコープの CRD。これは、クラスター管理者が複数の namespace 全体で共有ネットワークを作成するために使用できます。
- Node Network Configuration Policy (NNCP)
-
nmstate プロジェクトによって導入された CRD。ノード上で要求されるネットワーク設定を表します。
NodeNetworkConfigurationPolicyマニフェストをクラスターに適用して、インターフェイスの追加および削除など、ノードネットワーク設定を更新します。
8.13.6. 仮想マシンのスケジュール リンクのコピーリンクがクリップボードにコピーされました!
仮想マシンの CPU モデルとポリシー属性が、ノードがサポートする CPU モデルおよびポリシー属性との互換性に対して一致することを確認して、ノードで仮想マシン (VM) をスケジュールできます。
8.13.6.1. ポリシー属性 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) をスケジュールするには、ポリシー属性と、仮想マシンがノードでスケジュールされる際の互換性について一致する CPU 機能を指定します。仮想マシンに指定されるポリシー属性は、その仮想マシンをノードにスケジュールする方法を決定します。
| ポリシー属性 | 説明 |
|---|---|
| force | 仮想マシンは強制的にノードでスケジュールされます。これは、ホストの CPU が仮想マシンの CPU に対応していない場合でも該当します。 |
| require | 仮想マシンが特定の CPU モデルおよび機能仕様で設定されていない場合に仮想マシンに適用されるデフォルトのポリシー。このデフォルトポリシー属性または他のポリシー属性のいずれかを持つ CPU ノードの検出をサポートするようにノードが設定されていない場合、仮想マシンはそのノードでスケジュールされません。ホストの CPU が仮想マシンの CPU をサポートしているか、ハイパーバイザーが対応している CPU モデルをエミュレートできる必要があります。 |
| optional | 仮想マシンがホストの物理マシンの CPU でサポートされている場合は、仮想マシンがノードに追加されます。 |
| disable | 仮想マシンは CPU ノードの検出機能と共にスケジュールすることはできません。 |
| forbid | この機能がホストの CPU でサポートされ、CPU ノード検出が有効になっている場合でも、仮想マシンはスケジュールされません。 |
8.13.6.2. ポリシー属性および CPU 機能の設定 リンクのコピーリンクがクリップボードにコピーされました!
それぞれの仮想マシン (VM) にポリシー属性および CPU 機能を設定して、これがポリシーおよび機能に従ってノードでスケジュールされるようにすることができます。設定する CPU 機能は、ホストの CPU によってサポートされ、またはハイパーバイザーがエミュレートされることを確認するために検証されます。
8.13.6.3. サポートされている CPU モデルでの仮想マシンのスケジューリング リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) の CPU モデルを設定して、CPU モデルがサポートされるノードにこれをスケジュールできます。
手順
仮想マシン設定ファイルの
domainspec を編集します。以下の例は、VM 向けに定義された特定の CPU モデルを示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- VM の CPU モデル。
8.13.6.4. ホストモデルでの仮想マシンのスケジューリング リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) の CPU モデルが host-model に設定されている場合、仮想マシンはスケジュールされているノードの CPU モデルを継承します。
手順
仮想マシン設定ファイルの
domainspec を編集します。以下の例は、仮想マシンに指定されるhost-modelを示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- スケジュールされるノードの CPU モデルを継承する仮想マシン。
8.13.6.5. カスタムスケジューラーを使用した仮想マシンのスケジュール設定 リンクのコピーリンクがクリップボードにコピーされました!
カスタムスケジューラーを使用して、ノード上の仮想マシンをスケジュールできます。
前提条件
- セカンダリースケジューラーがクラスター用に設定されています。
-
OpenShift CLI (
oc) がインストールされている。
手順
VirtualMachineマニフェストを編集して、カスタムスケジューラーを仮想マシン設定に追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- カスタムスケジューラーの名前。
schedulerName値が既存のスケジューラーと一致しない場合、virt-launcherPod は、指定されたスケジューラーが見つかるまでPending状態のままになります。
検証
virt-launcherPod イベントをチェックして、仮想マシンがVirtualMachineマニフェストで指定されたカスタムスケジューラーを使用していることを確認します。次のコマンドを入力して、クラスター内の Pod のリストを表示します。
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE virt-launcher-vm-fedora-dpc87 2/2 Running 0 24m
NAME READY STATUS RESTARTS AGE virt-launcher-vm-fedora-dpc87 2/2 Running 0 24mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して Pod イベントを表示します。
oc describe pod virt-launcher-vm-fedora-dpc87
$ oc describe pod virt-launcher-vm-fedora-dpc87Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力の
Fromフィールドの値により、スケジューラー名がVirtualMachineマニフェストで指定されたカスタムスケジューラーと一致することが検証されます。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.13.7. 仮想マシンの高可用性について リンクのコピーリンクがクリップボードにコピーされました!
修復ノードを設定することで、仮想マシン (VM) の高可用性を有効化できます。
ソフトウェアカタログから Self Node Remediation Operator または Fence Agents Remediation Operator をインストールし、マシンのヘルスチェックまたはノードの修復チェックを有効にすることで、修復ノードを設定できます。
ノードの修復、フェンシング、メンテナンスの詳細は、Red Hat OpenShift のワークロードの可用性 を参照してください。
8.13.8. 仮想マシンのコントロールプレーンのチューニング リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Virtualization は、コントロールプレーンレベルで次のチューニングオプションを提供します。
-
highBurstプロファイルは、固定QPSとburstレートを使用して、1 つのバッチで数百の仮想マシンを作成します。 - ワークロードの種類に基づいた移行設定の調整
8.13.8.1. highBurst プロファイルの設定 リンクのコピーリンクがクリップボードにコピーされました!
highBurst プロファイルを使用して、1 つのクラスター内に多数の仮想マシンを作成および維持します。
前提条件
-
OpenShift CLI (
oc) がインストールされている。
手順
次のパッチを適用して、
highBurstチューニングポリシープロファイルを有効にします。oc patch hyperconverged kubevirt-hyperconverged -n openshift-cnv \ --type=json -p='[{"op": "add", "path": "/spec/tuningPolicy", \ "value": "highBurst"}]'$ oc patch hyperconverged kubevirt-hyperconverged -n openshift-cnv \ --type=json -p='[{"op": "add", "path": "/spec/tuningPolicy", \ "value": "highBurst"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、
highBurstチューニングポリシープロファイルが有効になっていることを確認します。oc get kubevirt.kubevirt.io/kubevirt-kubevirt-hyperconverged \ -n openshift-cnv -o go-template --template='{{range $config, \ $value := .spec.configuration}} {{if eq $config "apiConfiguration" \ "webhookConfiguration" "controllerConfiguration" "handlerConfiguration"}} \ {{"\n"}} {{$config}} = {{$value}} {{end}} {{end}} {{"\n"}}$ oc get kubevirt.kubevirt.io/kubevirt-kubevirt-hyperconverged \ -n openshift-cnv -o go-template --template='{{range $config, \ $value := .spec.configuration}} {{if eq $config "apiConfiguration" \ "webhookConfiguration" "controllerConfiguration" "handlerConfiguration"}} \ {{"\n"}} {{$config}} = {{$value}} {{end}} {{end}} {{"\n"}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow