Creare e usare un volume con File di Azure in servizio Azure Kubernetes (servizio Azure Kubernetes)

Un volume permanente rappresenta una parte di risorsa di archiviazione di cui è stato eseguito il provisioning per l'uso con pod Kubernetes. È possibile usare un volume permanente con uno o più pod ed è possibile eseguirne il provisioning in modo dinamico o statico. Se più pod necessitano di accesso simultaneo allo stesso volume di archiviazione, è possibile usare File di Azure per connettersi usando il protocollo Server Message Block (SMB). Questo articolo illustra come creare dinamicamente una condivisione file di Azure per l'uso da parte di più pod in un cluster servizio Azure Kubernetes (servizio Azure Kubernetes).

Questo articolo illustra come:

  • Usare un volume permanente dinamico (PV) installando il driver CSI (Container Archiviazione Interface) e creando in modo dinamico una o più condivisioni file di Azure da collegare a un pod.
  • Usare un pv statico creando una o più condivisioni file di Azure oppure usando un file esistente e collegarlo a un pod.

Per altre informazioni sui volumi Kubernetes, vedere Opzioni di archiviazione per le applicazioni nel servizio Azure Kubernetes.

Operazioni preliminari

Effettuare dinamicamente il provisioning di un volume

Questa sezione fornisce indicazioni per gli amministratori del cluster che vogliono effettuare il provisioning di uno o più volumi persistenti che includono i dettagli di una o più condivisioni in File di Azure. Un'attestazione di volume permanente (PVC) usa l'oggetto classe di archiviazione per effettuare il provisioning dinamico di una condivisione file File di Azure.

Parametri di provisioning dinamico

