1.3.3.2. DataVolume を使用した既存の仮想マシンイメージのインポート
DataVolume オブジェクトは、基礎となる PVC に関連付けられたインポート、クローンおよびアップロード操作のオーケストレーションを提供します。DataVolume は KubeVirt と統合し、それらは仮想マシンが PVC の作成前に起動するのを防ぎます。
ディスクイメージを PersistentVolumeClaim にインポートする際に、ディスクイメージは PVC で要求されるストレージの全容量を使用するように拡張されます。この領域を使用するには、仮想マシンのディスクパーティションおよびファイルシステムの拡張が必要になる場合があります。
サイズ変更の手順は、仮想マシンにインストールされるオペレーティングシステムによって異なります。詳細は、該当するオペレーティングシステムのドキュメントを参照してください。
前提条件
- 仮想マシンディスクには RAW または QCOW2 形式を使用でき、xz または gz を使用して圧縮できます。
- ディスクイメージは、HTTP または S3 エンドポイントのいずれかで利用可能にする必要があります。
手順
インポートする必要のある仮想ディスクイメージをホストする HTTP または S3 ファイルサーバーを特定します。正しい形式での完全な URL が必要になります。
- http://www.example.com/path/to/data
- s3://bucketName/fileName
データソースに認証情報が必要な場合、endpoint-secret.yaml ファイルを編集し、これをクラスターに適用します。
apiVersion: v1 kind: Secret metadata: name: <endpoint-secret> labels: app: containerized-data-importer type: Opaque data: accessKeyId: "" # <optional: your key or user name, base64 encoded> secretKey: "" # <optional: your secret or password, base64 encoded>
$ oc apply -f endpoint-secret.yaml
VM 設定ファイル (オプションで
secretRef
パラメーターが含まれる) を編集します。以下のサンプルでは、Fedora イメージを使用しています。apiVersion: kubevirt.io/v1alpha3 kind: VirtualMachine metadata: creationTimestamp: null labels: kubevirt.io/vm: vm-fedora-datavolume name: vm-fedora-datavolume spec: dataVolumeTemplates: - metadata: creationTimestamp: null name: fedora-dv spec: pvc: accessModes: - ReadWriteOnce resources: requests: storage: 2Gi storageClassName: local source: http: url: https://download.fedoraproject.org/pub/fedora/linux/releases/28/Cloud/x86_64/images/Fedora-Cloud-Base-28-1.1.x86_64.qcow2 secretRef: "" # Optional status: {} running: false template: metadata: creationTimestamp: null labels: kubevirt.io/vm: vm-fedora-datavolume spec: domain: devices: disks: - disk: bus: virtio name: datavolumedisk1 machine: type: "" resources: requests: memory: 64M terminationGracePeriodSeconds: 0 volumes: - dataVolume: name: fedora-dv name: datavolumedisk1 status: {}
仮想マシンを作成します。
$ oc create -f vm-<name>-datavolume.yaml
仮想マシンおよび DataVolume が作成されます。CDI コントローラーは、正しいアノテーションを使用して基礎となる PVC を作成し、インポートプロセスを開始します。インポートが完了すると、DataVolume ステータスは Succeeded に切り替わり、仮想マシンの起動が可能になります。
DataVolume のプロビジョニングはバックグランドで実行されるため、これをモニターする必要はありません。仮想マシンを起動 できますが、これはインポートが完了するまで実行されません。
オプションの検証手順
-
$ oc get pods
を実行し、インポーター Pod を見つけます。この Pod は指定された URL からイメージをダウンロードし、これをプロビジョニングされた PV に保存します。 Succeeded が表示されるまで DataVolume ステータスをモニターします。
$ oc describe dv <data-label> 1
- 1
- VirtualMachine 設定ファイルで指定された DataVolume のデータラベル。
プロビジョニングが完了し、VMI が起動したことを検証するには、そのシリアルコンソールへのアクセスを試行します。
$ virtctl console <vm-fedora-datavolume>