Importazione di un volume di dischi Azure esistente

Se hai già un volume Azure Disk da utilizzare con GKE su Azure, puoi creare un oggetto PersistentVolume (PV) e riservarlo per una specifica PersistentVolumeClaim (PVC).

Questa pagina spiega come creare un PV utilizzando un volume esistente compilato con i dati e come utilizzare il PV in un pod.

Prima di iniziare

Crea un PersistentVolume per un volume preesistente

Puoi importare un volume esistente specificando un nuovo PV.

  1. Copia il seguente codice YAML in un file denominato 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
    

    Sostituisci quanto segue:

    • VOLUME_NAME: un nome per il volume
    • VOLUME_CAPACITY: la dimensione del volume. Ad esempio, 30Gi. Per saperne di più su come specificare la capacità del volume in Kubernetes, consulta la sezione Significato di memoria.
    • STORAGE_CLASS_NAME: il nome di StorageClass che provisiona il volume. Ad esempio, puoi utilizzare standard-rwo predefinito.

    • SUBSCRIPTION_ID: l'ID abbonamento Azure che contiene il volume.

    • RESOURCE_GROUP_NAME: il gruppo di risorse Azure che contiene il volume.

    • DISK_NAME: il nome del disco Azure del volume.

    • FS_TYPE: il tipo di file system del volume. Ad esempio: ext4.

  2. Applica il file YAML al cluster

    kubectl apply -f existing-volume.yaml
    
  3. Conferma la creazione della PV

    kubectl describe pv VOLUME_NAME
    

    L'output di questo comando contiene lo stato del PV.

Utilizza il volume con un oggetto PersistentVolumeClaim e un pod

Dopo aver importato il volume, puoi creare un PVC e un pod che monta il PVC.

  1. Il seguente codice YAML crea un PVC e lo collega a un pod che esegue il server web Nginx. Copialo in un file denominato 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
    

    Sostituisci quanto segue:

    • STORAGE_CLASS: il nome di StorageClass dal PersistentVolume creato in precedenza. Ad esempio, standard-rwo.
    • ACCESS_MODE: la modalità di accesso del volume. Per Azure Disk, utilizza ReadWriteOnce. Per Azure File, utilizza ReadWriteMany.
    • VOLUME_CAPACITY: la dimensione del volume. Ad esempio, 30Gi.
  2. Applica il file YAML al cluster

    kubectl apply -f nginx.yaml
    
  3. Controlla lo stato dell'istanza Nginx con kubectl describe. L'output deve avere un STATUS di Running.

    kubectl describe pod web-server
    

Passaggi successivi