第7章 仮想マシンの作成


7.1. インスタンスタイプからの仮想マシンの作成

OpenShift Container Platform Web コンソールまたは CLI を使用して仮想マシンを作成する場合でも、インスタンスタイプを使用することで仮想マシン (仮想マシン) の作成を簡素化できます。

7.1.1. インスタンスタイプについて

インスタンスタイプは、新しい仮想マシンに適用するリソースと特性を定義できる再利用可能なオブジェクトです。カスタムインスタンスタイプを定義したり、OpenShift Virtualization のインストール時に含まれるさまざまなインスタンスタイプを使用したりできます。

新しいインスタンスタイプを作成するには、まず手動で、または virtctl CLI ツールを使用してマニフェストを作成する必要があります。次に、マニフェストをクラスターに適用してインスタンスタイプオブジェクトを作成します。

OpenShift Virtualization は、インスタンスタイプを設定するための 2 つの CRD を提供します。

  • namespace 付きジェクト: VirtualMachineInstancetype
  • クラスター全体のオブジェクト: VirtualMachineClusterInstancetype

これらのオブジェクトは同じ VirtualMachineInstancetypeSpec を使用します。

7.1.1.1. 必須の属性

インスタンスタイプを設定するときは、cpu および memory 属性を定義する必要があります。その他の属性はオプションです。

注記

インスタンスタイプから仮想マシンを作成する場合は、インスタンスタイプで定義されているパラメーターをオーバーライドすることはできません。

インスタンスタイプには定義された CPU およびメモリー属性が必要であるため、OpenShift Virtualization は、インスタンスタイプから仮想マシンを作成するときに、これらのリソースに対する追加の要求を常に拒否します。

インスタンスタイプマニフェストを手動で作成できます。以下に例を示します。

必須フィールドを含む YAML ファイルの例

apiVersion: instancetype.kubevirt.io/v1beta1
kind: VirtualMachineInstancetype
metadata:
  name: example-instancetype
spec:
  cpu:
    guest: 1 1
  memory:
    guest: 128Mi 2

1
必須。ゲストに割り当てる vCPU の数を指定します。
2
必須。ゲストに割り当てるメモリーの量を指定します。

virtctl CLI ユーティリティーを使用してインスタンスタイプマニフェストを作成できます。以下に例を示します。

必須フィールドを含む virtctl コマンドの例

$ virtctl create instancetype --cpu 2 --memory 256Mi

ここでは、以下のようになります。

--cpu <value>
ゲストに割り当てる vCPU の数を指定します。必須。
--memory <value>
ゲストに割り当てるメモリーの量を指定します。必須。
ヒント

次のコマンドを実行すると、新しいマニフェストからオブジェクトをすぐに作成できます。

$ virtctl create instancetype --cpu 2 --memory 256Mi | oc apply -f -

7.1.1.2. オプション属性

必須の cpu および memory 属性に加えて、VirtualMachineInstancetypeSpec に次のオプション属性を含めることができます。

annotations
仮想マシンに適用するアノテーションをリスト表示します。
gpus
パススルー用の vGPU をリスト表示します。
hostDevices
パススルー用のホストデバイスをリスト表示します。
ioThreadsPolicy
専用ディスクアクセスを管理するための IO スレッドポリシーを定義します。
launchSecurity
セキュア暗号化仮想化 (SEV) を設定します。
nodeSelector
この仮想マシンがスケジュールされているノードを制御するためのノードセレクターを指定します。
schedulerName
デフォルトのスケジューラーの代わりに、この仮想マシンに使用するカスタムスケジューラーを定義します。

7.1.2. 定義済みのインスタンスタイプ

OpenShift Virtualization には、common-instancetypes と呼ばれる事前定義されたインスタンスタイプのセットが含まれています。特定のワークロードに特化したものもあれば、ワークロードに依存しないものもあります。

これらのインスタンスタイプリソースは、シリーズ、バージョン、サイズに応じて名前が付けられます。サイズの値は . 区切り文字に続き、範囲は nano から 8xlarge です。

表7.1 common-instancetypes シリーズの比較
ユースケースシリーズ特徴vCPU とメモリーの比率リソースの例

Universal

U

  • バースト可能な CPU パフォーマンス

1:4

u1.medium
  • 仮想 CPU 1 個
  • 4Gi メモリー

過剰コミットメント

O

  • 過剰にコミットされたメモリー
  • バースト可能な CPU パフォーマンス

1:4

o1.small
  • 1 vCPU
  • 2Gi メモリー

コンピュート専用

CX

  • hugepage
  • 専用 CPU
  • 分離されたエミュレータースレッド
  • vNUMA

1:2

cx1.2xlarge
  • 仮想 CPU 8 個
  • 16Gi メモリー

NVIDIA GPU

GN

  • NVIDIA GPU Operator が提供する GPU を使用する仮想マシンの場合
  • 定義済みの GPU がある
  • バースト可能な CPU パフォーマンス

1:4

gn1.8xlarge
  • 仮想 CPU 32 個
  • 128Gi メモリー

メモリー集約型

M

  • hugepage
  • バースト可能な CPU パフォーマンス

1:8

m1.large
  • 仮想 CPU 2 個
  • 16Gi メモリー

ネットワーク集約型

N

  • hugepage
  • 専用 CPU
  • 分離されたエミュレータースレッド
  • DPDK ワークロードを実行できるノードが必要

1:2

n1.medium
  • 仮想 CPU 4 個
  • 4Gi メモリー

7.1.3. インスタンスタイプまたは設定の指定

インスタンスタイプまたは優先度、またはその両方を指定して、複数の仮想マシンで再利用するためのワークロードサイジングとランタイム特性を定義できます。

7.1.3.1. フラグを使用したインスタンスタイプと設定の指定

