第9章 仮想マシンテンプレート

9.1. 仮想マシンテンプレートの作成

9.1.1. 仮想マシンテンプレートについて

事前に設定された Red Hat 仮想マシンテンプレートは、Virtualization ページの Templates タブに一覧表示されます。このテンプレートは、Red Hat Enterprise Linux、Fedora、Microsoft Windows 10、および Microsoft Windows Server の異なるバージョンで利用できます。各 Red Hat 仮想マシンテンプレートは、オペレーティングシステムイメージ、オペレーティングシステム、フレーバー(CPU およびメモリー)、およびワークロードタイプ (サーバー) のデフォルト設定で事前に設定されます。

Templates タブには、4 種類の仮想マシンテンプレートが表示されます。

  • Red Hat でサポートされる テンプレートは、Red Hat によって完全にサポートされています。
  • ユーザーがサポート するテンプレートは、ユーザーがクローンして作成した Red Hat でサポートされる テンプレートです。
  • Red Hat が提供する テンプレートには、Red Hat の制限されたサポートがあります。
  • User Provided テンプレートは、ユーザーがクローンして作成した Red Hat Provided テンプレートです。
注記

Templates タブでは、Red Hat がサポートするテンプレートまたは Red Hat が提供するテンプレートを編集したり、削除したりすることはできません。ユーザーによって作成されたカスタム仮想マシンテンプレートのみを編集したり、削除したりすることができます。

テンプレートがすでに事前に設定されているため、Red Hat テンプレートを使用すると便利です。Red Hat テンプレートを選択して独自のカスタムテンプレートを作成すると、ブートソースが以前に追加されていない場合に、Create Virtual Machine Template ウィザードにより、ブートソースの追加を求めるプロンプトが出されます。次に、カスタムテンプレートを保存するか、または続行してこれをカスタマイズし、保存することができます。

Create Virtual Machine Template ウィザードを直接選択し、カスタム仮想マシンテンプレートを作成することもできます。このウィザードにより、オペレーティングシステム、フレーバー、ワークロードタイプおよび他の設定の詳細情報を提供するように求めるプロンプトが出されます。ブートソースを追加して、続行してテンプレートをカスタマイズし、保存できます。

9.1.2. 仮想マシンおよびブートソースについて

仮想マシンは、仮想マシン定義と、データボリュームでサポートされる 1 つ以上のディスクで構成されます。仮想マシンテンプレートを使用すると、事前定義された仮想マシン仕様を使用して仮想マシンを作成できます。

すべての仮想マシンテンプレートには、設定されたドライバーを含む完全に設定された仮想マシンディスクイメージであるブートソースが必要です。それぞれの仮想マシンテンプレートには、ブートソースへのポインターを含む仮想マシン定義が含まれます。各ブートソースには、事前に定義された名前および namespace があります。オペレーティングシステムによっては、ブートソースは自動的に提供されます。これが提供されない場合、管理者はカスタムブートソースを準備する必要があります。

ブートソース機能を使用するには、OpenShift Virtualization の最新リリースをインストールします。namespace の openshift-virtualization-os-images はこの機能を有効にし、OpenShift Virtualization Operator でインストールされます。ブートソース機能をインストールしたら、ブートソースを作成してそれらをテンプレートに割り当て、テンプレートから仮想マシンを作成できます。

ローカルファイルのアップロード、既存 PVC のクローン作成、レジストリーからのインポート、または URL を使用して設定される永続ボリューム要求 (PVC) を使用してブートソースを定義します。Web コンソールを使用して、ブートソースを仮想マシンテンプレートに割り当てます。ブートソースが仮想マシンテンプレートに割り当てられた後に、テンプレートを使用して任意の数の完全に設定済みの準備状態の仮想マシンを作成できます。

9.1.3. 仮想マシンテンプレートのブートソースの追加

ブートソースは、仮想マシンの作成に使用するすべての仮想マシンテンプレートまたはカスタムテンプレートに設定できます。仮想マシンテンプレートがブートソースを使用して設定されている場合、それらには Templates タブで Available というラベルが付けられます。ブートソースをテンプレートに追加した後に、テンプレートから新規仮想マシンを作成できます。

