8.2. Web コンソールでの仮想マシンの作成
8.2.1. Red Hat イメージからの仮想マシン作成の概要
Red Hat イメージは ゴールデンイメージ です。これらは、安全なレジストリー内のコンテナーディスクとして公開されます。Containerized Data Importer (CDI) は、コンテナーディスクをポーリングしてクラスターにインポートし、スナップショットまたは永続ボリュームクレーム (PVC) として openshift-virtualization-os-images
プロジェクトに保存します。必要に応じて、ゴールデンイメージに カスタム namespace を使用 できます。
Red Hat イメージは自動的に更新されます。これらのイメージの自動更新を無効にして再度有効にすることができます。Red Hat ブートソースの更新の管理 を参照してください。
クラスター管理者は、OpenShift Virtualization Web コンソール で Red Hat Enterprise Linux (RHEL) 仮想マシンの自動サブスクリプションを有効にできるようになりました。
次のいずれかの方法を使用して、Red Hat が提供するオペレーティングシステムイメージから仮想マシンを作成できます。
デフォルトの openshift-*
namespace に仮想マシンを作成しないでください。代わりに、openshift
接頭辞なしの新規 namespace を作成するか、既存 namespace を使用します。
8.2.1.1. ゴールデンイメージについて
ゴールデンイメージは、新しい仮想マシンをデプロイメントするためのリソースとして使用できる、仮想マシンの事前設定されたスナップショットです。たとえば、ゴールデンイメージを使用すると、同じシステム環境を一貫してプロビジョニングし、システムをより迅速かつ効率的にデプロイメントできます。
8.2.1.1.1. ゴールデンイメージはどのように機能しますか?
ゴールデンイメージは、リファレンスマシンまたは仮想マシンにオペレーティングシステムとソフトウェアアプリケーションをインストールして設定することによって作成されます。これには、システムのセットアップ、必要なドライバーのインストール、パッチと更新の適用、特定のオプションと環境設定の設定が含まれます。
ゴールデンイメージは、作成後、複数のクラスターに複製してデプロイできるテンプレートまたはイメージファイルとして保存されます。ゴールデンイメージは、メンテナーによって定期的に更新されて、必要なソフトウェア更新とパッチが組み込まれるため、イメージが最新かつ安全な状態に保たれ、新しく作成された仮想マシンはこの更新されたイメージに基づいています。
8.2.1.1.2. Red Hat のゴールデンイメージの実装
Red Hat は、Red Hat Enterprise Linux (RHEL) のバージョンのレジストリー内のコンテナーディスクとしてゴールデンイメージを公開します。コンテナーディスクは、コンテナーイメージレジストリーにコンテナーイメージとして保存される仮想マシンイメージです。公開されたイメージは、OpenShift Virtualization のインストール後に、接続されたクラスターで自動的に使用できるようになります。イメージがクラスター内で使用可能になると、仮想マシンの作成に使用できるようになります。
8.2.1.2. 仮想マシンブートソースについて
仮想マシンは、仮想マシン定義と、データボリュームによってバックアップされる 1 つ以上のディスクで構成されます。仮想マシンテンプレートを使用すると、事前定義された仕様を使用して仮想マシンを作成できます。
すべてのテンプレートにはブートソースが必要です。ブートソースは、設定されたドライバーを含む完全に設定されたディスクイメージです。各テンプレートには、ブートソースへのポインターを含む仮想マシン定義が含まれています。各ブートソースには、事前に定義された名前および namespace があります。オペレーティングシステムによっては、ブートソースは自動的に提供されます。これが提供されない場合、管理者はカスタムブートソースを準備する必要があります。
提供されたブートソースは、オペレーティングシステムの最新バージョンに自動的に更新されます。自動更新されるブートソースの場合、永続ボリュームクレーム (PVC) とボリュームスナップショットはクラスターのデフォルトストレージクラスで作成されます。設定後に別のデフォルトストレージクラスを選択した場合は、以前のデフォルトストレージクラスで設定されたクラスター namespace 内の既存のブートソースを削除する必要があります。
8.2.1.3. ゴールデンイメージのカスタム namespace の設定
ゴールデンイメージのデフォルトの namespace は openshift-virtualization-os-images
ですが、カスタムの namespace を設定すると、デフォルトのブートソースへのユーザーアクセスを制限できます。
8.2.1.3.1. Web コンソールを使用したゴールデンイメージのカスタム namespace の設定
OpenShift Container Platform Web コンソールを使用して、クラスター内のゴールデンイメージのカスタム namespace を設定できます。
手順
-
Web コンソールで、Virtualization
Overview を選択します。 - Settings タブを選択します。
-
Cluster タブで、General settings
Bootable volumes project を選択します。 ゴールデンイメージに使用する namespace を選択します。
- すでに namespace を作成している場合は、Project リストから選択します。
namespace を作成していない場合は、リストの一番下までスクロールして Create project をクリックします。
- Create project ダイアログの Name フィールドに新しい namespace の名前を入力します。
- Create をクリックします。
8.2.1.3.2. CLI を使用したゴールデンイメージのカスタム namespace の設定
HyperConverged
カスタムリソース (CR) の spec.commonBootImageNamespace
フィールドを設定することで、クラスター内のゴールデンイメージのカスタム namespace を設定できます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - ゴールデンイメージに使用する namespace を作成した。
手順
以下のコマンドを実行して、デフォルトのエディターで
HyperConverged
CR を開きます。$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
spec.commonBootImageNamespace
フィールドの値を更新して、カスタム namespace を設定します。設定ファイルのサンプル
apiVersion: hco.kubevirt.io/v1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: openshift-cnv spec: commonBootImageNamespace: <custom_namespace> 1 # ...
- 1
- ゴールデンイメージに使用する namespace。
- 変更を保存し、エディターを終了します。
8.2.2. Web ページからイメージをインポートして仮想マシンを作成する
Web ページからオペレーティングシステムイメージをインポートすることで、仮想マシンを作成できます。
Red Hat が提供していないオペレーティングシステムイメージから作成された仮想マシンには、QEMU ゲストエージェント をインストールする必要があります。
8.2.2.1. Web コンソールを使用して Web ページ上のイメージから仮想マシンを作成する
OpenShift Container Platform Web コンソールを使用して Web ページからイメージをインポートすることで、仮想マシンを作成できます。
前提条件
- イメージを含む Web ページにアクセスできる。
手順
-
Web コンソールで Virtualization
Catalog に移動します。 - 使用可能なブートソースのないテンプレートタイルをクリックします。
- Customize VirtualMachine をクリックします。
- Customize template parameters ページで、Storage を展開し、Disk source リストから URL (creates PVC) を選択します。
-
イメージの URL を入力します。例:
https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software
- ディスクサイズを設定します。
- Next をクリックします。
- Create VirtualMachine をクリックします。
8.2.2.2. コマンドラインを使用して Web ページ上のイメージから仮想マシンを作成する
コマンドラインを使用して、Web ページ上のイメージから仮想マシンを作成できます。
仮想マシンが作成されると、イメージを含むデータボリュームが永続ストレージにインポートされます。
前提条件
- イメージを含む Web ページへのアクセス認証情報が必要です。
手順
VirtualMachine
マニフェストを編集し、vm-rhel-datavolume.yaml
ファイルとして保存します。apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: creationTimestamp: null name: vm-rhel-datavolume 1 labels: kubevirt.io/vm: vm-rhel-datavolume spec: dataVolumeTemplates: - metadata: creationTimestamp: null name: rhel-dv 2 spec: sourceRef: kind: DataSource name: rhel9 namespace: openshift-virtualization-os-images storage: resources: requests: storage: 10Gi 3 instancetype: name: u1.small 4 preference: inferFromVolume: datavolumedisk1 runStrategy: Always template: metadata: creationTimestamp: null labels: kubevirt.io/vm: vm-rhel-datavolume spec: domain: devices: {} resources: {} terminationGracePeriodSeconds: 180 volumes: - dataVolume: name: rhel-dv name: datavolumedisk1 status: {}
次のコマンドを実行して VM を作成します。
$ oc create -f vm-rhel-datavolume.yaml
oc create
コマンドは、データボリュームと仮想マシンを作成します。CDI コントローラーは適切なアノテーションを使用して基礎となる PVC を作成し、インポートプロセスが開始されます。インポートが完了すると、データボリュームのステータスがSucceeded
に変わります。仮想マシンを起動できます。データボリュームのプロビジョニングはバックグランドで実行されるため、これをプロセスをモニターする必要はありません。
検証
インポーター Pod は、指定された URL からイメージをダウンロードし、プロビジョニングされた永続ボリュームに保存します。以下のコマンドを実行してインポーター Pod のステータスを確認します。
$ oc get pods
次のコマンドを実行して、ステータスが
Succeeded
になるまでデータボリュームを監視します。$ oc describe dv rhel-dv 1
- 1
VirtualMachine
マニフェストで定義したデータボリューム名を指定します。
プロビジョニングが完了し、シリアルコンソールにアクセスして仮想マシンが起動したことを確認します。
$ virtctl console vm-rhel-datavolume
8.2.3. イメージをアップロードして仮想マシンを作成する
ローカルマシンからオペレーティングシステムイメージをアップロードすることで、仮想マシンを作成できます。
Windows イメージを PVC にアップロードすることで、Windows 仮想マシンを作成できます。次に、仮想マシンの作成時に PVC のクローンを作成します。
Red Hat が提供していないオペレーティングシステムイメージから作成された仮想マシンには、QEMU ゲストエージェント をインストールする必要があります。
Windows 仮想マシンにも VirtIO ドライバー をインストールする必要があります。
8.2.3.1. Web コンソールを使用して、アップロードされたイメージから仮想マシンを作成する
OpenShift Container Platform Web コンソールを使用して、アップロードされたオペレーティングシステムイメージから仮想マシンを作成できます。
前提条件
-
IMG
、ISO
、またはQCOW2
イメージファイルが必要です。
手順
-
Web コンソールで Virtualization
Catalog に移動します。 - 使用可能なブートソースのないテンプレートタイルをクリックします。
- Customize VirtualMachine をクリックします。
- Customize template parameters ページで、Storage を展開し、Disk source リストから Upload (Upload a new file to a PVC) を選択します。
- ローカルマシン上のイメージを参照し、ディスクサイズを設定します。
- Customize VirtualMachine をクリックします。
- Create VirtualMachine をクリックします。
8.2.3.1.1. 仮想マシンイメージの一般化
システム固有の設定データをすべて削除して Red Hat Enterprise Linux (RHEL) イメージを一般化してから、そのイメージを使用してゴールデンイメージ (仮想マシンの事前設定済みスナップショット) を作成できます。ゴールデンイメージを使用して新しい仮想マシンをデプロイできます。
virtctl
、guestfs
、virt-sysprep
ツールを使用して、RHEL 仮想マシンを一般化できます。
前提条件
- ベースの仮想マシンとして使用する RHEL 仮想マシンがある。
-
OpenShift CLI (
oc
) がインストールされている。 -
virtctl
ツールがインストールされている。
手順
実行中の RHEL 仮想マシンを停止するには、次のコマンドを入力します。
$ virtctl stop <my_vm_name>
- オプション: 元の仮想マシンのデータが失われないように、仮想マシンのクローンを作成します。その後、クローンの仮想マシンを一般化できます。
次のコマンドを実行して、仮想マシンのルートファイルシステムを格納する
dataVolume
を取得します。$ oc get vm <my_vm_name> -o jsonpath="{.spec.template.spec.volumes}{'\n'}"
出力例
[{"dataVolume":{"name":"<my_vm_volume>"},"name":"rootdisk"},{"cloudInitNoCloud":{...}]
次のコマンドを実行して、リストされた
dataVolume
に一致する永続ボリューム要求 (PVC) を取得します。$ oc get pvc
出力例
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE <my_vm_volume> Bound …
注記クラスター設定により仮想マシンを複製できない場合は、元の仮想マシンのデータが失われないように、代わりに仮想マシン PVC をデータボリュームに複製できます。その後、複製した PVC を使用してゴールデンイメージを作成できます。
PVC を複製してゴールデンイメージを作成する場合は、複製された PVC を使用して次の手順に進みます。
libguestfs-tools
を使用して新しいインタラクティブコンテナーをデプロイし、次のコマンドを実行して PVC をそれにアタッチします。$ virtctl guestfs <my-vm-volume> --uid 107
このコマンドは、次のコマンドを実行するためのシェルを開きます。
次のコマンドを実行して、システム固有のすべての設定を削除します。
$ virt-sysprep -a disk.img
-
OpenShift Container Platform コンソールで、Virtualization
Catalog をクリックします。 - Add volume をクリックします。
Add volume ウィンドウで、以下を実行します。
- Source type リストから、Use existing Volume を選択します。
- Volume project リストからプロジェクトを選択します。
- Volume name リストから正しい PVC を選択します。
- Volume name フィールドに、新しいゴールデンイメージの名前を入力します。
- Preference リストから、使用している RHEL バージョンを選択します。
- Default Instance Type リストから、以前に選択した RHEL バージョンに適した CPU とメモリーの要件を持つインスタンスタイプを選択します。
- Save をクリックします。
新しいボリュームが Select volume to boot from リストに表示されます。これが新しいゴールデンイメージです。このボリュームを使用して新しい仮想マシンを作成できます。
仮想マシンの一般化についての関連情報
8.2.3.2. Windows 仮想マシンの作成
Windows 仮想マシンを作成するには、Windows イメージを永続ボリューム要求 (PVC) にアップロードし、OpenShift Container Platform Web コンソールを使用して仮想マシンを作成するときに PVC のクローンを作成します。
前提条件
- Windows Media Creation Tool を使用して Windows インストール DVD または USB が作成されている。Microsoft ドキュメントの Windows 10 インストールメディアの作成 を参照してください。
-
autounattend.xml
アンサーファイルを作成しました。Microsoft ドキュメントの アンサーファイル (unattend.xml) を参照してください。
手順
Windows イメージを新しい PVC としてアップロードします。
-
Web コンソールで Storage
PersistentVolumeClaims に移動します。 -
Create PersistentVolumeClaim
With Data upload form をクリックします。 - Windows イメージを参照して選択します。
PVC 名を入力し、ストレージクラスとサイズを選択して、Upload をクリックします。
Windows イメージは PVC にアップロードされます。
-
Web コンソールで Storage
アップロードされた PVC のクローンを作成して、新しい仮想マシンを設定します。
-
Virtualization
Catalog に移動します。 - Windows テンプレートタイルを選択し、Customize VirtualMachine をクリックします。
- Disk source リストから Clone (clone PVC) を選択します。
- PVC プロジェクト、Windows イメージ PVC、およびディスクサイズを選択します。
-
Virtualization
アンサーファイルを仮想マシンに適用します。
- VirtualMachine パラメーターのカスタマイズ をクリックします。
- Scripts タブの Sysprep セクションで、Edit をクリックします。
-
autounattend.xml
応答ファイルを参照し、Save をクリックします。
仮想マシンの実行戦略を設定します。
- 仮想マシンがすぐに起動しないように、Start this VirtualMachine after creation をオフにします。
- Create VirtualMachine をクリックします。
-
YAML タブで、
running:false
をrunStrategy: RerunOnFailure
に置き換え、Save をクリックします。
Options メニュー
をクリックして Start を選択します。
仮想マシンは、
autounattend.xml
アンサーファイルを含むsysprep
ディスクから起動します。
8.2.3.2.1. Windows 仮想マシンイメージの一般化
Windows オペレーティングシステムイメージを一般化して、イメージを使用して新しい仮想マシンを作成する前に、システム固有の設定データをすべて削除できます。
仮想マシンを一般化する前に、Windows の無人インストール後にsysprep
ツールが応答ファイルを検出できないことを確認する必要があります。
前提条件
- QEMU ゲストエージェントがインストールされた実行中の Windows 仮想マシン。
手順
-
OpenShift Container Platform コンソールで、Virtualization
VirtualMachines をクリックします。 - Windows 仮想マシンを選択して、VirtualMachine details ページを開きます。
-
Configuration
Disks をクリックします。 -
sysprep
ディスクの横にある Options メニューをクリックし、Detach を選択します。
- Detach をクリックします。
-
sysprep
ツールによる検出を回避するために、C:\Windows\Panther\unattend.xml
の名前を変更します。 次のコマンドを実行して、
sysprep
プログラムを開始します。%WINDIR%\System32\Sysprep\sysprep.exe /generalize /shutdown /oobe /mode:vm
-
sysprep
ツールが完了すると、Windows 仮想マシンがシャットダウンします。これで、仮想マシンのディスクイメージを Windows 仮想マシンのインストールイメージとして使用できるようになりました。
これで、仮想マシンを特殊化できます。
8.2.3.2.2. Windows 仮想マシンイメージの特殊化
Windows 仮想マシンを特殊化すると、一般化された Windows イメージから VM にコンピューター固有の情報が設定されます。
前提条件
- 一般化された Windows ディスクイメージが必要です。
-
unattend.xml
応答ファイルを作成する必要があります。詳細は、Microsoft のドキュメント を参照してください。
手順
-
OpenShift Container Platform コンソールで、Virtualization
Catalog をクリックします。 - Windows テンプレートを選択し、Customize VirtualMachine をクリックします。
- Disk source リストから PVC (clone PVC) を選択します。
- 一般化された Windows イメージの PVC プロジェクトと PVC 名を選択します。
- VirtualMachine パラメーターのカスタマイズ をクリックします。
- Scripts タブをクリックします。
-
Sysprep セクションで、Edit をクリックし、
unattend.xml
応答ファイルを参照して、Save をクリックします。 - Create VirtualMachine をクリックします。
Windows は初回起動時に、unattend.xml
応答ファイルを使用して VM を特殊化します。これで、仮想マシンを使用する準備が整いました。
Windows 仮想マシンを作成するための関連情報
8.2.3.3. コマンドラインを使用して、アップロードされたイメージから仮想マシンを作成する
virtctl
コマンドラインツールを使用して、オペレーティングシステムイメージをアップロードできます。既存のデータボリュームを使用することも、イメージ用に新しいデータボリュームを作成することもできます。
前提条件
-
ISO
、IMG
、またはQCOW2
オペレーティングシステムイメージファイルがある。 -
最高のパフォーマンスを得るには、virt-sparsify ツールまたは
xz
ユーティリティーまたはgzip
ユーティリティーを使用してイメージファイルを圧縮しておく。 -
virtctl
がインストールされている。 - クライアントマシンが OpenShift Container Platform ルーターの証明書を信頼するように設定されている。
手順
virtctl image-upload
コマンドを実行してイメージをアップロードします。$ virtctl image-upload dv <datavolume_name> \ 1 --size=<datavolume_size> \ 2 --image-path=</path/to/image> \ 3
注記-
新規データボリュームを作成する必要がない場合は、
--size
パラメーターを省略し、--no-create
フラグを含めます。 - ディスクイメージを PVC にアップロードする場合、PVC サイズは圧縮されていない仮想ディスクのサイズよりも大きくなければなりません。
-
HTTPS を使用したセキュアでないサーバー接続を許可するには、
--insecure
パラメーターを使用します。--insecure
フラグを使用する際に、アップロードエンドポイントの信頼性は検証 されない 点に注意してください。
-
新規データボリュームを作成する必要がない場合は、
オプション: データボリュームが作成されたことを確認するには、以下のコマンドを実行してすべてのデータボリュームを表示します。
$ oc get dvs
8.2.4. 仮想マシンのクローン作成
仮想マシンのクローンを作成するか、スナップショットから新しい仮想マシンを作成できます。
8.2.4.1. Web コンソールを使用して仮想マシンを複製する
Web コンソールを使用して、既存の仮想マシンを複製できます。
手順
-
Web コンソールで Virtualization
VirtualMachines に移動します。 - 仮想マシンを選択して、VirtualMachine details ページを開きます。
- Actions をクリックします。
- Clone を選択します。
- Clone VirtualMachine ページで、新しい仮想マシンの名前を入力します。
- (オプション) Start cloned VM チェックボックスを選択して、複製された仮想マシンを開始します。
- Clone をクリックします。
8.2.4.2. Web コンソールを使用して既存のスナップショットから仮想マシンを作成する
既存のスナップショットをコピーすることで、新しい仮想マシンを作成できます。
手順
-
Web コンソールで Virtualization
VirtualMachines に移動します。 - 仮想マシンを選択して、VirtualMachine details ページを開きます。
- Snapshots タブをクリックします。
-
コピーするスナップショットの Options メニュー
をクリックします。
- Create VirtualMachine を選択します。
- 仮想マシンの名前を入力します。
- (オプション) Start this VirtualMachine after creation チェックボックスを選択して、新しい仮想マシンを起動します。
- Create をクリックします。