第6章 仮想マシンの作成
6.1. インスタンスタイプからの仮想マシンの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS クラシックアーキテクチャーの Web コンソールを使用して仮想マシン (VM) を作成する場合でも、CLI を使用して作成する場合でも、インスタンスタイプを使用することで仮想マシンの作成を簡素化できます。
インスタンスタイプからの仮想マシンの作成は、OpenShift Virtualization 4.15 以降、Red Hat OpenShift Service on AWS クラシックアーキテクチャークラスターでサポートされています。OpenShift Virtualization 4.14 では、インスタンスタイプからの仮想マシンの作成はテクノロジープレビュー機能であり、Red Hat OpenShift Service on AWS クラシックアーキテクチャークラスターではサポートされていません。
6.1.1. インスタンスタイプについて リンクのコピーリンクがクリップボードにコピーされました!
インスタンスタイプは、新しい仮想マシンに適用するリソースと特性を定義できる再利用可能なオブジェクトです。カスタムインスタンスタイプを定義したり、OpenShift Virtualization のインストール時に含まれるさまざまなインスタンスタイプを使用したりできます。
新しいインスタンスタイプを作成するには、まず手動で、または virtctl
CLI ツールを使用してマニフェストを作成する必要があります。次に、マニフェストをクラスターに適用してインスタンスタイプオブジェクトを作成します。
OpenShift Virtualization は、インスタンスタイプを設定するための 2 つの CRD を提供します。
-
namespace 付きのオブジェクト:
VirtualMachineInstancetype
-
クラスター全体のオブジェクト:
VirtualMachineClusterInstancetype
これらのオブジェクトは同じ VirtualMachineInstancetypeSpec
を使用します。
6.1.1.1. 必須の属性 リンクのコピーリンクがクリップボードにコピーされました!
インスタンスタイプを設定するときは、cpu
および memory
属性を定義する必要があります。その他の属性はオプションです。
インスタンスタイプから仮想マシンを作成する場合は、インスタンスタイプで定義されているパラメーターをオーバーライドすることはできません。
インスタンスタイプには定義された CPU およびメモリー属性が必要であるため、OpenShift Virtualization は、インスタンスタイプから仮想マシンを作成するときに、これらのリソースに対する追加の要求を常に拒否します。
インスタンスタイプマニフェストを手動で作成できます。以下に例を示します。
必須フィールドを含む YAML ファイルの例
virtctl
CLI ユーティリティーを使用してインスタンスタイプマニフェストを作成できます。以下に例を示します。
必須フィールドを含む virtctl
コマンドの例
virtctl create instancetype --cpu 2 --memory 256Mi
$ virtctl create instancetype --cpu 2 --memory 256Mi
ここでは、以下のようになります。
--cpu <value>
- ゲストに割り当てる仮想 CPU の数を指定します。必須。
--memory <value>
- ゲストに割り当てるメモリーの量を指定します。必須。
次のコマンドを実行すると、新しいマニフェストからオブジェクトをすぐに作成できます。
virtctl create instancetype --cpu 2 --memory 256Mi | oc apply -f -
$ virtctl create instancetype --cpu 2 --memory 256Mi | oc apply -f -
6.1.1.2. オプション属性 リンクのコピーリンクがクリップボードにコピーされました!
必須の cpu
および memory
属性に加えて、VirtualMachineInstancetypeSpec
に次のオプション属性を含めることができます。
annotations
- 仮想マシンに適用するアノテーションをリスト表示します。
gpus
- パススルー用の vGPU をリスト表示します。
hostDevices
- パススルー用のホストデバイスをリスト表示します。
ioThreadsPolicy
- 専用ディスクアクセスを管理するための IO スレッドポリシーを定義します。
launchSecurity
- セキュア暗号化仮想化 (SEV) を設定します。
nodeSelector
- この仮想マシンがスケジュールされているノードを制御するためのノードセレクターを指定します。
schedulerName
- デフォルトのスケジューラーの代わりに、この仮想マシンに使用するカスタムスケジューラーを定義します。
6.1.2. 定義済みのインスタンスタイプ リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Virtualization には、common-instancetypes
と呼ばれる事前定義されたインスタンスタイプのセットが含まれています。特定のワークロードに特化したものもあれば、ワークロードに依存しないものもあります。
これらのインスタンスタイプリソースは、シリーズ、バージョン、サイズに応じて名前が付けられます。サイズの値は .
区切り文字に続き、範囲は nano
から 8xlarge
です。
ユースケース | シリーズ | 特徴 | 仮想 CPU とメモリーの比率 | リソースの例 |
---|---|---|---|---|
ネットワーク | N |
| 1:2 |
|
過剰コミットメント | O |
| 1:4 |
|
コンピュート専用 | CX |
| 1:2 |
|
一般的用途 | U |
| 1:4 |
|
メモリー集約型 | M |
| 1:8 |
|
6.1.3. インスタンスタイプまたは設定の指定 リンクのコピーリンクがクリップボードにコピーされました!
インスタンスタイプまたは優先度、またはその両方を指定して、複数の仮想マシンで再利用するためのワークロードサイジングとランタイム特性を定義できます。
6.1.3.1. フラグを使用したインスタンスタイプと設定の指定 リンクのコピーリンクがクリップボードにコピーされました!
フラグを使用して、インスタンスタイプおよび設定を指定します。
前提条件
- クラスターにインスタンスタイプ、プリファレンス、またはその両方がある。
手順
仮想マシンを作成するときにインスタンスタイプを指定するには、
--instancetype
フラグを使用します。設定を指定するには、--preference
フラグを使用します。次の例には両方のフラグが含まれています。virtctl create vm --instancetype <my_instancetype> --preference <my_preference>
$ virtctl create vm --instancetype <my_instancetype> --preference <my_preference>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: namespace 付きのインスタンスタイプまたは設定を指定するには、
--instancetype
または--preference
フラグコマンドに渡される値にkind
を含めます。namespace 付きのインスタンスタイプまたは設定は、仮想マシンを作成するのと同じ namespace に存在する必要があります。次の例には、namespace 付きインスタンスタイプと namespace 付き設定のフラグが含まれています。virtctl create vm --instancetype virtualmachineinstancetype/<my_instancetype> --preference virtualmachinepreference/<my_preference>
$ virtctl create vm --instancetype virtualmachineinstancetype/<my_instancetype> --preference virtualmachinepreference/<my_preference>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.3.2. インスタンスタイプまたは設定の推測 リンクのコピーリンクがクリップボードにコピーされました!
インスタンスタイプの推論、設定、またはその両方がデフォルトで有効になっており、inferFromVolume
属性の inferFromVolumeFailure
ポリシーは Ignore
に設定されています。ブートボリュームから推測する場合、エラーは無視され、インスタンスタイプと設定が未設定のままで仮想マシンが作成されます。
ただし、フラグが適用されると、inferFromVolumeFailure
ポリシーはデフォルトで Reject
に設定されます。ブートボリュームから推測する場合、エラーが発生すると、その仮想マシンの作成が拒否されます。
--infer-instancetype
フラグと --infer-preference
フラグを使用すると、仮想マシンのワークロードのサイズ設定と実行時特性を定義するために使用するインスタンスタイプ、設定、またはその両方を推測できます。
前提条件
-
virtctl
ツールがインストールされている。
手順
仮想マシンの起動に使用されるボリュームから明示的にインスタンスタイプを推測するには、
--infer-instancetype
フラグを使用します。設定を明示的に推測するには、--infer-preference
フラグを使用します。次のコマンドには両方のフラグが含まれます。virtctl create vm --volume-import type:pvc,src:my-ns/my-pvc --infer-instancetype --infer-preference
$ virtctl create vm --volume-import type:pvc,src:my-ns/my-pvc --infer-instancetype --infer-preference
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 仮想マシンのブートに使用されるボリューム以外のボリュームからインスタンスタイプまたは設定を推測するには、
--infer-instancetype-from
および--infer-preference-from
フラグを使用して、仮想マシンのボリュームのいずれかを指定します。以下の例では、仮想マシンはvolume-a
から起動しますが、volume-b
からインスタンスタイプと設定を推測しています。virtctl create vm \ --volume-import=type:pvc,src:my-ns/my-pvc-a,name:volume-a \ --volume-import=type:pvc,src:my-ns/my-pvc-b,name:volume-b \ --infer-instancetype-from volume-b \ --infer-preference-from volume-b
$ virtctl create vm \ --volume-import=type:pvc,src:my-ns/my-pvc-a,name:volume-a \ --volume-import=type:pvc,src:my-ns/my-pvc-b,name:volume-b \ --infer-instancetype-from volume-b \ --infer-preference-from volume-b
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.3.3. inferFromVolume ラベルの設定 リンクのコピーリンクがクリップボードにコピーされました!
PVC、データソース、またはデータボリュームで次のラベルを使用して、ボリュームから起動するときに使用するインスタンスタイプ、設定、またはその両方を推論メカニズムに指示します。
-
クラスター全体のインスタンスのタイプ:
instancetype.kubevirt.io/default-instancetype
ラベル。 -
namespace 付きのインスタンスタイプ:
instancetype.kubevirt.io/default-instancetype-kind
ラベル。空のままにすると、デフォルトでVirtualMachineClusterInstancetype
ラベルになります。 -
クラスター全体の設定:
instancetype.kubevirt.io/default-preference
ラベル。 -
namespace 付きの設定:
instancetype.kubevirt.io/default-preference-kind
ラベル。空のままにすると、デフォルトでVirtualMachineClusterPreference
ラベルになります。
前提条件
- クラスターにインスタンスタイプ、プリファレンス、またはその両方がある。
-
OpenShift CLI (
oc
) がインストールされている。
手順
データソースにラベルを適用するには、
oc label
を使用します。次のコマンドは、クラスター全体のインスタンスタイプを指すラベルを適用します。oc label DataSource foo instancetype.kubevirt.io/default-instancetype=<my_instancetype>
$ oc label DataSource foo instancetype.kubevirt.io/default-instancetype=<my_instancetype>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.4. Web コンソールを使用したインスタンスタイプからの仮想マシンの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS クラシックアーキテクチャーの Web コンソールを使用して、インスタンスタイプから仮想マシン (VM) を作成できます。Web コンソールを使用して、既存のスナップショットをコピーするか仮想マシンを複製して、仮想マシンを作成することもできます。
使用可能な起動可能なボリュームのリストから仮想マシンを作成できます。Linux ベースまたは Windows ベースのボリュームをリストに追加できます。
手順
Web コンソールで、Virtualization
Catalog に移動します。 InstanceTypes タブがデフォルトで開きます。
注記仮想マシン設定を使用する IBM Z® システムで downward-metrics デバイスを設定する場合は、
spec.preference.name
値をrhel.9.s390x
に設定するか、*.s390x
という形式の使用可能な別の設定を指定する必要があります。次のオプションのいずれかを選択します。
リストから適切な起動可能なボリュームを選択します。リストが切り捨てられている場合は、Show all ボタンをクリックしてリスト全体を表示します。
注記ブート可能ボリュームテーブルには、
openshift-virtualization-os-images
namespace 内のinstancetype.kubevirt.io/default-preference
ラベルを持つボリュームのみリストされます。- オプション: 星アイコンをクリックして、ブート可能ボリュームをお気に入りとして指定します。星付きのブート可能ボリュームは、ボリュームリストの最初に表示されます。
新しいボリュームをアップロードするか、既存の永続ボリューム要求 (PVC)、ボリュームスナップショット、または
containerDisk
ボリュームを使用するには Add volume をクリックします。Save をクリックします。クラスターで使用できないオペレーティングシステムのロゴは、リストの下部に表示されます。Add volume リンクをクリックすると、必要なオペレーティングシステムのボリュームを追加できます。
さらに、Windows の起動可能なボリュームを作成する クイックスタートへのリンクもあります。Select volume to boot from の横にある疑問符アイコンの上にポインターを置くと、ポップオーバーに同じリンクが表示されます。
環境をインストールした直後、または環境が切断された直後は、起動元のボリュームのリストは空になります。その場合、Windows、RHEL、Linux の 3 つのオペレーティングシステムのロゴが表示されます。Add volume ボタンをクリックすると、要件を満たす新しいボリュームを追加できます。
- インスタンスタイプのタイルをクリックし、ワークロードに適したリソースサイズを選択します。
オプション: 起動元のボリュームに適用される仮想マシンの詳細 (仮想マシンの名前を含む) を選択します。
Linux ベースのボリュームの場合は、次の手順に従って SSH を設定します。
- プロジェクトに SSH 公開鍵をまだ追加していない場合は、VirtualMachine details セクションの Authorized SSH key の横にある編集アイコンをクリックします。
以下のオプションのいずれかを選択します。
- Use existing: シークレットリストからシークレットを選択します。
Add new: 以下の手順に従ってください。
- SSH 公開鍵ファイルを参照するか、ファイルを鍵のフィールドに貼り付けます。
- シークレット名を入力します。
- オプション: Automatically apply this key to any new VirtualMachine you create in this project を選択します。
- Save をクリックします。
Windows ボリュームの場合は、次のいずれかの手順に従って sysprep オプションを設定します。
Windows ボリュームに sysprep オプションをまだ追加していない場合は、次の手順に従います。
- VirtualMachine details セクションの Sysprep の横にある編集アイコンをクリックします。
- Autoattend.xml アンサーファイルを追加します。
- Unattend.xml アンサーファイルを追加します。
- Save をクリックします。
Windows ボリュームに既存の sysprep オプションを使用する場合は、次の手順に従います。
- 既存の sysprep を添付 をクリックします。
- 既存の sysprep Unattend.xml アンサーファイルの名前を入力します。
- Save をクリックします。
オプション: Windows 仮想マシンを作成する場合は、Windows ドライバーディスクをマウントできます。
- Customize VirtualMachine ボタンをクリックします。
- VirtualMachine details ページで、Storage をクリックします。
- Mount Windows drivers disk チェックボックスを選択します。
- オプション: View YAML & CLI をクリックして YAML ファイルを表示します。CLI をクリックして CLI コマンドを表示します。YAML ファイルの内容または CLI コマンドをダウンロードまたはコピーすることもできます。
- Create VirtualMachine をクリックします。
仮想マシンの作成後、VirtualMachine details ページでステータスを監視できます。
6.1.5. 仮想マシンのインスタンスタイプの変更 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールを使用して、実行中の仮想マシン (VM) に関連付けられているインスタンスタイプを変更できます。変更は即座に有効になります。
前提条件
- インスタンスタイプを使用して仮想マシンを作成している。
手順
-
Red Hat OpenShift Service on AWS クラシックアーキテクチャーの Web コンソールで、Virtualization
VirtualMachines をクリックします。 - 仮想マシンを選択して、VirtualMachine details ページを開きます。
- Configuration タブをクリックします。
- Details タブで、インスタンスタイプテキストをクリックして Edit Instancetype ダイアログを開きます。たとえば、1 CPU | 2 GiB Memory をクリックします。
Series および Size リストを使用して、インスタンスタイプを編集します。
- Series リストからアイテムを選択して、そのシリーズに関連するサイズを表示します。たとえば、General Purpose を選択します。
- Size リストから仮想マシンの新しいインスタンスタイプを選択します。たとえば、medium: 1 CPUs, 4Gi Memory を選択します。これは、General Purpose シリーズで利用できます。
- Save をクリックします。
検証
- YAML タブをクリックします。
- Reload をクリックします。
- 仮想マシン YAML を確認し、インスタンスタイプが変更されたことを確認します。