Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
> Si applica a: AKS su Windows Server, AKS su Azure Locale
Questo articolo descrive come usare i driver CSI (Container Storage Interface) per i file per montare un server Message Block (SMB) o condivisioni NFS quando più nodi necessitano di accesso simultaneo allo stesso volume di archiviazione nel servizio Azure Kubernetes abilitato da Azure Arc.
Panoramica di CSI in AKS Arc
L'interfaccia di archiviazione dei container (CSI) è uno standard per l'esposizione di sistemi di archiviazione a blocchi e file arbitrari ai carichi di lavoro containerizzati su Kubernetes. Utilizzando CSI, AKS abilitato da Arc può scrivere, distribuire e iterare plug-in per esporre nuovi sistemi di archiviazione. CSI può anche migliorare quelli esistenti in Kubernetes senza dover toccare il codice Kubernetes principale e quindi attendere i cicli di rilascio.
I driver CSI del disco e dei file usati da AKS Arc sono driver conformi alle specifiche CSI.
Il supporto del driver di archiviazione CSI in AKS Arc consente di usare:
Dischi Arc del servizio Azure Kubernetes che è possibile usare per creare una risorsa Kubernetes DataDisk . Questi vengono montati come ReadWriteOnce, quindi sono disponibili solo per un singolo pod alla volta. Per i volumi di archiviazione a cui è possibile accedere contemporaneamente da più pod, usare file Arc di AKS.
File AKS Arc che è possibile utilizzare per montare una condivisione SMB o NFS nei pod. Questi vengono montati come ReadWriteMany, in modo da poter condividere i dati tra più nodi e pod. Possono anche essere montati come ReadWriteOnce in base alla specifica della richiesta di volume persistente (PVC).
Usare volumi persistenti di file con i driver CSI ReadWriteMany
Se più nodi richiedono l'accesso simultaneo agli stessi volumi di archiviazione in AKS Arc, è possibile usare i driver CSI per i file per montare condivisioni SMB o NFS come ReadWriteMany. È necessario eseguire il provisioning delle condivisioni SMB o NFS in anticipo.
Usare driver SMB
Assicurarsi che il driver SMB sia distribuito. Il driver CSI SMB viene installato per impostazione predefinita quando si crea un cluster Kubernetes usando il
az aksarc create
comando . Se crei il cluster AKS usando il portale di Azure, un modello Azure Resource Manager (ARM) o Terraform, il driver CSI SMB non è installato per impostazione predefinita. È necessario abilitare il driver SMB nel cluster AKS. Il comando CLI di Azure equivalente per aggiornare un cluster AKS esistente e abilitare SMB è:az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
Creare segreti Kubernetes per archiviare le credenziali necessarie per accedere alle condivisioni SMB eseguendo il comando seguente:
kubectl create secret generic smbcreds --from-literal username=$username --from-literal password=$password --from-literal domain=$domain
Creare una classe di archiviazione usando
kubectl
per creare una nuova classe di archiviazione SMB con il manifesto seguente:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: smb-csi provisioner: smb.csi.akshci.com parameters: source: \\smb-server\share csi.storage.k8s.io/node-stage-secret-name: "smbcreds" csi.storage.k8s.io/node-stage-secret-namespace: "default" reclaimPolicy: Retain # only Retain is supported volumeBindingMode: Immediate mountOptions: - dir_mode=0777 - file_mode=0777 - uid=1001 - gid=1001
Usare driver NFS
Assicurarsi che il driver SMB sia distribuito. Il driver CSI SMB viene installato per impostazione predefinita quando si crea un cluster Kubernetes usando il
az aksarc create
comando . Se crei il cluster AKS usando il portale di Azure, un modello Azure Resource Manager (ARM) o Terraform, il driver CSI SMB non è installato per impostazione predefinita. È necessario abilitare il driver SMB nel cluster AKS. Il comando CLI di Azure equivalente per aggiornare un cluster AKS esistente e abilitare SMB è:az aksarc update -n $aksclustername -g $resource_group --enable-nfs-driver
Creare una classe di archiviazione NFS usando il manifesto seguente:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: nfs-csi provisioner: nfs.csi.akshci.com parameters: server: nfs-server.default.svc.cluster.local # NFS server endpoint share: / # NFS share path reclaimPolicy: Retain volumeBindingMode: Immediate mountOptions: - hard - nfsvers=4.1
Per disinstallare i driver SMB o NFS
Usare i comandi seguenti dell'interfaccia della riga di comando di Azure per disinstallare i driver SMB o NFS:
az aksarc update -n $aksclustername -g $resource_group --disable-smb-driver
az aksarc update -n $aksclustername -g $resource_group --disable-nfs-driver