1.3.3.3. 仮想マシンディスクの PVC へのインポート
仮想マシンディスクのインポートプロセスは CDI コントローラーによって処理されます。PVC が特殊な cdi.kubevirt.io/storage.import
アノテーションを使って作成される場合、コントローラーは PV に割り当てられる有効期限の短いインポート Pod を作成し、仮想ディスクイメージを PV にダウンロードします。
OpenShift Container Platform インベントリーファイルの openshift_docker_insecure_registries
属性を使ってレジストリーに insecure (非セキュア) とマークする場合でも、Containerized Data Importer を使用してセキュアでないレジストリーからイメージをインポートすることはできません。
ディスクイメージを PersistentVolumeClaim にインポートする際に、ディスクイメージは PVC で要求されるストレージの全容量を使用するように拡張されます。この領域を使用するには、仮想マシンのディスクパーティションおよびファイルシステムの拡張が必要になる場合があります。
サイズ変更の手順は、仮想マシンにインストールされるオペレーティングシステムによって異なります。詳細は、該当するオペレーティングシステムのドキュメントを参照してください。
前提条件
- 仮想マシンディスクには RAW または QCOW2 形式を使用でき、xz または gzip を使用して圧縮できます。
- ディスクイメージは、HTTP または S3 エンドポイントのいずれかで利用可能にする必要があります。
ローカルにプロビジョニングされるストレージの場合、 PV は PVC の前に作成される必要があります。これは、PV が動的に作成される OpenShift Container Storage の場合には不要です。
手順
インポートする必要のある仮想ディスクイメージをホストする HTTP または S3 ファイルサーバーを特定します。いずれかの形式の完全な URL が必要になります。
- http://www.example.com/path/to/data
s3://bucketName/fileName
この URL を、PVC 設定ファイルの
cdi.kubevirt.io/storage.import.endpoint
アノテーションの値として使用します。例:
cdi.kubevirt.io/storage.import.endpoint: https://download.fedoraproject.org/pub/fedora/linux/releases/28/Cloud/x86_64/images/Fedora-Cloud-Base-28-1.1.x86_64.qcow2
ファイルサーバーに認証情報が必要な場合、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>
PVC 設定ファイルの
cdi.kubevirt.io/storage.import.secret
アノテーションで使用するmetadata.name
の値を保存します。例:
cdi.kubevirt.io/storage.import.secret: endpoint-secret
endpoint-secret.yaml をクラスターに適用します。
$ oc apply -f endpoint-secret.yaml
PVC 設定ファイルを編集し、必要なアノテーションが組み込まれていることを確認します。
以下に例を示します。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: "example-vmdisk-volume" labels: app: containerized-data-importer annotations: cdi.kubevirt.io/storage.import.endpoint: "https://download.fedoraproject.org/pub/fedora/linux/releases/28/Cloud/x86_64/images/Fedora-Cloud-Base-28-1.1.x86_64.qcow2" 1 cdi.kubevirt.io/storage.import.secret: "endpoint-secret" 2 spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi
oc
CLI を使用して PVC を作成します。$ oc create -f <pvc.yaml> 1
- 1
- PersistentVolumeClaim ファイル名。
ディスクイメージが PV に正常にインポートされた後に、インポーター Pod の有効期限は切れ、PVC を OpenShift Container Platform 内の仮想マシンオブジェクトにバインドできます。
次に、仮想マシンオブジェクトを作成 し、PVC にバインドします。