Vorhandenes Azure Disk-Volumen importieren

Wenn Sie bereits ein Azure Disk-Volume haben, das mit GKE on Azure verwendet werden soll, können Sie ein PersistentVolume-Objekt (PV) erstellen und es für einen bestimmten PersistentVolumeClaim (PVC) reservieren.

Auf dieser Seite wird erläutert, wie Sie mithilfe eines vorhandenen, mit Daten gefüllten Volumes ein PV erstellen und in einem Pod verwenden.

Hinweis

PersistentVolume für ein bereits vorhandenes Volume erstellen

Sie können ein vorhandenes Volume durch Angabe eines neuen PV importieren.

  1. Kopieren Sie das folgende YAML-Manifest in eine Datei mit dem Namen 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
    

    Dabei gilt:

    • VOLUME_NAME: ein Name für das Volume
    • VOLUME_CAPACITY: Größe des Volumes. Beispiel: 30Gi Weitere Informationen zum Angeben der Volume-Kapazität in Kubernetes finden Sie unter Bedeutung des Arbeitsspeichers.
    • STORAGE_CLASS_NAME: Der Name der StorageClass, die das Volume bereitstellt. Sie können beispielsweise den Standardwert standard-rwo verwenden.

    • SUBSCRIPTION_ID: die Azure-Abo-ID, die das Volume enthält.

    • RESOURCE_GROUP_NAME: die Azure-Ressourcengruppe, die das Volume enthält.

    • DISK_NAME: der Azure Disk-Name des Volumes.

    • FS_TYPE: der Dateisystemtyp des Volumes. Beispiel: ext4

  2. Wenden Sie die YAML-Datei auf den Cluster an.

    kubectl apply -f existing-volume.yaml
    
  3. Bestätigen Sie, dass das PV erstellt wurde.

    kubectl describe pv VOLUME_NAME
    

    Die Ausgabe dieses Befehls enthält den Status des PV.

Volume mit einem PersistentVolumeClaim und einem Pod verwenden

Nachdem Sie das Volume importiert haben, können Sie einen PVC und einen Pod erstellen, der den PVC bereitstellt.

  1. Mit der folgenden YAML-Datei wird ein PVC erstellt und an einen Pod angehängt, auf dem der Nginx-Webserver ausgeführt wird. Kopieren Sie ihn in eine Datei mit dem Namen 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
    

    Dabei gilt:

    • STORAGE_CLASS: der Name der StorageClass aus dem zuvor erstellten PersistentVolume. Beispiel: standard-rwo
    • ACCESS_MODE: Zugriffsmodus des Volumes. Für Azure Disk verwenden Sie ReadWriteOnce. Für Azure File verwenden Sie ReadWriteMany.
    • VOLUME_CAPACITY: Größe des Volumes. Beispiel: 30Gi
  2. Wenden Sie die YAML-Datei auf den Cluster an.

    kubectl apply -f nginx.yaml
    
  3. Prüfen Sie den Status der Nginx-Instanz mit kubectl describe. In der Ausgabe sollte Running als STATUS enthalten sein.

    kubectl describe pod web-server
    

Nächste Schritte