第9章 仮想マシン
9.1. 仮想マシンの作成
以下のいずれかの手順を使用して、仮想マシンを作成します。
- クイックスタートのガイド付きツアー
- カタログからクイック作成
- 仮想マシンウィザードによる事前に設定された YAML ファイルの貼り付け
- CLI の使用
openshift-*
namespace に仮想マシンを作成しないでください。代わりに、openshift
接頭辞なしの新規 namespace を作成するか、既存 namespace を使用します。
Web コンソールから仮想マシンを作成する場合、ブートソースで設定される仮想マシンテンプレートを選択します。ブートソースを含む仮想マシンテンプレートには Available boot source というラベルが付けられるか、それらはカスタマイズされたラベルテキストを表示します。選択可能なブートソースでテンプレートを使用すると、仮想マシンの作成プロセスをスピードアップできます。
ブートソースのないテンプレートには、Boot source required というラベルが付けられます。仮想マシンにブートソースを追加する 手順を完了すれば、これらのテンプレートを使用することができます。
ストレージの動作の違いにより、一部の仮想マシンテンプレートは単一ノードの Openshift と互換性がありません。互換性を確保するためには、テンプレートまたはデータボリュームまたはストレージプロファイルを使用する仮想マシンにevictionStrategy
フィールドを設定しないでください。
9.1.1. クイックスタートの使用による仮想マシンの作成
Web コンソールは、仮想マシンを作成するためのガイド付きツアーを含むクイックスタートを提供します。Administrator パースペクティブの Help メニューを選択して Quick Starts カタログにアクセスし、Quick Starts カタログを表示できます。Quick Starts タイルをクリックし、ツアーを開始すると、システムによるプロセスのガイドが開始します。
Quick Starts のタスクは、Red Hat テンプレートの選択から開始します。次に、ブートソースを追加して、オペレーティングシステムイメージをインポートできます。最後に、カスタムテンプレートを保存し、これを使用して仮想マシンを作成できます。
前提条件
- オペレーティングシステムイメージの URL リンクをダウンロードできる Web サイトにアクセスすること。
手順
- Web コンソールで、Help メニューから Quick Starts を選択します。
- Quick Starts カタログのタイルをクリックします。例: Red Hat Linux Enterprise Linux 仮想マシンの作成
-
ガイド付きツアーの手順に従い、オペレーティングシステムイメージのインポートと仮想マシンの作成タスクを実行します。Virtualization
VirtualMachines ページに仮想マシンが表示されます。
9.1.2. 仮想マシンのクイック作成
使用可能なブートソースを含むテンプレートを使用して、仮想マシン (VM) をすばやく作成できます。
手順
-
サイドメニューの Virtualization
Catalog をクリックします。 利用可能なブートソース をクリックして、テンプレートをブートソースでフィルタリングします。
注記デフォルトでは、テンプレートリストには Default Templates のみが表示されます。選択したフィルターで使用可能なすべてのテンプレートを表示するには、フィルタリング時に すべてのアイテムをクリックします。
- テンプレートをクリックして詳細を表示します。
仮想マシンのクイック作成をクリックして、テンプレートから VM を作成します。
仮想マシンの詳細ページに、プロビジョニングステータスが表示されます。
検証
- Events をクリックして、仮想マシンがプロビジョニングされたときにイベントのストリームを表示します。
- Console をクリックして、仮想マシンが正常に起動したことを確認します。
9.1.3. カスタマイズされたテンプレートからの仮想マシンの作成
一部のテンプレートでは、追加のパラメーターが必要です。たとえば、ブート ソースを持つ PVC などです。テンプレートの選択パラメーターをカスタマイズして、仮想マシン (VM) を作成できます。
手順
Web コンソールで、テンプレートを選択します。
-
サイドメニューの Virtualization
Catalog をクリックします。 - オプション: プロジェクト、キーワード、オペレーティングシステム、またはワークロードプロファイルでテンプレートをフィルター処理します。
- カスタマイズするテンプレートをクリックします。
-
サイドメニューの Virtualization
- Customize VirtualMachineを クリックします。
- Name や Disk source など、仮想マシンのパラメーターを指定します。オプションで、複製するデータソースを指定できます。
検証
- Events をクリックして、仮想マシンがプロビジョニングされたときにイベントのストリームを表示します。
- Console をクリックして、仮想マシンが正常に起動したことを確認します。
Web コンソールから仮想マシンを作成する場合は、仮想マシンのフィールドセクションを参照してください。
9.1.3.1. 仮想マシンフィールド
以下の表には、OpenShift Container Platform Web コンソールで編集できる仮想マシンのフィールドが記載されています。
タブ | フィールドまたは機能 |
---|---|
概要 |
|
YAML |
|
スケジューリング |
|
環境 |
|
Network Interfaces |
|
ディスク |
|
スクリプト |
|
メタデータ |
|
9.1.3.1.1. ネットワークフィールド
Name | 説明 |
---|---|
Name | ネットワークインターフェイスコントローラーの名前。 |
モデル | ネットワークインターフェイスコントローラーのモデルを示します。サポートされる値は e1000e および virtio です。 |
Network | 利用可能なネットワーク接続定義のリスト。 |
タイプ | 利用可能なバインディングメソッドの一覧。ネットワークインターフェイスに適したバインド方法を選択します。
|
MAC Address | ネットワークインターフェイスコントローラーの MAC アドレス。MAC アドレスが指定されていない場合、これは自動的に割り当てられます。 |
9.1.3.2. ストレージフィールド
Name | 選択 | Description |
---|---|---|
Source | 空白 (PVC の作成) | 空のディスクを作成します。 |
URL を使用したインポート (PVC の作成) | URL (HTTP または HTTPS エンドポイント) を介してコンテンツをインポートします。 | |
既存 PVC の使用 | クラスターですでに利用可能な PVC を使用します。 | |
既存の PVC のクローン作成 (PVC の作成) | クラスターで利用可能な既存の PVC を選択し、このクローンを作成します。 | |
レジストリーを使用したインポート (PVC の作成) | コンテナーレジストリーを使用してコンテンツをインポートします。 | |
コンテナー (一時的) | クラスターからアクセスできるレジストリーにあるコンテナーからコンテンツをアップロードします。コンテナーディスクは、CD-ROM や一時的な仮想マシンなどの読み取り専用ファイルシステムにのみ使用する必要があります。 | |
Name |
ディスクの名前。この名前には、小文字 ( | |
Size | ディスクのサイズ (GiB 単位)。 | |
タイプ | ディスクのタイプ。例: Disk または CD-ROM | |
Interface | ディスクデバイスのタイプ。サポートされるインターフェイスは、virtIO、SATA、および SCSI です。 | |
Storage Class | ディスクの作成に使用されるストレージクラス。 |
ストレージの詳細設定
以下のストレージの詳細設定はオプションであり、Blank、Import via URLURL、および Clone existing PVC ディスクで利用できます。OpenShift Virtualization 4.11 より前では、これらのパラメーターを指定しない場合、システムは kubevirt-storage-class-defaults
設定マップのデフォルト値を使用します。OpenShift Virtualization 4.11 以降では、システムは ストレージプロファイル のデフォルト値を使用します。
ストレージプロファイルを使用して、OpenShift Virtualization のストレージをプロビジョニングするときに一貫した高度なストレージ設定を確保します。
Volume Mode と Access Mode を手動で指定するには、デフォルトで選択されている Apply optimized StorageProfile settings チェックボックスをオフにする必要があります。
Name | モードの説明 | パラメーター | パラメーターの説明 |
---|---|---|---|
ボリュームモード | 永続ボリュームがフォーマットされたファイルシステムまたは raw ブロック状態を使用するかどうかを定義します。デフォルトは Filesystem です。 | Filesystem | ファイルシステムベースのボリュームで仮想ディスクを保存します。 |
Block |
ブロックボリュームで仮想ディスクを直接保存します。基礎となるストレージがサポートしている場合は、 | ||
アクセスモード | 永続ボリュームのアクセスモード。 | ReadWriteOnce (RWO) | ボリュームは単一ノードで読み取り/書き込みとしてマウントできます。 |
ReadWriteMany (RWX) | ボリュームは、一度に多くのノードで読み取り/書き込みとしてマウントできます。 注記 これは、ノード間の仮想マシンのライブマイグレーションなどの、一部の機能で必要になります。 | ||
ReadOnlyMany (ROX) | ボリュームは数多くのノードで読み取り専用としてマウントできます。 |
9.1.3.3. Cloud-init フィールド
Name | 説明 |
---|---|
Hostname | 仮想マシンの特定のホスト名を設定します。 |
認可された SSH キー | 仮想マシンの ~/.ssh/authorized_keys にコピーされるユーザーの公開鍵。 |
カスタムスクリプト | 他のオプションを、カスタム cloud-init スクリプトを貼り付けるフィールドに置き換えます。 |
ストレージクラスのデフォルトを設定するには、ストレージプロファイルを使用します。詳細については、ストレージプロファイルのカスタマイズを参照してください。
9.1.3.4. 仮想マシンウィザードの作成用の事前に設定された YAML ファイルの貼り付け
YAML 設定ファイルを作成し、解析して仮想マシンを作成します。YAML 編集画面を開くと、常に有効な example
仮想マシン設定がデフォルトで提供されます。
Create をクリックする際に YAML 設定が無効な場合、エラーメッセージでエラーが発生したパラメーターが示唆されます。エラーは一度に 1 つのみ表示されます。
編集中に YAML 画面から離れると、設定に対して加えた変更が取り消されます。
手順
-
サイドメニューから Virtualization
VirtualMachines をクリックします。 - Create をクリックし、With YAML を選択します。
編集可能なウィンドウで仮想マシンの設定を作成するか、これを貼り付けます。
-
または、YAML 画面にデフォルトで提供される
example
仮想マシンを使用します。
-
または、YAML 画面にデフォルトで提供される
- オプション: Download をクリックして YAML 設定ファイルをその現在の状態でダウンロードします。
- Create をクリックして仮想マシンを作成します。
仮想マシンが VirtualMachines ページにリスト表示されます。
9.1.4. CLI の使用による仮想マシンの作成
virtualMachine
マニフェストから仮想マシンを作成できます。
手順
仮想マシンの
VirtualMachine
マニフェストを編集します。たとえば、次のマニフェストは Red Hat Enterprise Linux (RHEL) 仮想マシンを設定します。例9.1 RHEL 仮想マシンのマニフェストの例
apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: labels: app: <vm_name> 1 name: <vm_name> spec: dataVolumeTemplates: - apiVersion: cdi.kubevirt.io/v1beta1 kind: DataVolume metadata: name: <vm_name> spec: sourceRef: kind: DataSource name: rhel9 namespace: openshift-virtualization-os-images storage: resources: requests: storage: 30Gi running: false template: metadata: labels: kubevirt.io/domain: <vm_name> spec: domain: cpu: cores: 1 sockets: 2 threads: 1 devices: disks: - disk: bus: virtio name: rootdisk - disk: bus: virtio name: cloudinitdisk interfaces: - masquerade: {} name: default rng: {} features: smm: enabled: true firmware: bootloader: efi: {} resources: requests: memory: 8Gi evictionStrategy: LiveMigrate networks: - name: default pod: {} volumes: - dataVolume: name: <vm_name> name: rootdisk - cloudInitNoCloud: userData: |- #cloud-config user: cloud-user password: '<password>' 2 chpasswd: { expire: False } name: cloudinitdisk
マニフェストファイルを使用して仮想マシンを作成します。
$ oc create -f <vm_manifest_file>.yaml
オプション: 仮想マシンを開始します。
$ virtctl start <vm_name>
9.1.5. 仮想マシンのストレージボリュームタイプ
ストレージボリュームタイプ | Description |
---|---|
ephemeral | ネットワークボリュームを読み取り専用のバッキングストアとして使用するローカルの copy-on-write (COW) イメージ。バッキングボリュームは PersistentVolumeClaim である必要があります。一時イメージは仮想マシンの起動時に作成され、すべての書き込みをローカルに保存します。一時イメージは、仮想マシンの停止、再起動または削除時に破棄されます。バッキングボリューム (PVC) はいずれの方法でも変更されません。 |
persistentVolumeClaim | 利用可能な PV を仮想マシンに割り当てます。PV の割り当てにより、仮想マシンデータのセッション間での永続化が可能になります。 CDI を使用して既存の仮想マシンディスクを PVC にインポートし、PVC を仮想マシンインスタンスに割り当てる方法は、既存の仮想マシンを OpenShift Container Platform にインポートするための推奨される方法です。ディスクを PVC 内で使用できるようにするためのいくつかの要件があります。 |
dataVolume |
データボリュームは、インポート、クローンまたはアップロード操作で仮想マシンディスクの準備プロセスを管理することによって
|
cloudInitNoCloud | 参照される cloud-init NoCloud データソースが含まれるディスクを割り当て、ユーザーデータおよびメタデータを仮想マシンに提供します。cloud-init インストールは仮想マシンディスク内で必要になります。 |
containerDisk | コンテナーイメージレジストリーに保存される、仮想マシンディスクなどのイメージを参照します。イメージはレジストリーからプルされ、仮想マシンの起動時にディスクとして仮想マシンに割り当てられます。
RAW および QCOW2 形式のみがコンテナーイメージレジストリーのサポートされるディスクタイプです。QCOW2 は、縮小されたイメージサイズの場合に推奨されます。 注記
|
emptyDisk | 仮想マシンインターフェイスのライフサイクルに関連付けられるスパースの QCOW2 ディスクを追加で作成します。データは仮想マシンのゲストによって実行される再起動後も存続しますが、仮想マシンが Web コンソールから停止または再起動する場合には破棄されます。空のディスクは、アプリケーションの依存関係および一時ディスクの一時ファイルシステムの制限を上回るデータを保存するために使用されます。 ディスク 容量 サイズも指定する必要があります。 |
9.1.6. 仮想マシンの RunStrategy について
仮想マシンの RunStrategy
は、一連の条件に応じて仮想マシンインスタンス (VMI) の動作を判別します。spec.runStrategy
設定は、spec.running
設定の代わりに仮想マシン設定プロセスに存在します。spec.runStrategy
設定を使用すると、true
または false
の応答のみを伴う spec.running
設定とは対照的に、VMI の作成および管理をより柔軟に行えます。ただし、2 つの設定は相互排他的です。spec.running
または spec.runStrategy
のいずれかを使用できます。両方を使用する場合は、エラーが発生します。
4 つ RunStrategy が定義されています。
Always
-
VMI は仮想マシンの作成時に常に表示されます。元の VMI が何らかの理由で停止する場合に、新規の VMI が作成されます。これは
spec.running: true
と同じ動作です。 RerunOnFailure
- 前のインスタンスがエラーが原因で失敗する場合は、VMI が再作成されます。インスタンスは、仮想マシンが正常に停止する場合 (シャットダウン時など) には再作成されません。
Manual
(手動)-
start
、stop
、およびrestart
virtctl クライアントコマンドは、 VMI の状態および存在を制御するために使用できます。 Halted
-
仮想マシンが作成される際に VMI は存在しません。これは
spec.running: false
と同じ動作です。
start
、stop
、および restart
の virtctl コマンドの各種の組み合わせは、どの RunStrategy
が使用されるかに影響を与えます。
以下の表は、仮想マシンの各種の状態からの移行について示しています。最初の列には、仮想マシンの初期の RunStrategy
が表示されます。それぞれの追加の列には、virtctl コマンドと、このコマンド実行後の新規 RunStrategy
が表示されます。
初期 RunStrategy | start | stop | restart |
---|---|---|---|
Always | - | Halted | Always |
RerunOnFailure | - | Halted | RerunOnFailure |
Manual | Manual | Manual | Manual |
Halted | Always | - | - |
インストーラーでプロビジョニングされるインフラストラクチャーを使用してインストールされた OpenShift Virtualization クラスターでは、ノードで MachineHealthCheck に失敗し、クラスターで利用できなくなると、RunStrategy が Always
または RerunOnFailure
の仮想マシンが新規ノードで再スケジュールされます。
apiVersion: kubevirt.io/v1
kind: VirtualMachine
spec:
RunStrategy: Always 1
template:
...
- 1
- VMI の現在の
RunStrategy
設定。
9.1.7. 関連情報
KubeVirt v0.53.2 API リファレンス の
VirtualMachineSpec
定義は、仮想マシン仕様のパラメーターおよび階層のより範囲の広いコンテキストを提供します。注記KubeVirt API リファレンスはアップストリームのプロジェクトリファレンスであり、OpenShift Virtualization でサポートされていないパラメーターが含まれる場合があります。
- CPU マネージャーが高パフォーマンスのワークロードプロファイルを使用できるようにします。
-
containerDisk
ボリュームとして仮想マシンに追加する前に、コンテナーディスクの準備 を参照してください。 - マシンのヘルスチェックの導入と有効化の詳細は、マシンの可用性チェックの導入 を参照してください。
- インストーラーでプロビジョニングされるインフラストラクチャーについての詳細は、インストーラーでプロビジョニングされるインフラストラクチャーの概要 を参照してください。
- ストレージプロファイルのカスタマイズ