8.13. 高度な仮想マシン管理
8.13.1. 仮想マシンのリソースクォータの使用 リンクのコピーリンクがクリップボードにコピーされました!
オーバーコミットを防ぎ、ワークロードの安定したパフォーマンスを確保するために、仮想マシンのリソース消費を管理および制御します。
仮想マシンのリソースクォータの作成および管理
8.13.1.1. CLI を使用して仮想マシンのリソースクォータ制限を設定する リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、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
リソースクォータ制限を手動で管理することは避けてください。誤った設定やスケジュールの問題を防ぐには、デフォルトをオーバーライドする必要がある場合を除き、OpenShift Virtualization が提供する自動リソース制限管理を利用してください。
requests のみを使用するリソースクォータは、仮想マシンで自動的に機能します。リソースクォータで制限を使用する場合は、仮想マシンに手動でリソース制限を設定する必要があります。spec.template.spec.domain.resources.limits.memory の値で定義されるメモリーリソースの制限は、少なくとも 500 MiB、または spec.template.spec.domain.memory.guest の値より 2% 大きい値である必要があります。
手順
VirtualMachineマニフェストを編集して、VM の制限を設定します。以下に例を示します。apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: with-limits spec: runStrategy: Halted template: spec: domain: memory: guest: 128Mi resources: limits: memory: 256Mi以下は、
- spec.template.spec.domain.memory.guest
- 仮想マシン内のゲストオペレーティングシステムに表示される実際の RAM 容量を指定します。
- spec.template.spec.domain.resources.limits.memory
仮想マシンをホストする
virt-launcherPod による総メモリー消費量のハードリミットを指定します。この制限には、ゲストオペレーティングシステムの RAM 容量とハイパーバイザーの実行時リソース消費量の両方を考慮する必要があります。この設定例は、
spec.template.spec.domain.resources.limits.memoryの値がspec.template.spec.domain.memory.guestの値より少なくとも100Mi大きいためサポートされています。
-
VirtualMachineマニフェストを保存します。
8.13.1.2. アプリケーション認識型クォータ Operator の理解 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーション認識クォータ (AAQ) オペレーターは、Kubernetes ネイティブの ResourceQuota を 拡張し、Pod と仮想マシン (仮想マシン) が混在する環境における仮想マシンリソースの消費量を測定します。
AAQ は、仮想化ワークロード向けに設計されたクォータ強制機能を提供します。
- Kubernetes リソースクォータ
- Pod レベルでのリソース制限を測定し、適用します。仮想マシンに適用した場合、ハイパーバイザーのオーバーヘッドや Pod のインフラストラクチャーを含む、仮想マシン Pod 全体の資源消費量を測定するため、実際の仮想マシンリソース割り当ては反映されません。
- アプリケーション認識型クォータ (AAQ)
- ResourceQuota の機能を拡張し、仮想マシンのリソース消費量を正確に測定および強制します。AAQ は仮想化レイヤーを理解しており、Pod のオーバーヘッドとは別に、仮想マシンに割り当てられた実際の仮想 CPU とメモリーを測定できます。
AAQ は 2 種類のクォータをサポートしています。
- プロジェクト範囲に応じたクォータ
- 特定のネームスペースまたはプロジェクトにリソース制限を適用します。これらは、仮想化ワークロードの最も一般的な使用例です。
- クラスタースコープのクォータ
- クラスター全体にリソース制限を適用します。これらは、クラスター全体にわたるリソースの強制適用が必要な高度なシナリオで役立ちます。
AAQ を有効にする場合は、クォータ計算方法を設定する必要があります。この設定は、AAQ がクラスター全体で仮想マシンリソースの消費量を測定する方法を決定します。
- 仮想リソース
- Pod の実行時オーバーヘッドを除いた、仮想マシン (VM) に割り当てられた仮想 CPU とメモリーのみを測定します。これは仮想化ワークロードのデフォルトオプションです。
- 仮想マシンインスタンス (VMI)Pod の使用状況
- 仮想マシンと Pod の実行時オーバーヘッドの両方を含め、VMPod の仮想 CPU とメモリーの総消費量を測定します。
- 専用の仮想リソース
- 仮想マシンおよびそれらに関連付けられた Pod に割り当てられた仮想 CPU とメモリーのリソースを測定し、各タイプごとにクォータの使用状況を個別に追跡します。
8.13.1.3. アプリケーション認識クォータ Operator を有効にする リンクのコピーリンクがクリップボードにコピーされました!
アプリケーション認識クォータ (AAQ) オペレータを有効にしてリソースクォータを管理し、ネイティブのリソース管理機能を拡張します。Web コンソールから AAQ を有効にすると、CLI を使用して HyperConverged カスタムリソースを手動で編集する必要がなくなります。
前提条件
- クラスター管理者の権限がある。
- OpenShift Virtualization オペレーターがインストールされ、実行されています。
手順
-
OpenShift Dedicated の Web コンソールで、[仮想化]
[設定] をクリックします。 リソース管理 で、アプリケーション認識クォータ (AAQ) をオンに切り替えます。
オペレーターデプロイメントは自動的に起動します。オペレーター Pod が実行されると、ステータスが 無効 から 有効 に変わります。
オプション: クォータ計算方法 フィールドの横にある 編集 アイコンをクリックすると、計算方法を変更できます。
以下のオプションを含むモーダルダイアログが表示されます。
- 仮想リソース: 仮想マシン (VM) に割り当てられた仮想 CPU とメモリーのみを測定し、Pod の実行時オーバーヘッドは除外します。これは仮想化ワークロードのデフォルトオプションです。
- 仮想マシンインスタンス (VMI)Pod の使用状況: 仮想マシンと Pod の実行時オーバーヘッドの両方を含め、仮想マシン Pod の仮想 CPU とメモリーの合計消費量を測定します。
- 専用仮想リソース: 仮想マシンおよびそれに関連付けられた Pod に割り当てられた仮想 CPU およびメモリーリソースを測定し、各タイプごとにクォータの使用状況を個別に追跡します。
- ご希望のクォータ計算方法を選択し、保存 をクリックしてください。
検証
- 左側のナビゲーションメニューの 仮想化 の下に、新しい クォータ オプションが表示されていることを確認してください。これは、AAQ がクォータの作成と管理に対応できる状態にあることを示しています。
8.13.1.4. Web コンソールを使用して仮想マシンのクォータを作成する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dedicated Web コンソールのガイド付きフォームを使用すると、仮想マシンのリソース消費を制限するアプリケーション認識クォータ (AAQ) クォータを作成できます。この形式は、シンプルな仮想化クォータの使用例において推奨される方法です。
前提条件
- クラスター管理者の権限がある。
- お使いのクラスターでは、アプリケーション認識クォータ演算子が有効になっています。アプリケーション認識クォータ演算子の有効化を 参照してください。
- クォータを作成するプロジェクトはすでに存在します。
手順
-
OpenShift Dedicated の Web コンソールで、[仮想化]
[クォータ] をクリックします。 - クォータを作成 をクリックします。
ドロップダウンメニューで フォーム付き を選択します。
クォータ作成フォームが表示されます。
名前 欄に、クォータの名前を入力してください。
そのプロジェクト内で一意な名前にする必要があります。
このクォータを適用するプロジェクトを選択してください。
デフォルトでは、現在のプロジェクトが選択されます。必要に応じて、ドロップダウンメニューをクリックして別のプロジェクトを選択できます。
注記選択したプロジェクトに Kubernetes の
リソースクォータがすでに存在する場合、既存のリソースクォータを表示するためのリンクを含むアラートが表示されます。AAQ クォータを作成することは可能ですが、両方のクォータがプロジェクトに適用されます。クォータの CPU、メモリー、および VMI の制限を設定します。
表示される項目は、選択したクォータ計算方法によって異なります。以下に例を示します。
仮想リソースまたは専用仮想リソースのクォータ計算方法の場合、クォータには Pod のオーバーヘッドは含まれません。- 仮想 CPU 割り当て フィールドを使用して、インフラストラクチャーのオーバーヘッドを除いて、プロジェクト内のすべての仮想マシンに許可される仮想 CPU の最大数を設定します。
- 仮想メモリー割り当て フィールドを使用して、インフラストラクチャーのオーバーヘッドを除いた最大メモリー容量を GiB 単位で設定します。
- VMI 制限 フィールドを使用して、仮想マシンインスタンスの最大数を設定します。
仮想マシンインスタンス (VMI) の Pod 使用量クォータ計算方法では、クォータには Pod のオーバーヘッドが含まれます。- CPU 割り当て フィールドを使用して、仮想マシンワークロードを実行する Pod の最大 CPU コア数を設定します。
- 仮想マシンワークロードを実行する Pod の最大メモリー容量を GiB 単位で設定するには、メモリー割り当て フィールドを使用します。
VMI 制限 フィールドを使用して、仮想マシンインスタンスの最大数を設定します。
注記ライブマイグレーションのオーバーヘッドは、
仮想マシンインスタンス (VMI)Pod の使用クォータ計算方法から除外されます。
設定を確認し、Create をクリックします。
クォータが作成され、クォータの詳細ページにリダイレクトされます。新しいクォータが有効になり、選択されたプロジェクト内の仮想マシンにリソース制限が適用されます。
検証
-
OpenShift Dedicated の Web コンソールで、[仮想化]
[クォータ] をクリックします。 - クォータリストで、新しく作成したクォータを探してください。
- クォータ名がリストに表示され、正しいプロジェクトとリソース制限が設定されていることを確認してください。
- クォータ名をクリックすると詳細ページが開きますので、すべての設定が正しいことを確認してください。
8.13.1.5. リストビューを使用して仮想マシンのクォータを管理する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dedicated Web コンソールのアプリケーション認識クォータ (AAQ) クォータページでは、AAQ オペレーターによって管理されるすべてのクォータを一元的に表示できます。このページから、クォータ状況、使用状況を確認したり、クォータの編集や削除などの管理操作を実行したりできます。
前提条件
- クラスター管理者の権限がある。
- お使いのクラスターでは、アプリケーション認識クォータ演算子が有効になっています。
- ハイパーコンバージド Operator (HCO) で設定されたラベルセレクターに一致する名前空間に、少なくとも 1 つのアプリケーション認識クォータが存在します。
手順
OpenShift Dedicated の Web コンソールで、[仮想化]
[クォータ] をクリックします。 クォータリストビューが表示され、デフォルトではプロジェクトスコープのすべての AAQ クォータが表示されます。
クラスター スコープのクォータを表示するには、クラスタースコープのクォータ タブをクリックします。
このタブは、クラスタースコープのクォータがクラスター内で定義されている場合にのみ表示されます。
注記クラスタースコープのクォータは、YAML を使用してのみ作成または編集できます。フォームベースの作成オプションは、クラスタースコープのクォータについては、その複雑さゆえに利用できません。
- 特定のクォータに関する詳細情報を表示するには、クォータ名をクリックしてクォータの詳細ページを開きます。
クォータを編集するには、クォータ行の末尾にあるオプションメニュー
をクリックします。
クォータの編集 を選択してください。
編集フォームには、現在のクォータ設定が表示されます。
リソース制限の変更が完了したら、保存 をクリックしてください。
注記クォータが最初に YAML による詳細設定で作成された場合、[クォータの編集] を クリックすると、フォームではなく YAML エディターが開きます。
クォータを削除するには、クォータ行の末尾にあるオプションメニュー
をクリックし、[クォータの削除] を 選択します。確認ダイアログが表示されます。
クォータを削除するには、削除 をクリックしてください。
警告クォータを削除すると、そのクォータに対するすべてのリソース制限が解除されます。影響を受けるプロジェクト内の仮想マシンは、クォータ制限の対象外となります。
リストビューから新しいクォータを作成するには、[クォータの作成] をクリックします。
ドロップダウンメニューからオプションを選択してください。
- フォームを使用する場合: シンプルな仮想マシンクォータの使用例向けに、フォームベースの作成エクスペリエンスを開きます。
- YAML を使用する場合:Pod の制限やその他のリソースタイプを含む高度なクォータ設定用の YAML エディターを開きます。
8.13.1.6. Web コンソールを使用して仮想マシンクォータの詳細を管理する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dedicated Web コンソールのクォータ詳細ページには、リソース制限、現在の使用状況、クォータ容量の消費状況の視覚化など、アプリケーション認識クォータ (AAQ) に関する情報が表示されます。
クラスタースコープのクォータは、これらのクォータに必要な複雑さのため、YAML 定義のみを表示します。
前提条件
- クラスター管理者の権限がある。
- お使いのクラスターでは、アプリケーション認識クォータ演算子が有効になっています。
- お使いのクラスターには、アプリケーション認識型クォータが存在します。
手順
-
OpenShift Dedicated の Web コンソールで、[仮想化]
[クォータ] をクリックします。 クォータ名をクリックすると、クォータの詳細 ビューが開きます。
クォータ詳細 ビューには、視覚的な指標、クォータメタデータ、および表形式のデータが表示されます。
- 円形の利用状況チャートは、プロジェクトにおけるリソース消費量を視覚的に表します。
- 詳細 要素には、クォータ名、スコープ、適用されたラベル、プロジェクトなどのメタデータが含まれます。
クォータ詳細 要素は、各リソースタイプの現在および最大使用率を表示する表形式のビューを提供します。
注記この AAQ クォータと同じプロジェクトに Kubernetes
ResourceQuotaも存在する場合、詳細ページの上部に ResourceQuota を表示するためのリンクを含むアラートが表示されます。クォータは両方ともプロジェクトに同時に適用されます。
- オプション: YAML タブをクリックして、クォータのリソース設定を確認してください。
- オプション: アクション パネルを使用して、クォータを編集または削除します。