Web コンソールでブートソースを選択および追加する方法は 4 つあります。

  • ローカルファイルのアップロード (PVC の作成)
  • URL を使用したインポート (PVC の作成)
  • 既存の PVC のクローン作成 (PVC の作成)
  • レジストリーを使用したインポート (PVC の作成)

前提条件

  • ブートソースを追加するには、os-images.kubevirt.io:edit RBAC ロールを持つユーザー、または管理者としてログインしていること。ブートソースが追加されたテンプレートから仮想マシンを作成するには、特別な権限は必要ありません。
  • ローカルファイルをアップロードするには、オペレーティングシステムのイメージファイルがローカルマシンに存在している必要がある。
  • URL を使用してインポートするには、オペレーティングシステムイメージのある Web サーバーへのアクセスが必要である。例: イメージが含まれる Red Hat Enterprise Linux Web ページ。
  • 既存の PVC のクローンを作成するには、PVC を含むプロジェクトへのアクセスが必要である。
  • レジストリーを使用してインポートするには、コンテナーレジストリーへのアクセスが必要である。

手順

  1. OpenShift Virtualization コンソールのサイドメニューから WorkloadsVirtualization をクリックします。
  2. Templates タブをクリックします。
  3. ブートソースを設定する仮想マシンテンプレートを特定し、Add source をクリックします。
  4. Add boot source to template ウィンドウで、 Select boot source をクリックし、永続ボリューム要求 (PVC) を作成するための方法を選択します: ローカルファイルのアップロードURL を使用したインポート既存 PVC のクローン作成、またはレジストリーを使用したインポート
  5. オプション: This is a CD-ROM boot source to mount a CD-ROM and use it to install the operating system on an empty disk.追加の空のディスクは OpenShift Virtualization で自動作成およびマウントされます。追加のディスクが必要ない場合には、仮想マシンの作成時に削除できます。
  6. Persistent Volume Claim size の値を入力し、圧縮解除されたイメージおよび必要な追加の領域に十分な PVC サイズを指定します。

    1. オプション: このテンプレートに名前を関連付けるために Source provider の名前を入力します。
    2. オプション: Advanced Storage settings: Storage class をクリックし、ディスクの作成に使用するストレージクラスを選択します。通常、このストレージクラスはすべての PVC で使用するために作成されるデフォルトのストレージクラスです。
    3. オプション: Advanced Storage 設定: Access mode をクリックし、永続ボリュームのアクセスモードを選択します。

      • Single User(RWO) は、ボリュームを単一ノードで読み取り/書き込みとしてマウントします。
      • Shared Access(RWX) は、ボリュームを数多くのノードで読み取り/書き込みとしてマウントします。
      • Read Only(ROX) は、ボリュームを数多くのノードで読み取り専用としてマウントします。
    4. オプション: Advanced Storage の設定: デフォルト値の Filesystem の代わりに Block を選択する場合は、Volume mode をクリックします。OpenShift Virtualization は、raw ブロックボリュームを静的にプロビジョニングできます。これらのボリュームにはファイルシステムがなく、ディスクに直接書き込むアプリケーションや、独自のストレージサービスを実装するアプリケーションにはパフォーマンス上の利点があります。
  7. ブートソースを保存する適切な方法を選択します。

    1. ローカルファイルをアップロードしている場合に、Save and upload をクリックします。
    2. URL またはレジストリーからコンテンツをインポートしている場合は、Save and import をクリックします。
    3. 既存の PVC のクローンを作成している場合は、Save and clone をクリックします。

ブートソースが含まれるカスタム仮想マシンテンプレートは Templates タブに一覧表示され、このテンプレートを使用して仮想マシンを作成できます。

9.1.3.1. ブートソースを追加するための仮想マシンテンプレートフィールド

以下の表は、Add boot source to template ウインドウのフィールドについて説明しています。このウィンドウは、Templates タブで仮想マシンテンプレートの Add Source をクリックすると表示されます。

名前パラメーター説明

ブートソースタイプ

ローカルファイルのアップロード (PVC の作成)

