Utilizzo della condivisione file Azure

GKE su Azure supporta il montaggio di condivisioni di file di Azure. Se hai già una condivisione file di Azure 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 una condivisione esistente completata con dati e come utilizzare l'oggetto PV in un pod.

Prima di iniziare

Archiviare le informazioni dell'account Archiviazione di Azure

GKE su Azure archivia le informazioni per accedere al tuo account Archiviazione Azure in un secret. Se non hai creato un secret nel cluster, devi aggiungerne uno. Se hai questo secret nel cluster, vai a Creare un PersistentVolume per una condivisione preesistente.

  1. Per creare il secret, copia il manifest seguente in un file denominato "azure-service-account-key.yaml".

    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: azure-secret-account-key
    type: Opaque
    stringData:
      accountname: STORAGE_ACCOUNT_NAME
      accountkey: STORAGE_ACCOUNT_KEY
    

    Sostituisci quanto segue:

    • STORAGE_ACCOUNT_NAME: nome dell'account dello spazio di archiviazione di Azure
    • STORAGE_ACCOUNT_KEY: la chiave dell'account dello spazio di archiviazione di Azure
  2. Applica il file al cluster con lo strumento kubectl:

    kubectl apply -f azure-service-account-key.yaml
    

Crea un PersistentVolume per una condivisione preesistente

Importerai una condivisione file di Azure esistente specificando un nuovo volume permanente nel cluster. Per creare il volume permanente:

  1. Copia il seguente codice YAML in un file denominato existing-volume.yaml:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: VOLUME_NAME
    spec:
      capacity:
        storage: VOLUME_CAPACITY
      storageClassName: standard-rwx
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      csi:
        driver: file.csi.azure.com
        readOnly: false
        volumeHandle: VOLUME_ID
    

    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.
    • VOLUME_ID: un ID univoco del volume, formattato come stringa di RESOURCE_GROUP_NAME#STORAGE_ACCOUNT_NAME#FILESHARE_NAME# in cui
    • FILE_SHARE_NAME: il nome della condivisione file di Azure

    Se il tuo account di archiviazione si trova in un gruppo di risorse diverso dal cluster, devi aggiungere un riferimento a un secret contenente la chiave dell'account di archiviazione. Per aggiungere il riferimento, inserisci quanto segue nella sezione spec.csi:

    # Optional. Only required if your storageAccount is in a different resource group than the cluster.
        nodeStageSecretRef:
          name: NODE_STAGE_SECRET_NAME
          namespace: NODE_STAGE_SECRET_NAMESPACE
    

    Sostituisci quanto segue:

    • NODE_STAGE_SECRET_NAME: il nome del secret
    • NODE_STAGE_SECRET_NAMESPACE lo spazio dei nomi che contiene il secret
  2. Applica il codice YAML al tuo cluster.

    kubectl apply -f existing-volume.yaml
    
  3. Conferma la creazione dell'oggetto PV con kubectl describe pv.

    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
    
  4. Per eliminare il pod, utilizza il comando kubectl delete.

    kubectl delete -f nginx.yaml
    

Passaggi successivi