4.4.2. CSI ボリュームクローンのプロビジョニング
CSI ボリュームクローンのプロビジョニングは、クローン作成された永続ボリューム要求 (PVC) API オブジェクトの作成によってトリガーされます。クローンは、他の永続ボリュームと同じルールに従って、別の PVC の内容を事前に設定します。例外として、同じ namespace の既存 PVC を参照する dataSource
を追加する必要があります。
前提条件
- 実行中の OpenShift Container Platform クラスターにログインしている。
- PVC がボリュームのクローン作成をサポートする CSI ドライバーを使用して作成されている。
- ストレージバックエンドが動的プロビジョニング用に設定されている。静的プロビジョナーのクローン作成のサポートは利用できません。
手順
既存の PVC から PVC のクローンを作成するには、以下を実行します。
以下の YAML によって記述される
PersistentVolumeClaim
オブジェクトを使ってファイルを作成し、保存します。pvc-clone.yaml
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-1-clone namespace: mynamespace spec: storageClassName: csi-cloning 1 accessModes: - ReadWriteOnce resources: requests: storage: 5Gi dataSource: kind: PersistentVolumeClaim name: pvc-1
- 1
- ストレージのバックエンドをプロビジョニングするストレージクラスの名前。デフォルトのストレージクラスを使用でき、
storageClassName
は仕様で省略できます。
以下のコマンドを実行して、直前の手順で保存されたオブジェクトを作成します。
$ oc create -f pvc-clone.yaml
新規の PVC
pvc-1-clone
が作成されます。以下のコマンドを実行して、ボリュームのクローンが作成され、準備状態にあることを確認します。
$ oc get pvc pvc-1-clone
pvc-1-clone
は、これがBound
であることを示します。これで、新たにクローン作成された PVC を使用して Pod を設定する準備が整いました。
YAML によって記述される
Pod
オブジェクトと共にファイルを作成し、保存します。以下に例を示します。kind: Pod apiVersion: v1 metadata: name: mypod spec: containers: - name: myfrontend image: dockerfile/nginx volumeMounts: - mountPath: "/var/www/html" name: mypd volumes: - name: mypd persistentVolumeClaim: claimName: pvc-1-clone 1
- 1
- CSI ボリュームのクローン作成の操作時に作成されるクローン作成された PVC。
作成された
Pod
オブジェクトは、元のdataSource
PVC とは別に、クローンされた PVC の使用、クローン、スナップショット、または削除を実行できるようになりました。