Nome Significato Valore disponibile Obbligatorio Default value
accountAccessTier Livello di accesso per l'account di archiviazione L'account Standard può scegliere Hot o Coole l'account Premium può scegliere Premiumsolo . No Vuoto. Usare l'impostazione predefinita per diversi tipi di account di archiviazione.
accountQuota Limita la quota per un account. È possibile specificare una quota massima in GB (102400 GB per impostazione predefinita). Se l'account supera la quota specificata, il driver ignora la selezione dell'account. No 102400
allowBlobPublicAccess Consentire o impedire l'accesso pubblico a tutti i BLOB o contenitori per l'account di archiviazione creato dal driver. true oppure false No false
disableDeleteRetentionPolicy Specificare se disabilitare DeleteRetentionPolicy per l'account di archiviazione creato dal driver. true oppure false No false
enableLargeFileShares Specificare se usare un account di archiviazione con condivisioni file di grandi dimensioni abilitate o meno. Se questo flag è impostato su true e non esiste un account di archiviazione con condivisioni file di grandi dimensioni abilitate, viene creato un nuovo account di archiviazione con condivisioni file di grandi dimensioni abilitato. Questo flag deve essere usato con lo SKU Standard perché gli account di archiviazione creati con sku Premium hanno largeFileShares l'opzione abilitata per impostazione predefinita. true oppure false No false
Foldername Specificare il nome della cartella nella condivisione file di Azure. Nome cartella esistente nella condivisione file di Azure. No Se il nome della cartella non esiste nella condivisione file, il montaggio non riesce.
getLatestAccount Determina se ottenere la chiave dell'account più recente in base all'ora di creazione. Questo driver ottiene la prima chiave per impostazione predefinita. true oppure false No false
posizione Specificare l'area di Azure dell'account di archiviazione di Azure. Ad esempio, eastus. No Se vuoto, il driver usa lo stesso nome della posizione del cluster del servizio Azure Kubernetes corrente.
matchTags Trova tag di corrispondenza quando il driver tenta di trovare un account di archiviazione appropriato. true oppure false No false
networkEndpointType Specificare il tipo di endpoint di rete per l'account di archiviazione creato dal driver. Se privateEndpoint viene specificato, viene creato un endpoint privato per l'account di archiviazione. Per altri casi, un endpoint di servizio viene creato per impostazione predefinita. "",privateEndpoint No ""
protocollo Specificare il protocollo di condivisione file. smb, nfs No smb
requireInfraEncryption Specificare se il servizio applica o meno un livello secondario di crittografia con chiavi gestite dalla piattaforma per i dati inattivi per l'account di archiviazione creato dal driver. true oppure false No false
resourceGroup Specificare il gruppo di risorse per i dischi di Azure. Nome del gruppo di risorse esistente No Se vuoto, il driver usa lo stesso nome del gruppo di risorse del cluster del servizio Azure Kubernetes corrente.
selectRandomMatchingAccount Determina se selezionare in modo casuale un account corrispondente. Per impostazione predefinita, il driver seleziona sempre il primo account corrispondente in ordine alfabetico (nota: questo driver usa la cache di ricerca dell'account, che comporta una distribuzione non uniforme della creazione di file tra più account). true oppure false No false
server Specificare l'indirizzo del server dell'account di archiviazione di Azure. Indirizzo del server esistente, ad esempio accountname.privatelink.file.core.windows.net. No Se vuoto, il driver usa l'indirizzo predefinito accountname.file.core.windows.net o un altro account cloud sovrano.
shareAccessTier Livello di accesso per la condivisione file L'account per utilizzo generico v2 può scegliere tra TransactionOptimized (impostazione predefinita), Hote Cool. Tipo di account di archiviazione Premium solo per le condivisioni file. No Vuoto. Usare l'impostazione predefinita per diversi tipi di account di archiviazione.
Nomecondivisione Specificare il nome della condivisione file di Azure. Nome esistente o nuovo della condivisione file di Azure. No Se vuoto, il driver genera un nome di condivisione file di Azure.
shareNamePrefix Specificare il prefisso del nome della condivisione file di Azure creato dal driver. Il nome della condivisione può contenere solo lettere minuscole, numeri, trattini e lunghezza inferiori a 21 caratteri. No
skuName File di Azure tipo di account di archiviazione (alias: storageAccountType) Standard_LRS, Standard_ZRS, Standard_GRS, Standard_RAGRS, Standard_RAGZRS,Premium_LRS, Premium_ZRS No StandardSSD_LRS
Le dimensioni minime della condivisione file per il tipo di account Premium sono 100 GB.
Il tipo di account con ridondanza della zona è supportato in aree limitate.
La condivisione file NFS supporta solo il tipo di account Premium.
storageEndpointSuffix Specificare il suffisso dell'endpoint di archiviazione di Azure. core.windows.net, core.chinacloudapi.cne così via. No Se vuoto, il driver usa il suffisso dell'endpoint di archiviazione predefinito in base all'ambiente cloud. Ad esempio, core.windows.net.
tags I tag vengono creati in un nuovo account di archiviazione. Formato tag: 'foo=aaa,bar=bbb' No ""
--- I parametri seguenti sono solo per il protocollo SMB --- ---
subscriptionid Specificare l'ID sottoscrizione di Azure in cui viene creata la condivisione file di Azure. ID sottoscrizione di Azure No Se non è vuoto, resourceGroup deve essere specificato.
storeAccountKey Specificare se archiviare la chiave dell'account nel segreto Kubernetes. true oppure false
false significa che il driver usa l'identità kubelet per ottenere la chiave dell'account.
No true
secretName Specificare il nome del segreto per archiviare la chiave dell'account. No
secretNamespace Specificare lo spazio dei nomi del segreto per archiviare la chiave dell'account.

Nota:
Se secretNamespace non viene specificato, il segreto viene creato nello stesso spazio dei nomi del pod.
default,kube-system e così via. No Spazio dei nomi PVC, ad esempio csi.storage.k8s.io/pvc/namespace
useDataPlaneAPI Specificare se usare l'API del piano dati per la creazione/eliminazione/ridimensionamento della condivisione file, che potrebbe risolvere il problema di limitazione dell'API SRP perché l'API del piano dati non ha quasi alcun limite, mentre si verifica un errore quando sono presenti impostazioni del firewall o della rete virtuale nell'account di archiviazione. true oppure false No false
--- I parametri seguenti sono solo per il protocollo NFS --- ---
mountPermissions Autorizzazioni per le cartelle montate. Il valore predefinito è 0777. Se impostato su 0, il driver non viene eseguito chmod dopo il montaggio 0777 No
rootSquashType Specificare il comportamento di squash radice nella condivisione. Il valore predefinito è NoRootSquash AllSquash, NoRootSquash, RootSquash No
--- I parametri seguenti sono solo per l'impostazione della rete virtuale. Ad esempio, NFS, punto finale privato --- ---
fsGroupChangePolicy Indica il modo in cui il driver modifica la proprietà del volume. Il pod securityContext.fsGroupChangePolicy viene ignorato. OnRootMismatch (impostazione predefinita), Always, None No OnRootMismatch
subnetName Nome subnet Nome della subnet esistente del nodo dell'agente. No Se vuoto, il driver usa il subnetName valore nel file di configurazione cloud di Azure.
vnetName Nome della rete virtuale Nome della rete virtuale esistente. No Se vuoto, il driver usa il vnetName valore nel file di configurazione cloud di Azure.
vnetResourceGroup Specificare il gruppo di risorse della rete virtuale in cui è definita la rete virtuale. Nome del gruppo di risorse esistente. No Se vuoto, il driver usa il vnetResourceGroup valore nel file di configurazione cloud di Azure.

Creare una classe di archiviazione

Archiviazione classi definiscono come creare una condivisione file di Azure. Un account di archiviazione viene creato automaticamente nel gruppo di risorse del nodo da usare con la classe di archiviazione per contenere la condivisione file File di Azure. Scegliere gli SKU di ridondanza di Archiviazione di Azure seguenti per skuName:

  • Standard_LRS: Archiviazione con ridondanza locale standard
  • Standard_GRS: archiviazione con ridondanza geografica standard
  • Standard_ZRS: archiviazione con ridondanza della zona standard
  • Standard_RAGRS: archiviazione con ridondanza geografica e accesso in lettura standard (RA-GRS)
  • Premium_LRS: Archiviazione con ridondanza locale Premium
  • Premium_ZRS: archiviazione con ridondanza della zona pPremium

Nota

La condivisione file Premium minima è di 100 GB.

Per altre informazioni sulle classi di archiviazione Kubernetes per File di Azure, vedere l'articolo sulle classi di archiviazione di Kubernetes.

  1. Creare un file denominato azure-file-sc.yaml e copiarlo nell'esempio di manifesto seguente. Per altre informazioni su mountOptions, vedere la sezione Opzioni di montaggio .

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: my-azurefile
    provisioner: file.csi.azure.com # replace with "kubernetes.io/azure-file" if aks version is less than 1.21
    allowVolumeExpansion: true
    mountOptions:
     - dir_mode=0777
     - file_mode=0777
     - uid=0
     - gid=0
     - mfsymlinks
     - cache=strict
     - actimeo=30
    parameters:
      skuName: Premium_LRS
    
  2. Creare la classe di archiviazione usando il kubectl apply comando .

    kubectl apply -f azure-file-sc.yaml
    

Creare un'attestazione di volume permanente

Un'attestazione di volume permanente usa l'oggetto classe di archiviazione per effettuare il provisioning dinamico di una condivisione file di Azure. È possibile usare il codice YAML seguente per creare un'attestazione di volume permanente di 100 GB con accesso ReadWriteMany . Per altre informazioni sulle modalità di accesso, vedere Volume permanente Kubernetes.

  1. Creare un file denominato azure-file-pvc.yaml e copiarlo nel codice YAML seguente. Assicurarsi che storageClassName corrisponda alla classe di archiviazione creata nel passaggio precedente.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: my-azurefile
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: my-azurefile
      resources:
        requests:
          storage: 100Gi
    

    Nota

    Se si usa lo SKU per la Premium_LRS classe di archiviazione, il valore minimo per storage deve essere 100Gi.

  2. Creare l'attestazione di volume permanente usando il kubectl apply comando .

    kubectl apply -f azure-file-pvc.yaml
    

    Al termine, viene creata la condivisione file. Viene creato anche un segreto Kubernetes che comprende le credenziali e le informazioni di connessione. È possibile usare il kubectl get comando per visualizzare lo stato del PVC:

    kubectl get pvc my-azurefile
    

    L'output del comando è simile all'esempio seguente:

    NAME           STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
    my-azurefile   Bound     pvc-8436e62e-a0d9-11e5-8521-5a8664dc0477   100Gi       RWX            my-azurefile      5m
    

Usare il volume permanente

Il codice YAML seguente crea un pod che usa l'attestazione di volume permanente my-azurefile per montare la condivisione file File di Azure nel percorso /mnt/azure. Per i contenitori di Windows Server, specificare un mountPath oggetto usando la convenzione del percorso di Windows, ad esempio "D:".

  1. Creare un file denominato azure-pvc-files.yaml e copiarlo nel codice YAML seguente. Assicurarsi che corrisponda claimName al PVC creato nel passaggio precedente.

    kind: Pod
    apiVersion: v1
    metadata:
      name: mypod
    spec:
      containers:
        - name: mypod
          image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 250m
              memory: 256Mi
          volumeMounts:
            - mountPath: /mnt/azure
              name: volume
              readOnly: false
      volumes:
       - name: volume
         persistentVolumeClaim:
           claimName: my-azurefile
    
  2. Creare il pod usando il kubectl apply comando .

    kubectl apply -f azure-pvc-files.yaml
    

    È ora disponibile un pod in esecuzione con la condivisione file File di Azure montata nella directory /mnt/azure. Questa configurazione può essere visualizzata quando si esamina il pod usando il kubectl describe comando . L'output di esempio condensato seguente mostra il volume montato nel contenitore.

    Containers:
      mypod:
        Container ID:   docker://053bc9c0df72232d755aa040bfba8b533fa696b123876108dec400e364d2523e
        Image:          mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
        Image ID:       docker-pullable://nginx@sha256:d85914d547a6c92faa39ce7058bd7529baacab7e0cd4255442b04577c4d1f424
        State:          Running
          Started:      Fri, 01 Mar 2019 23:56:16 +0000
        Ready:          True
        Mounts:
          /mnt/azure from volume (rw)
          /var/run/secrets/kubernetes.io/serviceaccount from default-token-8rv4z (ro)
    [...]
    Volumes:
      volume:
        Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
        ClaimName:  my-azurefile
        ReadOnly:   false
    [...]
    

Opzioni di montaggio

Il valore predefinito per fileMode e dirMode è 0777 per Kubernetes versioni 1.13.0 e successive. Se si crea dinamicamente il volume permanente con una classe di archiviazione, è possibile specificare le opzioni di montaggio nell'oggetto classe di archiviazione. Per altre informazioni, vedere Opzioni di montaggio. L'esempio seguente imposta 0777:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: my-azurefile
provisioner: file.csi.azure.com # replace with "kubernetes.io/azure-file" if aks version is less than 1.21
allowVolumeExpansion: true
mountOptions:
  - dir_mode=0777
  - file_mode=0777
  - uid=0
  - gid=0
  - mfsymlinks
  - cache=strict
  - actimeo=30
parameters:
  skuName: Premium_LRS

Uso dei tag di Azure

Per altre informazioni sull'uso dei tag di Azure, vedere Usare i tag di Azure in servizio Azure Kubernetes (servizio Azure Kubernetes).

Effettuare il provisioning statico di un volume

Questa sezione fornisce indicazioni per gli amministratori del cluster che vogliono creare uno o più volumi persistenti che includono i dettagli di una condivisione di File di Azure esistente da usare con un carico di lavoro.

Parametri di provisioning statici

Nome Significato Valore disponibile Obbligatorio Default value
volumeAttributes.resourceGroup Specificare un nome del gruppo di risorse di Azure. myResourceGroup No Se vuoto, il driver usa lo stesso nome del gruppo di risorse del cluster corrente.
volumeAttributes.storageAccount Specificare un nome di account di archiviazione di Azure esistente. storageAccountName
volumeAttributes.shareName Specificare un nome di condivisione file di Azure. fileShareName
volumeAttributes.folderName Specificare un nome di cartella nella condivisione file di Azure. Foldername No Se il nome della cartella non esiste nella condivisione file, il montaggio avrà esito negativo.
volumeAttributes.protocol Specificare il protocollo di condivisione file. smb, nfs No smb
volumeAttributes.server Specificare l'indirizzo del server dell'account di archiviazione di Azure Indirizzo del server esistente, ad esempio accountname.privatelink.file.core.windows.net. No Se vuoto, il driver usa l'indirizzo predefinito accountname.file.core.windows.net o un altro account cloud sovrano.
--- I parametri seguenti sono solo per il protocollo SMB --- --- ---
volumeAttributes.secretName Specificare un nome segreto che archivia il nome e la chiave dell'account di archiviazione. No
volumeAttributes.secretNamespace Specificare uno spazio dei nomi segreto. default,kube-system e così via. No Spazio dei nomi PVC (csi.storage.k8s.io/pvc/namespace)
nodeStageSecretRef.name Specificare un nome segreto che archivia il nome e la chiave dell'account di archiviazione. Nome segreto esistente
nodeStageSecretRef.namespace Specificare uno spazio dei nomi segreto. Spazio dei nomi Kubernetes
--- I parametri seguenti sono solo per il protocollo NFS --- --- ---
volumeAttributes.fsGroupChangePolicy Indica come il driver modifica la proprietà di un volume. Il pod securityContext.fsGroupChangePolicy viene ignorato. OnRootMismatch (impostazione predefinita), Always, None No OnRootMismatch
volumeAttributes.mountPermissions Specificare le autorizzazioni per le cartelle montate. Il valore predefinito è 0777 No

Creare una condivisione file di Azure

Prima di poter usare una condivisione file File di Azure come volume Kubernetes, è necessario creare un account Archiviazione di Azure e la condivisione file.

  1. Ottenere il nome del gruppo di risorse usando il az aks show comando con il --query nodeResourceGroup parametro .

    az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv
    

    L'output del comando è simile all'esempio seguente:

    MC_myResourceGroup_myAKSCluster_eastus
    
  2. Creare un account di archiviazione usando il az storage account create comando con il --sku parametro . Il comando seguente crea un account di archiviazione usando lo Standard_LRS SKU. Assicurarsi di sostituire i segnaposto seguenti:

    • myAKSStorageAccount con il nome dell'account di archiviazione
    • nodeResourceGroupName con il nome del gruppo di risorse in cui sono ospitati i nodi del cluster del servizio Azure Kubernetes
    • location con il nome dell'area in cui creare la risorsa. Deve essere la stessa area dei nodi del cluster del servizio Azure Kubernetes.
    az storage account create -n myAKSStorageAccount -g nodeResourceGroupName -l location --sku Standard_LRS
    
  3. Esportare il stringa di connessione come variabile di ambiente usando il comando seguente, usato per creare la condivisione file.

    export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string -n storageAccountName -g resourceGroupName -o tsv)
    
  4. Creare la condivisione file usando il az storage share create comando . Assicurarsi di sostituire shareName con il nome della condivisione.

    az storage share create -n shareName --connection-string $AZURE_STORAGE_CONNECTION_STRING
    
  5. Esportare la chiave dell'account di archiviazione come variabile di ambiente usando il comando seguente.

    STORAGE_KEY=$(az storage account keys list --resource-group nodeResourceGroupName --account-name myAKSStorageAccount --query "[0].value" -o tsv)
    
  6. Ripetere il nome e la chiave dell'account di archiviazione usando il comando seguente. Copiare queste informazioni, perché sono necessari questi valori durante la creazione del volume Kubernetes.

    echo Storage account key: $STORAGE_KEY
    