フラグを使用して、インスタンスタイプおよび設定を指定します。

前提条件

  • クラスターにインスタンスタイプ、プリファレンス、またはその両方がある。

手順

  1. 仮想マシンを作成するときにインスタンスタイプを指定するには、--instancetype フラグを使用します。設定を指定するには、--preference フラグを使用します。次の例には両方のフラグが含まれています。

    $ virtctl create vm --instancetype <my_instancetype> --preference <my_preference>
  2. オプション: namespace インスタンスタイプまたは設定を指定するには、--instancetype または --preference フラグコマンドに渡される値に kind を含めます。namespace インスタンスタイプまたは設定は、仮想マシンを作成するのと同じ namespace に存在する必要があります。次の例には、namespace インスタンスタイプと namespace 設定のフラグが含まれています。

    $ virtctl create vm --instancetype virtualmachineinstancetype/<my_instancetype> --preference virtualmachinepreference/<my_preference>

7.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
  • 仮想マシンのブートに使用されるボリューム以外のボリュームからインスタンスタイプまたは設定を推測するには、--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

7.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 ラベルになります。

前提条件

  • クラスターにインスタンスタイプ、プリファレンス、またはその両方がある。

手順

  • データソースにラベルを適用するには、oc label を使用します。次のコマンドは、クラスター全体のインスタンスタイプを指すラベルを適用します。

    $ oc label DataSource foo instancetype.kubevirt.io/default-instancetype=<my_instancetype>

7.1.4. Web コンソールを使用して、インスタンスタイプから仮想マシンを作成します。

OpenShift Container Platform Web コンソールを使用して、インスタンスタイプから仮想マシンを作成できます。Web コンソールを使用して、既存のスナップショットをコピーするか仮想マシンを複製して、仮想マシンを作成することもできます。

使用可能な起動可能なボリュームのリストから仮想マシンを作成できます。Linux ベースまたは Windows ベースのボリュームをリストに追加できます。

手順

  1. Web コンソールで、Virtualization Catalog に移動します。

    InstanceTypes タブがデフォルトで開きます。

  2. 次のオプションのいずれかを選択します。

    • リストから適切な起動可能なボリュームを選択します。リストが切り捨てられている場合は、Show all ボタンをクリックしてリスト全体を表示します。

      注記

      ブート可能ボリュームテーブルには、openshift-virtualization-os-images namespace 内の instancetype.kubevirt.io/default-preference ラベルを持つボリュームのみリストされます。

      • オプション: 星アイコンをクリックして、ブート可能ボリュームをお気に入りとして指定します。星付きのブート可能ボリュームは、ボリュームリストの最初に表示されます。
    • 新しいボリュームをアップロードするか、既存の永続ボリューム要求 (PVC)、ボリュームスナップショット、または containerDisk ボリュームを使用するには Add volume をクリックします。Save をクリックします。

      クラスターで使用できないオペレーティングシステムのロゴは、リストの下部に表示されます。Add volume リンクをクリックすると、必要なオペレーティングシステムのボリュームを追加できます。

      さらに、Create a Windows boot source クイックスタートへのリンクもあります。Select volume to boot from の横にある疑問符アイコンの上にポインターを置くと、ポップオーバーに同じリンクが表示されます。

      環境をインストールした直後、または環境が切断された直後は、起動元のボリュームのリストは空になります。その場合、Windows、RHEL、Linux の 3 つのオペレーティングシステムのロゴが表示されます。Add volume ボタンをクリックすると、要件を満たす新しいボリュームを追加できます。

  3. インスタンスタイプのタイルをクリックし、ワークロードに適したリソースサイズを選択します。
  4. オプション: 起動元のボリュームに適用される仮想マシンの詳細 (仮想マシンの名前を含む) を選択します。

    • Linux ベースのボリュームの場合は、次の手順に従って SSH を設定します。

      1. 公開 SSH キーをまだプロジェクトに追加していない場合は、VirtualMachine details セクションの Authorized SSH key の横にある編集アイコンをクリックします。
      2. 以下のオプションのいずれかを選択します。

        • Use existing: シークレットリストからシークレットを選択します。
        • Add new: 以下の手順に従ってください。

          1. 公開 SSH キーファイルを参照するか、ファイルをキーフィールドに貼り付けます。
          2. シークレット名を入力します。
          3. オプション: Automatically apply this key to any new VirtualMachine you create in this project を選択します。
      3. Save をクリックします。
    • Windows ボリュームの場合は、次のいずれかの手順に従って sysprep オプションを設定します。

      • Windows ボリュームに sysprep オプションをまだ追加していない場合は、次の手順に従います。

        1. VirtualMachine details セクションの Sysprep の横にある編集アイコンをクリックします。
        2. Autoattend.xml アンサーファイルを追加します。
        3. Unattend.xml アンサーファイルを追加します。
        4. Save をクリックします。
      • Windows ボリュームに既存の sysprep オプションを使用する場合は、次の手順に従います。

        1. 既存の sysprep を添付 をクリックします。
        2. 既存の sysprep Unattend.xml アンサーファイルの名前を入力します。
        3. Save をクリックします。
  5. オプション: Windows 仮想マシンを作成する場合は、Windows ドライバーディスクをマウントできます。

    1. Customize VirtualMachine ボタンをクリックします。
    2. VirtualMachine details ページで、Storage をクリックします。
    3. Mount Windows drivers disk チェックボックスを選択します。
  6. オプション: View YAML & CLI をクリックして YAML ファイルを表示します。CLI をクリックして CLI コマンドを表示します。YAML ファイルの内容または CLI コマンドをダウンロードまたはコピーすることもできます。
  7. Create VirtualMachine をクリックします。

仮想マシンの作成後、VirtualMachine details ページでステータスを監視できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.