ローカルデバイスからファイルをアップロードします。サポートされるファイルタイプには、gz、xz、tar、および qcow2 が含まれます。

URL を使用したインポート (PVC の作成)

HTTP または S3 エンドポイントで利用できるイメージからコンテンツをインポートします。イメージのダウンロードが利用可能である Web ページからダウンロードリンク URL を取得し、その URL リンクを Import via URL (creates PVC) フィールドに入力します。例: Red Hat Enterprise Linux イメージについては、Red Hat カスタマーポータルにログインしてイメージのダウンロードページにアクセスし、KVM ゲストイメージのダウンロードリンク URL をコピーします。

既存の PVC のクローン作成 (PVC の作成)

クラスターですでに利用可能な PVC を使用し、このクローンを作成します。

レジストリーを使用したインポート (PVC の作成)

クラスターからアクセスでき、レジストリーにある起動可能なオペレーティングシステムコンテナーを指定します。例: kubevirt/cirros-registry-dis-demo

ソースプロバイダー

 

オプションフィールド。テンプレートのソース、またはテンプレートを作成したユーザーの名前についての説明テキストを追加します。例: Red Hat

Advanced

ストレージクラス

ディスクの作成に使用されるストレージクラス。

アクセスモード

永続ボリュームのアクセスモード。サポートされるアクセスモードは、Single User(RWO)Shared Access(RWX)Read Only (ROX) です。Single User (RWO) が選択される場合、ディスクは単一ノードによって読み取り/書き込み ( read/write) としてマウントできます。Shared Access (RWX) が選択される場合、ディスクは多数のノードによって読み取り/書き込み (read-write) としてマウントできます。kubevirt-storage-class-defaults 設定マップはデータボリュームのアクセスモードを提供します。デフォルト値は、クラスターの各ストレージクラスについての最適なオプションに従って設定されます。

+

注記

Shared Access (RWX) は、ノード間の仮想マシンのライブマイグレーションなどの、一部の機能で必要になります。

ボリュームモード

永続ボリュームがフォーマットされたファイルシステムまたは raw ブロック状態を使用するかどうかを定義します。サポートされるモードは Block および Filesystem です。kubevirt-storage-class-defaults 設定マップはデータボリュームのボリュームモードのデフォルト設定を提供します。デフォルト値は、クラスターの各ストレージクラスについての最適なオプションに従って設定されます。

9.1.4. 仮想マシンテンプレートをお気に入りとしてマーク

頻繁に使用される仮想マシンテンプレートへのアクセスを容易にするため、これらのテンプレートをお気に入りとしてマークすることができます。

手順

  1. OpenShift Virtualization コンソールのサイドメニューから WorkloadsVirtualization をクリックします。
  2. Templates タブをクリックします。
  3. お気に入りとしてマークを付ける Red Hat テンプレートを特定します。
  4. Options メニュー kebab をクリックし、 Favorite template を選択します。テンプレートは、表示されるテンプレート一覧の上位に移動します。

9.1.5. プロバイダーによる仮想マシンテンプレート一覧のフィルター

Templates タブで、Search by name フィールドを使用し、テンプレートの名前、またはテンプレートを特定するラベルのいずれかを指定して仮想マシンテンプレートを検索できます。プロバイダーでテンプレートをフィルターし、フィルター条件を満たすテンプレートのみを表示することもできます。

手順

  1. OpenShift Virtualization コンソールのサイドメニューから WorkloadsVirtualization をクリックします。
  2. Templates タブをクリックします。
  3. テンプレートをフィルターするには、Filter をクリックします。
  4. 一覧から該当するチェックボックスを選択してテンプレートをフィルターします: Red Hat SupportedUser SupportedRed Hat Provided、および User Provided

9.1.6. Web コンソールでのウィザードを使用した仮想マシンテンプレートの作成

Web コンソールは、GeneralNetworkingStorageAdvanced、および Review ステップへの移動を可能にし、仮想マシンテンプレートの作成プロセスを単純化する Create Virtual Machine Template ウィザードを特長としています。すべての必須フィールドには * のマークが付けられます。Create Virtual Machine Template ウィザードは必須フィールドへの値の入力が完了するまで次のステップに移動することを防ぎます。