Creare un segreto Kubernetes

Kubernetes necessita di credenziali per accedere alla condivisione file creata nel passaggio precedente. Queste credenziali sono archiviate in un segreto Kubernetes, cui viene fatto riferimento durante la creazione di un pod Kubernetes.

  1. Creare il segreto usando il kubectl create secret comando . L'esempio seguente crea un segreto denominato azure-secret e popola azurestorageaccountnamee azurestorageaccountkey del passaggio precedente. Per usare l'account di archiviazione di Azure indicare il nome e la chiave dell'account.

    kubectl create secret generic azure-secret --from-literal=azurestorageaccountname=myAKSStorageAccount --from-literal=azurestorageaccountkey=$STORAGE_KEY
    

Montare una condivisione file come volume permanente

  1. Creare un nuovo file denominato azurefiles-pv.yaml e copiarlo nel contenuto seguente. In csiaggiornare resourceGroup, volumeHandlee shareName. Per le opzioni di montaggio, il valore predefinito per fileMode e dirMode è 0777.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      annotations:
        pv.kubernetes.io/provisioned-by: file.csi.azure.com
      name: azurefile
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      storageClassName: azurefile-csi
      csi:
        driver: file.csi.azure.com
        volumeHandle: unique-volumeid  # make sure this volumeid is unique for every identical share in the cluster
        volumeAttributes:
          resourceGroup: resourceGroupName  # optional, only set this when storage account is not in the same resource group as node
          shareName: aksshare
        nodeStageSecretRef:
          name: azure-secret
          namespace: default
      mountOptions:
        - dir_mode=0777
        - file_mode=0777
        - uid=0
        - gid=0
        - mfsymlinks
        - cache=strict
        - nosharesock
        - nobrl
    
  2. Creare il volume permanente usando il kubectl create comando .

    kubectl create -f azurefiles-pv.yaml
    
  3. Creare un nuovo file denominato azurefiles-mount-options-pvc.yaml e copiare il contenuto seguente.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: azurefile
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: azurefile-csi
      volumeName: azurefile
      resources:
        requests:
          storage: 5Gi
    
  4. Creare PersistentVolumeClaim usando il kubectl apply comando .

    kubectl apply -f azurefiles-mount-options-pvc.yaml
    
  5. Verificare che PersistentVolumeClaim sia stato creato e associato a PersistentVolume usando il kubectl get comando .

    kubectl get pvc azurefile
    

    L'output del comando è simile all'esempio seguente:

    NAME        STATUS   VOLUME      CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    azurefile   Bound    azurefile   5Gi        RWX            azurefile      5s
    
  6. Aggiornare la specifica del contenitore per fare riferimento a PersistentVolumeClaim e al pod nel file YAML. Ad esempio:

    ...
      volumes:
      - name: azure
        persistentVolumeClaim:
          claimName: azurefile
    
  7. Non è possibile aggiornare una specifica di pod, quindi eliminare il pod usando il kubectl delete comando e ricrearlo usando il kubectl apply comando .

    kubectl delete pod mypod
    
    kubectl apply -f azure-files-pod.yaml
    

