第7章 仮想マシン
7.1. 仮想マシンの作成
以下のいずれかの手順を使用して、仮想マシンを作成します。
- 仮想マシンウィザードの実行
- 仮想マシンウィザードによる事前に設定された YAML ファイルの貼り付け
- CLI の使用
- 仮想マシンウィザードによる VMware 仮想マシンまたはテンプレートのインポート
openshift-*
namespace に仮想マシンを作成しないでください。代わりに、openshift
接頭辞なしの新規 namespace を作成するか、または既存 namespace を使用します。
7.1.1. 仮想マシンウィザードの実行による仮想マシンの作成
Web コンソールは、General、 Networking、Storage、Advanced、および Review ステップに移動し、仮想マシンの作成プロセスを単純化するインタラクティブなウィザードを特長としています。すべての必須フィールドには *
のマークが付けられます。必要なフィールドが完了したら、仮想マシンを確認し、これを作成することができます。
Network Interface Card (NIC) およびストレージディスクを作成し、それらの作成後に仮想マシンに割り当てることができます。
起動可能なディスク
URL
または Container
のいずれかが General ステップで Source として選択される場合、rootdisk
ディスクが作成され、Bootable Disk として仮想マシンに割り当てられます。rootdisk
を変更できますが、これを削除することはできません。
Bootable Disk は、仮想マシンにディスクが割り当てられていない場合、PXE ソースからプロビジョニングされる仮想マシンには不要です。1 つ以上のディスクが仮想マシンに割り当てられている場合、Bootable Disk を 1 つを選択する必要があります。
前提条件
- ウィザードを使用して仮想マシンを作成する場合、仮想マシンのストレージメディアは Read-Write-Many(RWX)PVC をサポートする必要があります。
手順
-
サイドメニューから Workloads
Virtualization をクリックします。 - Virtual Machines タブをクリックします。
- Create Virtual Machine をクリックし、New with Wizard を選択します。
- General ステップで必要なすべてのフィールドに入力します。Template を選択すると、これらのフィールドへの入力が自動的に行われます。
Next をクリックして Networking ステップに進みます。デフォルトで
nic0
NIC が割り当てられます。- オプション: Add Network Interface をクリックし、追加の NIC を作成します。
- オプション: すべての NIC の削除は、Options メニュー をクリックし、Delete を選択して実行できます。仮想マシンの作成において、NIC が割り当てられている必要はありません。NIC は仮想マシンの作成後に作成することができます。
Next をクリックして Storage 画面に進みます。
- オプション: Add Disk をクリックして追加のディスクを作成します。これらのディスクの削除は、Options メニュー をクリックし、Delete を選択して実行できます。
- オプション: Options メニュー をクリックし、ディスクを編集して変更内容を保存します。
- Review and Create をクリックします。Results 画面には、仮想マシンの JSON 設定ファイルが表示されます。
仮想マシンは Virtual Machines タブに一覧表示されます。
Web コンソールウィザードを実行する際は、仮想マシンウィザードのフィールドを参照します。
7.1.1.1. 仮想マシンウィザードのフィールド
名前 | パラメーター | 説明 |
---|---|---|
Template | 仮想マシンの作成に使用するテンプレート。テンプレートを選択すると、他のフィールドが自動的に入力されます。 | |
ソース | PXE | PXE メニューから仮想マシンをプロビジョニングします。クラスターに PXE 対応の NIC が必要になります。 |
URL | HTTP または S3 エンドポイントで利用できるイメージから仮想マシンをプロビジョニングします。 | |
コンテナー |
クラスターからアクセスできるレジストリーの起動可能なオペレーティングシステムコンテナーから仮想マシンをプロビジョニングします。例: | |
Disk | ディスクから仮想マシンをプロビジョニングします。 | |
Operating System | 仮想マシン用に選択される主なオペレーティングシステム。 | |
Flavor | small、medium、large、tiny、Custom | 仮想マシンに割り当てられる CPU およびメモリーの量を決定するプリセット。Flavor に設定される Preset はオペレーティングシステムによって決まります。 |
Memory | 仮想マシンに割り当てられるメモリーのサイズ (GiB 単位)。 | |
CPU | 仮想マシンに割り当てられる CPU の量。 | |
Workload Profile | High Performance | 高パフォーマンスのワークロードに対して最適化された仮想マシン設定。 |
Server | サーバーワークロードの実行に最適化されたプロファイル。 | |
Desktop | デスクトップで使用するための仮想マシン設定。 | |
名前 |
この名前には、小文字 ( | |
説明 | オプションの説明フィールド。 | |
Start virtual machine on creation | これを選択すると、作成時に仮想マシンが自動的に起動します。 |
7.1.1.2. Cloud-init フィールド
名前 | 説明 |
---|---|
Hostname | 仮想マシンの特定のホスト名を設定します。 |
Authenticated SSH Keys | 仮想マシンの ~/.ssh/authorized_keys にコピーされるユーザーの公開鍵。 |
カスタムスクリプト | 他のオプションを、カスタム cloud-init スクリプトを貼り付けるフィールドに置き換えます。 |
7.1.1.3. CD-ROM フィールド
ソース | 説明 |
---|---|
Container |
コンテナーのパスを指定します。例: |
URL | URL パスおよびサイズ (GiB 単位) を指定します。次に、ドロップダウンリストからこの URL のストレージクラスを選択します。 |
Attach Disk | 割り当てる仮想マシンディスクを選択します。 |
7.1.1.4. ネットワークフィールド
名前 | 説明 |
---|---|
名前 | ネットワークインターフェイスの名前。 |
Model | ネットワークインターフェイスカードのモデルを示します。サポートされる値は、e1000、 e1000e、ne2k_pci、pcnet, rtl8139、および virtIO です。 |
Network | 利用可能な NetworkAttachmentDefinition オブジェクトの一覧。 |
Type |
利用可能なバインディングメソッドの一覧。デフォルトの Pod ネットワークについては、 |
MAC Address | ネットワークインターフェイスの MAC アドレス。MAC アドレスが指定されていない場合、セッションの一時アドレスが生成されます。 |
7.1.1.5. ストレージフィールド
名前 | 説明 |
---|---|
ソース | 仮想マシンの空のディスクを選択するか、または URL、Container、Attach Cloned Disk、または Attach Disk などの選択可能なオプションから選択します。既存ディスクを選択し、これを仮想マシンに割り当てるには、利用可能な PersistentVolumeClaim (PVC) の一覧から Attach Cloned Disk または Attach Disk を選択します。 |
名前 |
ディスクの名前。この名前には、小文字 ( |
Size (GiB) | ディスクのサイズ (GiB)。 |
Interface | ディスクデバイスのタイプ。サポートされるインターフェイスは、virtIO、SATA、および SCSI です。 |
ストレージクラス |
ディスクの作成に使用される |
Advanced | |
永続ボリュームがフォーマットされたファイルシステムまたは raw ブロック状態を使用するかどうかを定義します。デフォルトは Filesystem です。 |
Advanced |
永続ボリュームのアクセスモード。サポートされるアクセスモードは、Single User (RWO)、Shared Access (RWX)、および Read Only (ROX) です。 |
ストレージの詳細設定
以下のストレージの詳細設定は、Blank、Import via URLURL、および Clone existing PVC ディスクで利用できます。これらのパラメーターはオプションです。これらのパラメーターを指定しない場合、システムは kubevirt-storage-class-defaults
設定マップのデフォルト値を使用します。
名前 | パラメーター | 説明 |
---|---|---|
ボリュームモード | Filesystem | ファイルシステムベースのボリュームで仮想ディスクを保存します。 |
Block |
ブロックボリュームで仮想ディスクを直接保存します。基礎となるストレージがサポートしている場合は、 | |
アクセスモード | Single User (RWO) | ディスクは単一ノードで読み取り/書き込みとしてマウントできます。 |
Shared Access (RWX) | ディスクは数多くのノードで読み取り/書き込みとしてマウントできます。 注記 これは、ノード間の仮想マシンのライブマイグレーションなどの、一部の機能で必要になります。 | |
Read Only (ROX) | ディスクは数多くのノードで読み取り専用としてマウントできます。 |
kubevirt-storage-class-defaults
ConfigMap についての詳細は、DataVolume のストレージのデフォルト について参照してください。
7.1.2. 仮想マシンウィザードの作成用の事前に設定された YAML ファイルの貼り付け
YAML 設定ファイルを作成し、解析して仮想マシンを作成します。YAML 編集画面を開くと、常に有効な example
仮想マシン設定がデフォルトで提供されます。
Create をクリックする際に YAML 設定が無効な場合、エラーメッセージでエラーが発生したパラメーターが示唆されます。エラーは一度に 1 つのみ表示されます。
編集中に YAML 画面から離れると、設定に対して加えた変更が取り消されます。
手順
-
サイドメニューから Workloads
Virtualization をクリックします。 - Virtual Machines タブをクリックします。
- Create Virtual Machine をクリックし、New from YAML を選択します。
編集可能なウィンドウで仮想マシンの設定を作成するか、またはこれを貼り付けます。
-
または、YAML 画面にデフォルトで提供される
example
仮想マシンを使用します。
-
または、YAML 画面にデフォルトで提供される
- オプション: Download をクリックして YAML 設定ファイルをその現在の状態でダウンロードします。
- Create をクリックして仮想マシンを作成します。
仮想マシンは Virtual Machines タブに一覧表示されます。
7.1.3. CLI の使用による仮想マシンの作成
手順
VirtualMachine 設定ファイルの spec
オブジェクトは、コア数やメモリーの量、ディスクタイプおよび使用するボリュームなどの仮想マシン設定を参照します。
-
関連する PVC
claimName
をボリュームとして参照し、仮想マシンディスクを仮想マシンに割り当てます。 OpenShift Container Platform クライアントで仮想マシンを作成するには、以下のコマンドを実行します。
$ oc create -f <vm.yaml>
- 仮想マシンは Stopped 状態で作成されるため、これを起動して仮想マシンインスタンスを実行します。
ReplicaSet は、一定数の同一 Pod の可用性を保証することを目的としています。現時点で、ReplicaSet は OpenShift Virtualization ではサポートされていません。
設定 | 説明 |
---|---|
Cores | 仮想マシン内のコア数。1 以上の値である必要があります。 |
Memory | ノードによって仮想マシンに割り当てられる RAM の量。M (メガバイト) または Gi (ギガバイト) で値を指定します。 |
ディスク | 参照されるボリュームの名前。ボリュームの名前に一致する必要があります。 |
設定 | 説明 |
---|---|
名前 | ボリュームの名前。 DNS ラベルであり、仮想マシン内で一意である必要があります。 |
PersistentVolumeClaim |
仮想マシンに割り当てる PVC。PVC の |
7.1.4. 仮想マシンのストレージボリュームタイプ
ストレージボリュームタイプ | 説明 |
---|---|
ephemeral | ネットワークボリュームを読み取り専用のバッキングストアとして使用するローカルの copy-on-write (COW) イメージ。バッキングボリュームは PersistentVolumeClaim である必要があります。一時イメージは仮想マシンの起動時に作成され、すべての書き込みをローカルに保存します。一時イメージは、仮想マシンの停止、再起動または削除時に破棄されます。バッキングボリューム (PVC) はいずれの方法でも変更されません。 |
persistentVolumeClaim | 利用可能な PV を仮想マシンに割り当てます。PV の割り当てにより、仮想マシンデータのセッション間での永続化が可能になります。 CDI を使用して既存の仮想マシンディスクを PVC にインポートし、PVC を仮想マシンインスタンスに割り当てる方法は、既存の仮想マシンを OpenShift Container Platform にインポートするための推奨される方法です。ディスクを PVC 内で使用できるようにするためのいくつかの要件があります。 |
dataVolume |
DataVolume は、インポート、クローンまたはアップロード操作で仮想マシンディスクの準備プロセスを管理することによって
|
cloudInitNoCloud | 参照される cloud-init NoCloud データソースが含まれるディスクを割り当て、ユーザーデータおよびメタデータを仮想マシンに提供します。cloud-init インストールは仮想マシンディスク内で必要になります。 |
containerDisk | コンテナーイメージレジストリーに保存される、仮想マシンディスクなどのイメージを参照します。イメージはレジストリーからプルされ、仮想マシンの起動時にディスクとして仮想マシンに割り当てられます。
RAW および QCOW2 形式のみがコンテナーイメージレジストリーのサポートされるディスクタイプです。QCOW2 は、縮小されたイメージサイズの場合に推奨されます。 注記
|
emptyDisk | 仮想マシンインターフェイスのライフサイクルに関連付けられるスパースの QCOW2 ディスクを追加で作成します。データは仮想マシンのゲストによって実行される再起動後も存続しますが、仮想マシンが Web コンソールから停止または再起動する場合には破棄されます。空のディスクは、アプリケーションの依存関係および一時ディスクの一時ファイルシステムの制限を上回るデータを保存するために使用されます。 ディスク 容量 サイズも指定する必要があります。 |
7.1.5. 追加リソース
KubeVirt v0.30.5 API リファレンス の VirtualMachineSpec
定義は、仮想マシン仕様のパラメーターおよび階層のより範囲の広いコンテキストを提供します。
KubeVirt API リファレンスはアップストリームのプロジェクトリファレンスであり、OpenShift Virtualization でサポートされていないパラメーターが含まれる場合があります。
-
コンテナーディスクを準備 してから、これを
containerDisk
ボリュームとして仮想マシンに追加します。