第7章 仮想マシン


7.1. Red Hat イメージからの仮想マシンの作成

7.1.1. Red Hat イメージからの仮想マシン作成の概要

Red Hat イメージは ゴールデンイメージ です。これらは、セキュアなレジストリー内のコンテナーディスクとして公開されます。Containerized Data Importer (CDI) は、コンテナーディスクをポーリングしてクラスターにインポートし、スナップショットまたは永続ボリュームクレーム (PVC) として openshift-virtualization-os-images プロジェクトに保存します。

Red Hat イメージは自動的に更新されます。これらのイメージの自動更新を無効にして再度有効にすることができます。Red Hat ブートソースの更新の管理 を参照してください。

クラスター管理者は、OpenShift Virtualization Web コンソール で Red Hat Enterprise Linux (RHEL) 仮想マシンの自動サブスクリプションを有効にできるようになりました。

次のいずれかの方法を使用して、Red Hat が提供するオペレーティングシステムイメージから仮想マシンを作成できます。

重要

デフォルトの openshift-* namespace に仮想マシンを作成しないでください。代わりに、openshift 接頭辞なしの新規 namespace を作成するか、既存 namespace を使用します。

7.1.1.1. ゴールデンイメージについて

ゴールデンイメージは、新しい仮想マシンをデプロイメントするためのリソースとして使用できる、仮想マシンの事前設定されたスナップショットです。たとえば、ゴールデンイメージを使用すると、同じシステム環境を一貫してプロビジョニングし、システムをより迅速かつ効率的にデプロイメントできます。

7.1.1.1.1. ゴールデンイメージはどのように機能しますか?

ゴールデンイメージは、リファレンスマシンまたは仮想マシンにオペレーティングシステムとソフトウェアアプリケーションをインストールして設定することによって作成されます。これには、システムのセットアップ、必要なドライバーのインストール、パッチと更新の適用、特定のオプションと設定の指定が含まれます。

ゴールデンイメージは、作成後、複数のクラスターに複製してデプロイできるテンプレートまたはイメージファイルとして保存されます。ゴールデンイメージは、メンテナーによって定期的に更新されて、必要なソフトウェア更新とパッチが組み込まれるため、イメージが最新かつセキュアな状態に保たれ、新しく作成された仮想マシンはこの更新されたイメージに基づいています。

7.1.1.1.2. Red Hat のゴールデンイメージの実装

Red Hat は、Red Hat Enterprise Linux (RHEL) のバージョンのレジストリー内のコンテナーディスクとしてゴールデンイメージを公開します。コンテナーディスクは、コンテナーイメージレジストリーにコンテナーイメージとして保存される仮想マシンイメージです。公開されたイメージは、OpenShift Virtualization のインストール後に、接続されたクラスターで自動的に使用できるようになります。イメージがクラスター内で使用可能になると、仮想マシンの作成に使用できるようになります。

7.1.1.2. 仮想マシンブートソースについて

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

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

提供されたブートソースは、オペレーティングシステムの最新バージョンに自動的に更新されます。自動更新されるブートソースの場合、永続ボリュームクレーム (PVC) とボリュームスナップショットはクラスターのデフォルトストレージクラスで作成されます。設定後に別のデフォルトストレージクラスを選択した場合は、以前のデフォルトストレージクラスで設定されたクラスター namespace 内の既存のブートソースを削除する必要があります。

7.1.2. テンプレートからの仮想マシンの作成

OpenShift Container Platform Web コンソールを使用して、Red Hat テンプレートから仮想マシン (VM) を作成できます。

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

仮想マシンテンプレートを使用すると、仮想マシンを簡単に作成できます。

ブートソースを使用して作成を迅速化する

使用可能なブートソースが設定されているテンプレートを使用すると、仮想マシンの作成を効率化できます。ブートソースのあるテンプレートには、カスタムラベルがない場合、Available boot source ラベルが付けられます。

ブートソースのないテンプレートには、Boot source required というラベルが付けられます。詳細は、ブートソースの自動更新の管理 を参照してください。

仮想マシンを起動する前にカスタマイズする

仮想マシンを起動する前に、ディスクソースと仮想マシンパラメーターをカスタマイズできます。

注記

すべてのラベルとアノテーションとともに仮想マシンテンプレートをコピーすると、新しいバージョンの Scheduling、Scale、and Performance (SSP) Operator がデプロイされたときに、そのバージョンのテンプレートが非推奨に指定されます。この指定は削除できます。Web コンソールを使用した仮想マシンテンプレートのカスタマイズ 参照してください。

