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
- È necessario aggiungere un account di archiviazione di Azure.
- Assicurarsi di avere installato e configurato l'interfaccia della riga di comando di Azure versione 2.0.59 o successiva. Eseguire
az --version
per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure. - Quando si sceglie tra condivisioni file standard e Premium, è importante comprendere il modello di provisioning e i requisiti del modello di utilizzo previsto che si prevede di eseguire in File di Azure. Per altre informazioni, vedere Scelta di un livello di prestazioni File di Azure in base ai modelli di utilizzo.
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 Cool e l'account Premium può scegliere Premium solo . |
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), Hot e 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.cn e 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 standardStandard_GRS
: archiviazione con ridondanza geografica standardStandard_ZRS
: archiviazione con ridondanza della zona standardStandard_RAGRS
: archiviazione con ridondanza geografica e accesso in lettura standard (RA-GRS)Premium_LRS
: Archiviazione con ridondanza locale PremiumPremium_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.
Creare un file denominato
azure-file-sc.yaml
e copiarlo nell'esempio di manifesto seguente. Per altre informazioni sumountOptions
, 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
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.
Creare un file denominato
azure-file-pvc.yaml
e copiarlo nel codice YAML seguente. Assicurarsi chestorageClassName
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 perstorage
deve essere100Gi
.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:".
Creare un file denominato
azure-pvc-files.yaml
e copiarlo nel codice YAML seguente. Assicurarsi che corrispondaclaimName
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
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 | Sì | |
volumeAttributes.shareName | Specificare un nome di condivisione file di Azure. | fileShareName | Sì | |
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 | Sì | |
nodeStageSecretRef.namespace | Specificare uno spazio dei nomi segreto. | Spazio dei nomi Kubernetes | Sì | |
--- | 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.
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
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 loStandard_LRS
SKU. Assicurarsi di sostituire i segnaposto seguenti:myAKSStorageAccount
con il nome dell'account di archiviazionenodeResourceGroupName
con il nome del gruppo di risorse in cui sono ospitati i nodi del cluster del servizio Azure Kuberneteslocation
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
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)
Creare la condivisione file usando il
az storage share create
comando . Assicurarsi di sostituireshareName
con il nome della condivisione.az storage share create -n shareName --connection-string $AZURE_STORAGE_CONNECTION_STRING
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)
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.
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
Creare un nuovo file denominato
azurefiles-pv.yaml
e copiarlo nel contenuto seguente. Incsi
aggiornareresourceGroup
,volumeHandle
eshareName
. Per le opzioni di montaggio, il valore predefinito perfileMode
edirMode
è 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
Creare il volume permanente usando il
kubectl create
comando .kubectl create -f azurefiles-pv.yaml
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
Creare PersistentVolumeClaim usando il
kubectl apply
comando .kubectl apply -f azurefiles-mount-options-pvc.yaml
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
Aggiornare la specifica del contenitore per fare riferimento a PersistentVolumeClaim e al pod nel file YAML. Ad esempio:
... volumes: - name: azure persistentVolumeClaim: claimName: azurefile
Non è possibile aggiornare una specifica di pod, quindi eliminare il pod usando il
kubectl delete
comando e ricrearlo usando ilkubectl 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.
- 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 eshareName
secretName
. È anche possibile aggiornare ,mountPath
ovvero il percorso in cui è montata la condivisione File nel pod. Per i contenitori di Windows Server, specificare unmountPath
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
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.