Montare una condivisione file come volume inline

Nota

Per evitare problemi di prestazioni, è consigliabile usare un volume permanente anziché un volume inline quando numerosi pod accedono alla stessa condivisione file. Il volume inline può accedere solo ai segreti nello stesso spazio dei nomi del pod. Per specificare uno spazio dei nomi segreto diverso, usare un volume permanente.

Per montare la condivisione file File di Azure nel pod, configurare il volume nella specifica del contenitore.

  1. Creare un nuovo file denominato azure-files-pod.yaml e copiarlo nel contenuto seguente. Se è stato modificato il nome della condivisione file o del nome del segreto, aggiornare e shareNamesecretName. È anche possibile aggiornare , mountPathovvero il percorso in cui è montata la condivisione File nel pod. Per i contenitori di Windows Server, specificare un mountPath oggetto usando la convenzione del percorso di Windows, ad esempio "D:".
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  nodeSelector:
    kubernetes.io/os: linux
  containers:
    - image: 'mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine'
      name: mypod
      resources:
        requests:
          cpu: 100m
          memory: 128Mi
        limits:
          cpu: 250m
          memory: 256Mi
      volumeMounts:
        - name: azure
          mountPath: /mnt/azure
          readOnly: false
  volumes:
    - name: azure
      csi:
        driver: file.csi.azure.com
        volumeAttributes:
          secretName: azure-secret  # required
          shareName: aksshare  # required
          mountOptions: 'dir_mode=0777,file_mode=0777,cache=strict,actimeo=30,nosharesock'  # optional
  1. Creare il pod usando il kubectl apply comando .

    kubectl apply -f azure-files-pod.yaml
    

    È ora disponibile un pod in esecuzione con una condivisione file File di Azure montata in /mnt/azure. È possibile verificare che la condivisione sia montata correttamente usando il kubectl describe comando .

    kubectl describe pod mypod
    

Passaggi successivi

Per File di Azure parametri del driver CSI, vedere Parametri del driver CSI.

Per le procedure consigliate associate, vedere Procedure consigliate per archiviazione e backup nel servizio Azure Kubernetes.