既存の Azure Disk ボリュームをインポートする

GKE on Azure で使用する Azure Disk ボリュームがすでにある場合は、PersistentVolume(PV)オブジェクトを作成して特定の PersistentVolumeClaim(PVC)用に確保しておくことができます。

このページでは、データが入力された既存のボリュームを使用して PV を作成する方法と、Pod で PV を使用する方法について説明します。

始める前に

既存のボリュームに PersistentVolume を作成する

既存のボリュームをインポートするには、新しい PV を指定します。

  1. 次の 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: ボリュームのサイズ。例: 30GiKubernetes でのボリューム容量の指定の詳細については、Meaning of memory をご覧ください。
    • STORAGE_CLASS_NAME: ボリュームをプロビジョニングする StorageClass の名前。たとえば、デフォルトの standard-rwo を使用できます。

    • SUBSCRIPTION_ID: ボリュームが含まれる Azure サブスクリプション ID。

    • RESOURCE_GROUP_NAME: ボリュームが含まれる Azure リソース グループ。

    • DISK_NAME: ボリュームの Azure Disk 名。

    • FS_TYPE: ボリュームのファイル システム タイプ。例: ext4

  2. YAML をクラスタに適用します。

    kubectl apply -f existing-volume.yaml
    
  3. PV の作成を確認します。

    kubectl describe pv VOLUME_NAME
    

    このコマンドの出力には、PV のステータスが含まれます。

PersistentVolumeClaim と Pod でボリュームを使用する

ボリュームをインポートしたら、PVC とその PVC をマウントする Pod を作成できます。

  1. 次の 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
  2. YAML をクラスタに適用します。

    kubectl apply -f nginx.yaml
    
  3. kubectl describe で Nginx インスタンスのステータスを確認します。出力には、RunningSTATUS が含まれます。

    kubectl describe pod web-server
    

次のステップ