第2章 Container-native Virtualization ユーザーガイド

2.1. 仮想マシンの作成

以下のいずれかの手順を使用して、仮想マシンを作成します。

  • 仮想マシンウィザードの実行
  • 仮想マシンウィザードによる事前に設定された YAML ファイルの貼り付け
  • CLI の使用
  • 仮想マシンウィザードによる VMware 仮想マシンまたはテンプレートのインポート

2.1.1. 仮想マシンウィザードの実行による仮想マシンの作成

Web コンソールは、Basic SettingsNetworking、および Storage 画面にナビゲートし、仮想マシンの作成プロセスを単純化するインタラクティブなウィザードを特長としています。すべての必須フィールドには * のマークが付けられます。ウィザードは必須フィールドの入力が完了するまで次の画面に移動することを防ぎます。

NIC およびストレージディスクを作成し、それらの作成後に仮想マシンに割り当てることができます。

ブート可能なディスク

Basic Settings 画面で URL または Container のいずれかが Provision Source として選択されている場合、 rootdisk ディスクが Bootable Disk として作成され、仮想マシンに割り当てられます。rootdisk を変更できますが、これを削除することはできません。

Bootable Disk は、仮想マシンにディスクが割り当てられていない場合、PXE ソースからプロビジョニングされる仮想マシンには不要です。1 つ以上のディスクが仮想マシンに割り当てられている場合、Bootable Disk を 1 つを選択する必要があります。

前提条件

  • ウィザードを使用して仮想マシンを作成する場合、仮想マシンのストレージメディアは Read-Write-Many(RWM)PVC をサポートする必要があります。

手順

  1. サイドメニューから WorkloadsVirtual Machines をクリックします。
  2. Create Virtual Machine をクリックし、Create with Wizard を選択します。
  3. すべての必須の Basic Settings を入力します。Template を選択すると、これらのフィールドへの入力が自動的に行われます。
  4. Next をクリックして Networking 画面に進みます。デフォルトで nic0 NIC が割り当てられます。

    1. (オプション) Create NIC をクリックして追加の NIC を作成します。
    2. (オプション) ⋮ ボタンをクリックし、Remove NIC を選択して、NICS のいずれかまたはすべてを削除できます。仮想マシンの作成において、NIC が割り当てられている必要はありません。NIC は仮想マシンの作成後に作成することができます。
  5. Next をクリックして Storage 画面に進みます。

    1. (オプション) Create Disk をクリックして追加のディスクを作成します。これらのディスクは、⋮ ボタンをクリックし、 Remove Disk を選択して削除できます。
    2. (オプション) ディスクをクリックして選択可能なフィールドを変更します。✓ ボタンをクリックして更新を保存します。
    3. (オプション) Attach Disk をクリックして、Select Storage ドロップダウンリストから利用可能なディスクを選択します。
  6. Create Virtual Machine > をクリックします。Results 画面には、仮想マシンの JSON 設定ファイルが表示されます。

仮想マシンは WorkloadsVirtual Machines に一覧表示されます。

Web コンソールウィザードを実行する際は、仮想マシンウィザードのフィールドを参照します。

2.1.1.1. 仮想マシンウィザードのフィールド

名前パラメーター説明

名前

 

この名前には、小文字 (a-z)、数字 (0-9)、およびハイフン (-) を含めることができ、最大 253 文字を使用できます。最初と最後の文字は英数字にする必要があります。この名前には、大文字、スペース、ピリオド (.)、または特殊文字を使用できません。

説明

 

オプションの説明フィールド。

Template

 

仮想マシンの作成に使用するテンプレート。テンプレートを選択すると、他のフィールドが自動的に入力されます。

Provision Source

PXE

PXE メニューから仮想マシンをプロビジョニングします。クラスターに PXE 対応の NIC が必要になります。

URL

HTTP または S3 エンドポイントで利用できるイメージから仮想マシンをプロビジョニングします。

Container

クラスターからアクセスできるレジストリーの起動可能なオペレーティングシステムコンテナーから仮想マシンをプロビジョニングします。例: kubevirt/cirros-registry-disk-demo

Cloned Disk

プロビジョニングソースはクローン作成されたディスクです。

Import

サポートされているプロバイダーから仮想マシンをインポートします。

Operating System

 

