7.2.2. Web ホストされたイメージから仮想マシンを作成する
コマンドラインを使用して、Web ページ上のイメージから仮想マシンを作成できます。
仮想マシンが作成されると、イメージを含むデータボリュームが永続ストレージにインポートされます。
前提条件
- イメージが含まれている Web ページへのアクセス認証情報を持っている。
-
virtctlCLI がインストールされている。 -
OpenShift CLI (
oc) がインストールされている。
手順
仮想マシンの
VirtualMachineマニフェストを作成し、YAML ファイルとして保存します。たとえば、Web ページ上のイメージから最小限の Red Hat Enterprise Linux (RHEL) 仮想マシンを作成するには、次のコマンドを実行します。$ virtctl create vm --name vm-rhel-9 --instancetype u1.small --preference rhel.9 --volume-import type:http,url:https://example.com/rhel9.qcow2,size:10Gi仮想マシンの
VirtualMachineマニフェストを確認します。apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: vm-rhel-9 spec: dataVolumeTemplates: - metadata: name: imported-volume-6dcpf spec: source: http: url: https://example.com/rhel9.qcow2 storage: resources: requests: storage: 10Gi instancetype: name: u1.small preference: name: rhel.9 runStrategy: Always template: spec: domain: devices: {} resources: {} terminationGracePeriodSeconds: 180 volumes: - dataVolume: name: imported-volume-6dcpf name: imported-volume-6dcpf-
metadata.nameは、仮想マシン名を定義します。 -
spec.dataVolumeTemplates.metadata.nameは、データボリューム名を定義します。 -
spec.dataVolumeTemplates.spec.source.http.urlは、イメージの URL を定義します。 -
spec.dataVolumeTemplates.spec.storage.resources.requests.storageは、データボリュームに対して要求されるストレージのサイズを定義します。 -
spec.instancetype.nameは、仮想マシンのリソースサイズを制御するために使用するインスタンスタイプを定義します。 -
spec.preference.nameは、使用する設定を定義します。
-
次のコマンドを実行して VM を作成します。
$ oc create -f <vm_manifest_file>.yamloc createコマンドは、データボリュームと仮想マシンを作成します。CDI コントローラーは適切なアノテーションを使用して基礎となる PVC を作成し、インポートプロセスが開始されます。インポートが完了すると、データボリュームのステータスがSucceededに変わります。仮想マシンを起動できます。データボリュームのプロビジョニングはバックグランドで実行されるため、これをプロセスをモニターする必要はありません。
検証
インポーター Pod は、指定された URL からイメージをダウンロードし、プロビジョニングされた永続ボリュームに保存します。インポーター Pod のステータスを表示します。
$ oc get podsデータボリュームの状態を監視します。
$ oc get dv <data_volume_name>プロビジョニングが成功すると、データボリュームのフェーズが
Succeededになります。出力例:
NAME PHASE PROGRESS RESTARTS AGE imported-volume-6dcpf Succeeded 100.0% 18sプロビジョニングが完了し、シリアルコンソールにアクセスして仮想マシンが起動したことを確認します。
$ virtctl console <vm_name>仮想マシンが実行中でシリアルコンソールにアクセスできる場合、出力は次のようになります。
Successfully connected to vm-rhel-9 console. The escape sequence is ^]