Importe um volume de disco do Azure pré-existente

Se já tiver um volume do Azure Disk para usar com o GKE no Azure, pode criar um objeto PersistentVolume (PV) e reservá-lo para um PersistentVolumeClaim (PVC) específico.

Esta página explica como criar um PV usando um volume existente preenchido com dados e como usar o PV num pod.

Antes de começar

Crie um PersistentVolume para um volume pré-existente

Pode importar um volume existente especificando um novo PV.

  1. Copie o seguinte YAML para um ficheiro com o nome 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
    

    Substitua o seguinte:

    • VOLUME_NAME: um nome para o volume
    • VOLUME_CAPACITY: tamanho do volume. Por exemplo, 30Gi. Para mais informações sobre como especificar a capacidade do volume no Kubernetes, consulte o artigo Significado da memória.
    • STORAGE_CLASS_NAME: o nome da StorageClass que aprovisiona o volume. Por exemplo, pode usar o valor predefinido standard-rwo.

    • SUBSCRIPTION_ID: o ID da subscrição do Azure que contém o volume.

    • RESOURCE_GROUP_NAME: o grupo de recursos do Azure que contém o volume.

    • DISK_NAME: o nome do disco do Azure do volume.

    • FS_TYPE: o tipo de sistema de ficheiros do volume. Por exemplo, ext4.

  2. Aplique o YAML ao seu cluster

    kubectl apply -f existing-volume.yaml
    
  3. Confirme a criação da sua propriedade de visualização de página

    kubectl describe pv VOLUME_NAME
    

    O resultado deste comando contém o estado da PV.

Use o volume com um PersistentVolumeClaim e um pod

Depois de importar o volume, pode criar um PVC e um pod que monte o PVC.

  1. O YAML seguinte cria um PVC e anexa-o a um pod que executa o servidor Web Nginx. Copie-o para um ficheiro com o nome 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
    

    Substitua o seguinte:

    • STORAGE_CLASS: o nome da StorageClass do PersistentVolume que criou anteriormente. Por exemplo, standard-rwo.
    • ACCESS_MODE: o modo de acesso do volume. Para o disco do Azure, use ReadWriteOnce. Para o Azure File, use ReadWriteMany.
    • VOLUME_CAPACITY: tamanho do volume. Por exemplo, 30Gi.
  2. Aplique o YAML ao seu cluster

    kubectl apply -f nginx.yaml
    
  3. Verifique o estado da sua instância do Nginx com kubectl describe. O resultado deve ter um STATUS de Running.

    kubectl describe pod web-server
    

O que se segue?