クラスターで利用可能なオペレーティングシステムの一覧。これは、仮想マシンの主なオペレーティングシステムになります。ImportProvider Source として選択する場合、オペレーティングシステムはインポートされる VMware 仮想マシンのオペレーティングシステムに基づいて自動的に入力されます。

Flavor

small、medium、large、tiny、Custom

仮想マシンに割り当てられる CPU およびメモリーの量を決定するプリセット。

Workload Profile

desktop

デスクトップで使用するための仮想マシン設定。

generic

各種のワークロードについてのパフォーマンスと互換性のバランスを取るための仮想マシンの設定。

high performance

高パフォーマンスの負荷に対して最適化された仮想マシン設定。

Start virtual machine on creation

 

これを選択すると、作成時に仮想マシンが自動的に起動します。

Use cloud-init

 

これを選択し、cloud-init フィールドを有効にします。

2.1.1.2. Cloud-init フィールド

名前説明

Hostname

仮想マシンの特定のホスト名を設定します。

Authenticated SSH Keys

仮想マシンの ~/.ssh/authorized_keys にコピーされるユーザーの公開鍵。

Use custom script

他のオプションを、カスタム cloud-init スクリプトを貼り付けるフィールドに置き換えます。

2.1.1.3. ネットワークフィールド

名前説明

Create NIC

仮想マシンの新規 NIC を作成します。

NIC NAME

NIC の名前。

MAC ADDRESS

ネットワークインターフェースの MAC アドレス。MAC アドレスが指定されていない場合、セッションの一時アドレスが生成されます。

NETWORK CONFIGURATION

利用可能な NetworkAttachmentDefinition オブジェクトの一覧。

BINDING METHOD

利用可能なバインディングメソッドの一覧。デフォルトの Pod ネットワークについては、masquerade が唯一の推奨されるバインディングメソッドになります。セカンダリーネットワークの場合は、bridge バインディングメソッドを使用します。masquerade メソッドは、デフォルト以外のネットワークではサポートされません。

PXE NIC

PXE 対応ネットワークの一覧。PXEProvision Source として選択されている場合にのみ表示されます。

2.1.1.4. ストレージフィールド

名前説明

Create Disk

仮想マシンの新規ディスクを作成します。

Attach Disk

利用可能な PVC の一覧から、仮想マシンに割り当てる既存のディスクを選択します。

DISK NAME

ディスクの名前。この名前には、小文字 (a-z)、数字 (0-9)、ハイフン (-) およびピリオド (.) を含めることができ、最大 253 文字を使用できます。最初と最後の文字は英数字にする必要があります。この名前には、大文字、スペース、または特殊文字を使用できません。

SIZE (GB)

ディスクのサイズ (GB)。

STORAGE CLASS

基礎となる StorageClass の名前。

Bootable Disk

仮想マシンの起動に利用できるディスクの一覧。仮想マシンの Provision SourceURL または Container の場合に rootdisk に固定されます。

2.1.2. 仮想マシンウィザードの作成用の事前設定 YAML ファイルの貼り付け

Web コンソールの WorkloadsVirtual Machines 画面で YAML 設定ファイルを作成するか、またはこれを貼り付けて仮想マシンを作成します。YAML 編集画面を開くと、常に有効な example 仮想マシン設定がデフォルトで提供されます。

Create をクリックする際に YAML 設定が無効な場合、エラーメッセージでエラーが発生したパラメーターが示唆されます。エラーは一度に 1 つのみ表示されます。

注記

編集中に YAML 画面から離れると、設定に対して加えた変更が取り消されます。

手順

  1. サイドメニューから WorkloadsVirtual Machines をクリックします。
  2. Create Virtual Machine をクリックし、Create from YAML を選択します。
  3. 編集可能なウィンドウで仮想マシンの設定を作成するか、またはこれを貼り付けます。

    1. または、YAML 画面にデフォルトで提供される example 仮想マシンを使用します。
  4. (オプション) Download をクリックして YAML 設定ファイルをその現在の状態でダウンロードします。
  5. Create をクリックして仮想マシンを作成します。

仮想マシンは WorkloadsVirtual Machines に一覧表示されます。

2.1.3. CLI の使用による仮想マシンの作成

手順

