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 prenotarlo per uno specifico PersistentVolumeClaim (PVC).

Questa pagina spiega come creare un volume permanente mediante un volume esistente completato con dati e come utilizzarlo in un pod.

Prima di iniziare

Crea un PersistentVolume per un volume preesistente

Puoi importare un volume esistente specificando un nuovo volume permanente.

  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: dimensione del volume. Ad esempio, 30Gi. Per ulteriori informazioni su come specificare la capacità di volume in Kubernetes, consulta il Significato della memoria.
    • STORAGE_CLASS_NAME: il nome dell'oggetto StorageClass che esegue il provisioning del volume. Ad esempio, puoi utilizzare il valore predefinito standard-rwo.

    • 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 di Azure del volume.

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

  2. Applica il codice YAML al tuo cluster

    kubectl apply -f existing-volume.yaml
    
  3. Conferma la creazione del volume permanente

    kubectl describe pv VOLUME_NAME
    

    L'output di questo comando contiene lo stato dell'oggetto PV.

usa il volume con un PersistentVolumeClaim e un pod

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

  1. Il codice YAML seguente crea una PVC e la 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 dell'oggetto StorageClass del PersistentVolume che hai creato in precedenza. Ad esempio, standard-rwo.
    • ACCESS_MODE: la modalità di accesso del volume. Per Azure Disks, utilizza ReadWriteOnce. Per il file di Azure, utilizza ReadWriteMany.
    • VOLUME_CAPACITY: dimensione del volume. Ad esempio, 30Gi.
  2. Applica il codice YAML al tuo cluster

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

    kubectl describe pod web-server
    

Passaggi successivi