シングルノード OpenShift
ストレージの動作の違いにより、一部のテンプレートはシングルノード OpenShift と互換性がありません。互換性を確保するには、データボリュームまたはストレージプロファイルを使用するテンプレートまたは仮想マシンに evictionStrategy フィールドを設定しないでください。

7.1.2.2. テンプレートから仮想マシンを作成する

OpenShift Container Platform Web コンソールを使用して、使用可能なブートソースを持つテンプレートから仮想マシンを作成できます。

オプション: 仮想マシンを起動する前に、データソース、cloud-init、SSH キーなどのテンプレートまたは仮想マシンパラメーターをカスタマイズできます。

手順

  1. Web コンソールで Virtualization Catalog に移動します。
  2. 利用可能なブートソース をクリックして、テンプレートをブートソースでフィルタリングします。

    カタログにはデフォルトのテンプレートが表示されます。All Items をクリックして、フィルターに使用できるすべてのテンプレートを表示します。

  3. テンプレートタイルをクリックして詳細を表示します。
  4. 仮想マシンの Quick create VirtualMachine をクリックして、テンプレートから VM を作成します。

    オプション: テンプレートまたは仮想マシンパラメーターをカスタマイズします。

    1. Customize VirtualMachine をクリックします。
    2. Storage または Optional parameters をデプロイメントして、データソース設定を編集します。
    3. VirtualMachine パラメーターのカスタマイズ をクリックします。

      Customize and create VirtualMachine ペインには、OverviewYAMLSchedulingEnvironmentNetwork interfacesDisksScripts、および Metadata タブが表示されます。

    4. 仮想マシンの起動前に設定する必要があるパラメーター (cloud-init や静的 SSH キーなど) を編集します。
    5. Create VirtualMachine をクリックします。

      VirtualMachine details ページには、プロビジョニングステータスが表示されます。

7.1.2.3. Web コンソールを使用した仮想マシンテンプレートのカスタマイズ

仮想マシンを起動する前に、データソース、cloud-init、SSH キーなど、仮想マシンまたはテンプレートのパラメーターを変更することで、既存の仮想マシン (VM) テンプレートをカスタマイズできます。テンプレートをコピーし、すべてのラベルとアノテーションを含めてテンプレートをカスタマイズすると、新しいバージョンの Scheduling、Scale、and Performance (SSP) Operator がデプロイされたときに、カスタマイズしたテンプレートが非推奨に指定されます。

この非推奨の指定は、カスタマイズしたテンプレートから削除できます。

手順

  1. Web コンソールで Virtualization Templates に移動します。
  2. 仮想マシンテンプレートのリストから、非推奨とマークされているテンプレートをクリックします。
  3. Labels の近くにある鉛筆アイコンの横にある Edit をクリックします。
  4. 次の 2 つのラベルを削除します。

    • template.kubevirt.io/type: "base"
    • template.kubevirt.io/version: "version"
  5. Save をクリックします。
  6. 既存の Annotations の数の横にある鉛筆アイコンをクリックします。
  7. 次のアノテーションを削除します。

    • template.kubevirt.io/deprecated
  8. Save をクリックします。

7.1.2.4. Web コンソールでのカスタム仮想マシンテンプレートの作成

OpenShift Container Platform Web コンソールで YAML ファイルの例を編集して、仮想マシンテンプレートを作成します。

手順

  1. Web コンソールのサイドメニューで、Virtualization Templates をクリックします。
  2. オプション: Project ドロップダウンメニューを使用して、新しいテンプレートに関連付けられたプロジェクトを変更します。すべてのテンプレートは、デフォルトで openshift プロジェクトに保存されます。
  3. Create Template をクリックします。
  4. YAML ファイルを編集して、テンプレートパラメーターを指定します。
  5. Create をクリックします。

    テンプレートが Templates ページに表示されます。

  6. オプション: Download をクリックして、YAML ファイルをダウンロードして保存します。

7.1.2.5. カスタム namespace へのテンプレートの追加

Scheduling, Scale, and Performance (SSP) Operator は、デフォルトで仮想マシンテンプレートを openshift namespace にデプロイします。これらのテンプレートをカスタム namespace でも公開するには、HyperConverged カスタムリソース (CR) の commonTemplatesNamespace フィールドを設定します。テンプレートがカスタム namespace に同期されたら、そこでテンプレートを変更または削除できます。

注記

openshift namespace 内のテンプレートは編集しないでください。この namespace は SSP Operator によってリコンサイルされ、変更が上書きされます。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。