VirtualMachine 設定ファイルの spec オブジェクトは、コア数やメモリーの量、ディスクタイプおよび使用するボリュームなどの仮想マシン設定を参照します。

  1. 関連する PVC claimName をボリュームとして参照し、仮想マシンディスクを仮想マシンに割り当てます。
  2. OpenShift Container Platform クライアントで仮想マシンを作成するには、以下のコマンドを実行します。

    $ oc create -f <vm.yaml>
  3. 仮想マシンは Stopped 状態で作成されるため、これを起動して仮想マシンインスタンスを実行します。
注記

ReplicaSetは、一定数の同一 Pod の可用性を保証することを目的としています。現時点で、ReplicaSet は Container-native Virtualization でサポートされていません。

表2.1 ドメイン設定

設定説明

Cores

仮想マシン内のコア数。1 以上の値である必要があります。

Memory

ノードによって仮想マシンに割り当てられる RAM の量。M (メガバイト) または Gi (ギガバイト) で値を指定します。

Disks: name

参照されるボリュームの名前。ボリュームの名前に一致する必要があります。

表2.2 ボリューム設定

設定説明

名前

ボリュームの名前。 DNS ラベルであり、仮想マシン内で一意である必要があります。

PersistentVolumeClaim

仮想マシンに割り当てる PVC。PVC の claimName は仮想マシンと同じプロジェクトになければなりません。

2.1.4. 仮想マシンのストレージボリュームタイプ

仮想マシンのストレージボリュームタイプがドメインおよびボリューム設定と共に一覧表示されます。仮想マシン設定の具体的な一覧については、「 kubevirt API Reference 」を参照してください。

ephemeral

ネットワークボリュームを読み取り専用のバッキングストアとして使用するローカルの copy-on-write (COW) イメージ。バッキングボリュームは PersistentVolumeClaim である必要があります。一時イメージは仮想マシンの起動時に作成され、すべての書き込みをローカルに保存します。一時イメージは、仮想マシンの停止、再起動または削除時に破棄されます。バッキングボリューム (PVC) はいずれの方法でも変更されません。

persistentVolumeClaim

利用可能な PV を仮想マシンに割り当てます。PV の割り当てにより、仮想マシンデータのセッション間での永続化が可能になります。

CDI を使用して既存の仮想マシンディスクを PVC にインポートし、PVC を仮想マシンインスタンスに割り当てる方法は、既存の仮想マシンを OpenShift Container Platform にインポートするための推奨される方法です。ディスクを PVC 内で使用できるようにするためのいくつかの要件があります。

dataVolume

DataVolume は、インポート、クローンまたはアップロード操作で仮想マシンディスクの準備プロセスを管理することによって persistentVolumeClaim ディスクタイプにビルドされます。このボリュームタイプを使用する仮想マシンは、ボリュームが準備できるまで起動しないことが保証されます。

cloudInitNoCloud

参照される cloud-init NoCloud データソースが含まれるディスクを割り当て、ユーザーデータおよびメタデータを仮想マシンに提供します。cloud-init インストールは仮想マシンディスク内で必要になります。

containerDisk

コンテナーイメージレジストリーに保存される、仮想マシンディスクなどのイメージを参照します。イメージはレジストリーからプルされ、仮想マシンの作成時にボリュームに組み込まれます。containerDisk ボリュームは一時的なボリュームです。これは、仮想マシンが停止されるか、再起動するか、または削除される際に破棄されます。

コンテナーディスクは単一の仮想マシンに制限されず、永続ストレージを必要としない多数の仮想マシンのクローンを作成するのに役立ちます。

RAW および QCOW2 形式のみがコンテナーイメージレジストリーのサポートされるディスクタイプです。QCOW2 は、縮小されたイメージサイズの場合に推奨されます。

emptyDisk

仮想マシンインターフェースのライフサイクルに関連付けられるスパースの QCOW2 ディスクを追加で作成します。データは仮想マシンのゲストによって実行される再起動後も存続しますが、仮想マシンが Web コンソールから停止または再起動する場合には破棄されます。空のディスクは、アプリケーションの依存関係および一時ディスクの一時ファイルシステムの制限を上回るデータを保存するために使用されます。

ディスク 容量 サイズも指定する必要があります。

仮想マシン設定の具体的な一覧については、「 kubevirt API Reference 」を参照してください。