Importar un volumen de disco de Azure ya creado

Si ya tienes un volumen de disco de Azure para usarlo con GKE en Azure, puedes crear un objeto PersistentVolume (PV) y reservarlo para un PersistentVolumeClaim (PVC) específico.

En esta página se explica cómo crear un PV usando un volumen que ya contiene datos y cómo usar el PV en un pod.

Antes de empezar

Crear un PersistentVolume para un volumen preexistente

Puede importar un volumen ya creado especificando un nuevo PV.

  1. Copia el siguiente código YAML en un archivo llamado 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
    

    Haz los cambios siguientes:

    • VOLUME_NAME: un nombre para el volumen
    • VOLUME_CAPACITY: tamaño del volumen. Por ejemplo, 30Gi. Para obtener más información sobre cómo especificar la capacidad de volumen en Kubernetes, consulta el artículo Significado de la memoria.
    • STORAGE_CLASS_NAME: el nombre de StorageClass que aprovisiona el volumen. Por ejemplo, puedes usar el standard-rwo predeterminado.

    • SUBSCRIPTION_ID: el ID de suscripción de Azure que contiene el volumen.

    • RESOURCE_GROUP_NAME: el grupo de recursos de Azure que contiene el volumen.

    • DISK_NAME: el nombre del disco de Azure del volumen.

    • FS_TYPE: el tipo de sistema de archivos del volumen. Por ejemplo, ext4.

  2. Aplica el archivo YAML al clúster

    kubectl apply -f existing-volume.yaml
    
  3. Confirma la creación de tu PV

    kubectl describe pv VOLUME_NAME
    

    El resultado de este comando contiene el estado del PV.

Usar el volumen con un objeto PersistentVolumeClaim y un pod

Una vez que hayas importado el volumen, puedes crear un PVC y un pod que monte el PVC.

  1. El siguiente archivo YAML crea un PVC y lo asocia a un pod que ejecuta el servidor web Nginx. Cópialo en un archivo llamado 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
    

    Haz los cambios siguientes:

    • STORAGE_CLASS: el nombre de StorageClass del PersistentVolume que has creado anteriormente. Por ejemplo, standard-rwo.
    • ACCESS_MODE: el modo de acceso del volumen. En el caso de los discos de Azure, usa ReadWriteOnce. En el caso de Azure File, usa ReadWriteMany.
    • VOLUME_CAPACITY: tamaño del volumen. Por ejemplo, 30Gi.
  2. Aplica el archivo YAML al clúster

    kubectl apply -f nginx.yaml
    
  3. Comprueba el estado de tu instancia de Nginx con kubectl describe. El resultado debe tener un STATUS de Running.

    kubectl describe pod web-server
    

Siguientes pasos