Usare i driver di file CSI (Container Storage Interface) nel servizio Azure Kubernetes abilitato da Azure Arc
> si applica a: AKS in Azure Locali 22H2, AKS su Windows Server, AKS in Azure Locali, 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.
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).
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.
- 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
- 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
- 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