Usare i driver di file CSI (Container Storage Interface) nel servizio Azure Kubernetes abilitato da Azure Arc
> Si applica a: servizio Azure Kubernetes in Azure Stack HCI 22H2, servizio Azure Kubernetes in Windows Server, servizio Azure Kubernetes in Azure Locale, versione 23H2
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
CSI (Container Storage Interface) è uno standard per l'esposizione di sistemi di archiviazione file e a blocchi arbitrari per carichi di lavoro in contenitori in Kubernetes. Usando CSI, il servizio Azure Kubernetes abilitato da Arc può scrivere, distribuire e eseguire l'iterazione dei plug-in per esporre nuovi sistemi di archiviazione. L'uso di 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 più pod, usare i file Arc del servizio Azure Kubernetes.
File Arc del servizio Azure Kubernetes che è possibile usare 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 DI PVC (attestazione di volume permanente).
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 effettuare il provisioning delle condivisioni SMB o NFS in anticipo.
Usare driver SMB
- Servizio Azure Kubernetes in Locale di Azure, versione 23H2
- Servizio Azure Kubernetes in Azure Locale 22H2 e Windows Server
Assicurarsi che il driver SMB sia distribuito. Il driver CSI SMB viene installato per impostazione predefinita quando si crea un cluster Kubernetes usando il portale di Azure o il
az aksarc create
comando . Se si crea un cluster Kubernetes usando--disable-smb-driver
, è necessario abilitare il driver SMB in questo cluster usando ilaz aksarc update
comando :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
- Servizio Azure Kubernetes in Locale di Azure, versione 23H2
- Servizio Azure Kubernetes in Azure Locale 22H2 e Windows Server
Assicurarsi che il driver NFS sia distribuito. Il driver CSI NFS viene installato per impostazione predefinita quando si crea un cluster Kubernetes usando il portale di Azure o il
az aksarc create
comando . Se si crea un cluster Kubernetes usando--disable-nfs-driver
, è necessario abilitare il driver NFS in questo cluster usando ilaz aksarc update
comando :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
- Servizio Azure Kubernetes in Locale di Azure, versione 23H2
- Servizio Azure Kubernetes in Azure Locale 22H2 e Windows Server
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