手順

  1. オプション: カスタム namespace がまだ存在しない場合は作成します。

    $ oc create namespace <custom_namespace>
    Copy to Clipboard Toggle word wrap
  2. オプション: openshift namespace 内のテンプレートのリストを表示します。

    $ oc get templates -n openshift
    Copy to Clipboard Toggle word wrap
  3. 以下のコマンドを実行して、デフォルトのエディターで HyperConverged CR を開きます。

    $ oc edit hco -n openshift-cnv kubevirt-hyperconverged
    Copy to Clipboard Toggle word wrap
  4. commonTemplatesNamespace フィールドを追加し、ターゲット namespace を設定します。以下に例を示します。

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
    spec:
      commonTemplatesNamespace: <custom_namespace>
    Copy to Clipboard Toggle word wrap
  5. 保存して終了します。SSP Operator により、カスタム namespace 内でテンプレートが作成または更新されます。
  6. カスタム namespace 内のテンプレートを検証します。

    $ oc get templates -n <custom_namespace>
    Copy to Clipboard Toggle word wrap

7.1.2.6. カスタム namespace からのテンプレートの削除

カスタム namespace から仮想マシンテンプレートを削除するには、HyperConverged カスタムリソース (CR) から commonTemplateNamespace 属性を削除し、そのカスタム namespace から各テンプレートを削除します。

手順

  1. 以下のコマンドを実行して、デフォルトエディターで HyperConverged CR を編集します。

    $ oc edit hco -n openshift-cnv kubevirt-hyperconverged
    Copy to Clipboard Toggle word wrap
  2. commonTemplateNamespace 属性を削除します。

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
    spec:
      commonTemplatesNamespace: <custom_namespace>
    Copy to Clipboard Toggle word wrap
  3. HyperConverged CR から削除したカスタム namespace から、特定のテンプレートを削除します。

    $ oc delete templates -n <custom_namespace> <template_name>
    Copy to Clipboard Toggle word wrap

検証

  • テンプレートがカスタム namespace から削除されたことを確認します。

    $ oc get templates -n <custom_namespace>
    Copy to Clipboard Toggle word wrap

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

OpenShift Container Platform Web コンソールを使用して、インスタンスタイプから仮想マシン (VM) を作成できます。

重要

インスタンスタイプからの仮想マシンの作成は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

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

OpenShift Container Platform Web コンソールを使用して、インスタンスタイプから仮想マシンを作成できます。

手順

  1. Web コンソールで、Virtualization Catalog に移動し、InstanceTypes タブをクリックします。
  2. 起動可能なボリュームを選択します。

    注記

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

  3. インスタンスタイプのタイルをクリックし、ワークロードに適した設定を選択します。
  4. 公開 SSH キーをまだプロジェクトに追加していない場合は、VirtualMachine details セクションの Authorized SSH key の横にある編集アイコンをクリックします。
  5. 以下のオプションのいずれかを選択します。

    • Use existing: シークレットリストからシークレットを選択します。
    • Add new:

      1. 公開 SSH キーファイルを参照するか、ファイルをキーフィールドに貼り付けます。
      2. シークレット名を入力します。
      3. オプション: Automatically apply this key to any new VirtualMachine you create in this project を選択します。
      4. Save をクリックします。
  6. オプション: View YAML & CLI をクリックして YAML ファイルを表示します。CLI をクリックして CLI コマンドを表示します。YAML ファイルの内容または CLI コマンドをダウンロードまたはコピーすることもできます。
  7. Create VirtualMachine をクリックします。

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

7.1.4. コマンドラインからの仮想マシンの作成

VirtualMachine マニフェストを編集または作成することで、コマンドラインから仮想マシン (VM) を作成できます。

7.1.4.1. VirtualMachine マニフェストからの仮想マシンの作成

VirtualMachine マニフェストから仮想マシンを作成できます。

手順

  1. 仮想マシンの VirtualMachine マニフェストを編集します。次の例では、Red Hat Enterprise Linux (RHEL) 仮想マシンを設定します。

    例7.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 
    2
    
            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>' 
    3
    
                chpasswd: { expire: False }
            name: cloudinitdisk
    Copy to Clipboard Toggle word wrap
    1
    仮想マシンの名前を指定します。
    2
    Hyperconvered CR の spec.dataImportCronTemplate.spec.managedDataSource フィールドに名前を指定します。
    3
    cloud-user のパスワードを指定します。
  2. マニフェストファイルを使用して仮想マシンを作成します。

    $ oc create -f <vm_manifest_file>.yaml
    Copy to Clipboard Toggle word wrap
  3. オプション: 仮想マシンを起動します。

    $ virtctl start <vm_name> -n <namespace>
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat