既存の Azure Disk ボリュームをインポートする
GKE on Azure で使用する Azure Disk ボリュームがすでにある場合は、PersistentVolume(PV)オブジェクトを作成して特定の PersistentVolumeClaim(PVC)用に確保しておくことができます。
このページでは、データが入力された既存のボリュームを使用して PV を作成する方法と、Pod で PV を使用する方法について説明します。
始める前に
既存のボリュームに PersistentVolume を作成する
既存のボリュームをインポートするには、新しい PV を指定します。
次の YAML を
existing-volume.yaml
というファイルにコピーします。apiVersion: v1 kind: PersistentVolume metadata: name: VOLUME_NAME annotations: pv.kubernetes.io/provisioned-by: disk.csi.azure.com spec: capacity: storage: VOLUME_CAPACITY accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: STORAGE_CLASS_NAME claimRef: name: my-pvc namespace: default csi: driver: disk.csi.azure.com volumeHandle: /subscriptions/SUBSCRIPTION_ID/resourcegroups/RESOURCE_GROUP_NAME/providers/microsoft.compute/disks/DISK_NAME fsType: FILE_SYSTEM_TYPE
次のように置き換えます。
- VOLUME_NAME: ボリュームの名前
- VOLUME_CAPACITY: ボリュームのサイズ。例:
30Gi
Kubernetes でのボリューム容量の指定の詳細については、Meaning of memory をご覧ください。 STORAGE_CLASS_NAME: ボリュームをプロビジョニングする StorageClass の名前。たとえば、デフォルトの
standard-rwo
を使用できます。SUBSCRIPTION_ID: ボリュームが含まれる Azure サブスクリプション ID。
RESOURCE_GROUP_NAME: ボリュームが含まれる Azure リソース グループ。
DISK_NAME: ボリュームの Azure Disk 名。
FS_TYPE: ボリュームのファイル システム タイプ。例:
ext4
。
YAML をクラスタに適用します。
kubectl apply -f existing-volume.yaml
PV の作成を確認します。
kubectl describe pv VOLUME_NAME
このコマンドの出力には、PV のステータスが含まれます。
PersistentVolumeClaim と Pod でボリュームを使用する
ボリュームをインポートしたら、PVC とその PVC をマウントする Pod を作成できます。
次の YAML は、PVC を作成し、Nginx ウェブサーバーを実行する Pod に接続します。このコードを
nginx.yaml
という名前のファイルにコピーします。apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: storageClassName: STORAGE_CLASS_NAME volumeName: VOLUME_NAME accessModes: - ACCESS_MODE resources: requests: storage: VOLUME_CAPACITY --- apiVersion: v1 kind: Pod metadata: name: web-server spec: containers: - name: web-server image: nginx volumeMounts: - mountPath: /var/lib/www/html name: data volumes: - name: data persistentVolumeClaim: claimName: my-pvc
次のように置き換えます。
- STORAGE_CLASS: 以前に作成した PersistentVolume の StorageClass の名前。例:
standard-rwo
。 - ACCESS_MODE: ボリュームのアクセスモード。Azure Disk の場合は、
ReadWriteOnce
を使用します。Azure File の場合は、ReadWriteMany
を使用します。 - VOLUME_CAPACITY: ボリュームのサイズ。例:
30Gi
- STORAGE_CLASS: 以前に作成した PersistentVolume の StorageClass の名前。例:
YAML をクラスタに適用します。
kubectl apply -f nginx.yaml
kubectl describe
で Nginx インスタンスのステータスを確認します。出力には、Running
のSTATUS
が含まれます。kubectl describe pod web-server
次のステップ
- GKE on Azure で追加のストレージ ドライバを使用する。
- Azure Disk CSI ドライバのドキュメントを読む。