注記

ウィザードを使用して、オペレーティングシステム、ブートソース、フレーバーその他の設定を指定するカスタム仮想マシンテンプレートを作成できます。

手順

  1. OpenShift Virtualization コンソールのサイドメニューから WorkloadsVirtualization をクリックします。
  2. Templates タブをクリックします。
  3. Create をクリックし、Template with Wizard を選択します。
  4. General ステップで必要なすべてのフィールドに入力します。
  5. Next をクリックして Networking ステップに進みます。デフォルトで nic0 という名前の NIC が割り当てられます。

    1. オプション: Add Network Interface をクリックし、追加の NIC を作成します。
    2. オプション: すべての NIC の削除は、Options メニュー kebab をクリックし、Delete を選択して実行できます。テンプレートから作成される仮想マシンには、割り当てられている NIC は不要です。NIC は仮想マシンの作成後に作成できます。
  6. Next をクリックして Storage ステップに進みます。
  7. Add Disk をクリックしてディスクを追加し、Add Disk 画面でフィールドの選択を完了します。

    注記

    Import via URL (creates PVC)Import via Registry (creates PVC)、または Container (ephemeral)Source として選択される場合、rootdisk ディスクが作成され、Bootable Disk として仮想マシンに割り当てられます。

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

    空のディスク、有効なブートソースのない PVC ディスク、および cloudinitdisk をブートソースとして使用することはできません。

  8. オプション: Advanced をクリックして cloud-init および SSH アクセスを設定します。

    注記

    cloud-init またはウィザードでカスタムスクリプトを使用して、SSH キーを静的に挿入します。これにより、仮想マシンを安全に、かつリモートで管理し、情報を管理し、転送することができます。この手順は、仮想マシンのセキュリティーを保護するために実行することを強く推奨します。 

  9. Review をクリックして、設定を確認し、確定します。
  10. Create Virtual Machine template をクリックします。
  11. See virtual machine template details をクリックして、仮想マシンテンプレートの詳細を表示します。

テンプレートは Templates タブにも一覧表示されます。

9.1.7. 仮想マシンテンプレートウィザードのフィールド

以下の表は、Create Virtual Machine Template ウィザードの GeneralNetworkingStorage、および Advanced ステップのフィールドを説明しています。

9.1.7.1. 仮想マシンテンプレートウィザードのフィールド

名前パラメーター説明

Template

 

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

名前

 

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

テンプレートプロバイダー

 

クラスターのテンプレートを作成するユーザーの名前、またはこのテンプレートを識別しやすい名前。

テンプレートサポート

追加のサポートはありません

このテンプレートには、クラスターの追加サポートは含まれません。

テンプレートプロバイダーによるサポート

このテンプレートは、テンプレートプロバイダーによってサポートされます。

説明

 

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

オペレーティングシステム

 

仮想マシン用に選択されるオペレーティングシステム。オペレーティングシステムを選択すると、そのオペレーティングシステムのデフォルトの Flavor および Workload Type が自動的に選択されます。

Boot Source

URL を使用したインポート (PVC の作成)

HTTP または S3 エンドポイントで利用できるイメージからコンテンツをインポートします。例: オペレーティングシステムイメージのある Web ページから URL リンクを取得します。

既存の PVC のクローン作成 (PVC の作成)

クラスターで利用可能な既存の永続ボリューム要求 (PVC) を選択し、これをクローンします。

レジストリーを使用したインポート (PVC の作成)

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

PXE (ネットワークブート: ネットワークインターフェースの追加)

ネットワークのサーバーからオペレーティングシステムを起動します。PXE ブート可能なネットワーク接続定義が必要です。

永続ボリューム要求 (PVC) のプロジェクト

 

PVC のクローン作成に使用するプロジェクト名。

永続ボリューム要求 (PVC) の名前

 

既存の PVC のクローンを作成する場合にこの仮想マシンテンプレートに適用する必要のある PVC 名。

これを CD-ROM ブートソースとしてマウントする

 

CD-ROM には、オペレーティングシステムをインストールするための追加のディスクが必要です。チェックボックスを選択して、ディスクを追加し、後でカスタマイズします。

Flavor

Tiny、Small、Medium、Large、Custom

仮想マシンテンプレートの CPU およびメモリーの容量を、そのテンプレートに関連付けられたオペレーティングシステムに応じて、仮想マシンに割り当てられる事前に定義された値で事前設定します。

デフォルトのテンプレートを選択する場合は、カスタム値を使用して、テンプレートの cpus および memsize の値を上書きしてカスタムテンプレートを作成できます。または、WorkloadsVirtualization ページの Details タブで cpus および memsize の値を変更して、カスタムテンプレートを作成できます。

Workload Type

注記

誤った Workload Type を選択した場合は、パフォーマンスまたはリソースの使用状況の問題が発生することがあります (UI の速度低下など)。

デスクトップ

デスクトップで使用するための仮想マシン設定。小規模な環境での使用に適しています。Web コンソールでの使用に推奨されます。

Server

パフォーマンスのバランスを図り、さまざまなサーバーのワークロードと互換性があります。

High-Performance

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

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

名前説明

名前

ネットワークインターフェースコントローラーの名前。

モデル

ネットワークインターフェースコントローラーのモデルを示します。サポートされる値は e1000e および virtio です。

Network

利用可能なネットワーク接続定義の一覧。

Type

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

MAC Address

ネットワークインターフェースコントローラーの MAC アドレス。MAC アドレスが指定されていない場合、これは自動的に割り当てられます。

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

名前選択説明

Source

空白 (PVC の作成)

空のディスクを作成します。

URL を使用したインポート (PVC の作成)

URL (HTTP または S3 エンドポイント) を使用してコンテンツをインポートします。

既存 PVC の使用

クラスターですでに利用可能な PVC を使用します。

既存の PVC のクローン作成 (PVC の作成)

クラスターで利用可能な既存の PVC を選択し、このクローンを作成します。

レジストリーを使用したインポート (PVC の作成)

コンテナーレジストリーを使用してコンテンツをインポートします。

コンテナー (一時的)

クラスターからアクセスできるレジストリーにあるコンテナーからコンテンツをアップロードします。コンテナーディスクは、CD-ROM や一時的な仮想マシンなどの読み取り専用ファイルシステムにのみ使用する必要があります。

名前

 

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

Size

 

ディスクのサイズ (GiB 単位)。

Type

 

ディスクのタイプ。例: Disk または CD-ROM

Interface

 

ディスクデバイスのタイプ。サポートされるインターフェースは、virtIOSATA、および SCSI です。

Storage Class

 

ディスクの作成に使用されるストレージクラス。

Advanced → Volume Mode

 

永続ボリュームがフォーマットされたファイルシステムまたは raw ブロック状態を使用するかどうかを定義します。デフォルトは Filesystem です。

Advanced → Access Mode

 

永続ボリュームのアクセスモード。サポートされるアクセスモードは、Single User (RWO)Shared Access (RWX)、および Read Only (ROX) です。

ストレージの詳細設定

以下のストレージの詳細設定は、BlankImport via URLURL、および Clone existing PVC ディスクで利用できます。これらのパラメーターはオプションです。これらのパラメーターを指定しない場合、システムは kubevirt-storage-class-defaults 設定マップのデフォルト値を使用します。

名前パラメーター説明

ボリュームモード

Filesystem

ファイルシステムベースのボリュームで仮想ディスクを保存します。

Block

ブロックボリュームで仮想ディスクを直接保存します。基礎となるストレージがサポートしている場合は、 Block を使用します。

アクセスモード

Single User (RWO)

ディスクは単一ノードで読み取り/書き込みとしてマウントできます。

Shared Access (RWX)

ディスクは数多くのノードで読み取り/書き込みとしてマウントできます。

注記

これは、ノード間の仮想マシンのライブマイグレーションなどの、一部の機能で必要になります。

Read Only (ROX)

ディスクは数多くのノードで読み取り専用としてマウントできます。

9.1.7.4. Cloud-init フィールド

名前説明

Hostname

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

認可された SSH キー

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

カスタムスクリプト

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

9.1.8. 追加リソース