CSI-bestandsstuurprogramma's (Container Storage Interface) gebruiken in AKS ingeschakeld door Azure Arc
> Van toepassing op: AKS op Azure Stack HCI 22H2, AKS op Windows Server, AKS op Azure Local, versie 23H2
In dit artikel wordt beschreven hoe u CSI-stuurprogramma's (Container Storage Interface) gebruikt voor bestanden om een Server Message Block (SMB) of NFS-shares te koppelen wanneer meerdere knooppunten gelijktijdige toegang nodig hebben tot hetzelfde opslagvolume in AKS dat is ingeschakeld door Azure Arc.
Overzicht van CSI in AKS Arc
De Container Storage Interface (CSI), een standaard voor het beschikbaar maken van willekeurige blok- en opslagsystemen in workloads in containers op Kubernetes. Met behulp van CSI kan AKS die door Arc is ingeschakeld, invoegtoepassingen schrijven, implementeren en herhalen om nieuwe opslagsystemen beschikbaar te maken. Het gebruik van CSI kan ook bestaande kubernetes verbeteren zonder dat u de kubernetes-kerncode hoeft aan te raken en vervolgens te wachten op de releasecycli.
De schijf- en bestand-CSI-stuurprogramma's die door AKS Arc worden gebruikt, zijn stuurprogramma's die compatibel zijn met CSI-specificaties.
Met de ondersteuning voor CSI-opslagstuurprogramma's in AKS Arc kunt u het volgende gebruiken:
AKS Arc-schijven die u kunt gebruiken om een Kubernetes DataDisk-resource te maken. Deze worden gekoppeld als ReadWriteOnce, dus ze zijn alleen beschikbaar voor één pod tegelijk. Gebruik AKS Arc-bestanden voor opslagvolumes die tegelijkertijd door meerdere pods kunnen worden geopend.
AKS Arc-bestanden die u kunt gebruiken om een SMB- of NFS-share te koppelen aan pods. Deze worden gekoppeld als ReadWriteMany, zodat u gegevens kunt delen over meerdere knooppunten en pods. Ze kunnen ook worden gekoppeld als ReadWriteOnce op basis van de PVC-specificatie (permanente volumeclaim).
Permanente bestandenvolumes gebruiken met ReadWriteMany CSI-stuurprogramma's
Als meerdere knooppunten gelijktijdige toegang nodig hebben tot dezelfde opslagvolumes in AKS Arc, kunt u CSI-stuurprogramma's voor bestanden gebruiken om SMB- of NFS-shares als ReadWriteMany te koppelen. U moet de SMB- of NFS-shares vooraf inrichten.
SMB-stuurprogramma's gebruiken
Zorg ervoor dat het SMB-stuurprogramma is geïmplementeerd. Het SMB CSI-stuurprogramma wordt standaard geïnstalleerd wanneer u een Kubernetes-cluster maakt met behulp van Azure Portal of de
az aksarc create
opdracht. Als u een Kubernetes-cluster maakt met behulp van--disable-smb-driver
, moet u het SMB-stuurprogramma in dit cluster inschakelen met behulp van deaz aksarc update
opdracht:az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
Maak Kubernetes-geheimen om de referenties op te slaan die nodig zijn voor toegang tot SMB-shares door de volgende opdracht uit te voeren:
kubectl create secret generic smbcreds --from-literal username=$username --from-literal password=$password --from-literal domain=$domain
Maak een opslagklasse met behulp van
kubectl
een nieuwe SMB-opslagklasse met het volgende manifest: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
NFS-stuurprogramma's gebruiken
Zorg ervoor dat het NFS-stuurprogramma is geïmplementeerd. Het NFS CSI-stuurprogramma wordt standaard geïnstalleerd wanneer u een Kubernetes-cluster maakt met behulp van Azure Portal of de
az aksarc create
opdracht. Als u een Kubernetes-cluster maakt met behulp van--disable-nfs-driver
, moet u het NFS-stuurprogramma in dit cluster inschakelen met behulp van deaz aksarc update
opdracht:az aksarc update -n $aksclustername -g $resource_group --enable-nfs-driver
Maak een NFS-opslagklasse met behulp van het volgende manifest:
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
SMB- of NFS-stuurprogramma's verwijderen
Gebruik de volgende Azure CLI-opdrachten om de SMB- of NFS-stuurprogramma's te verwijderen:
az aksarc update -n $aksclustername -g $resource_group --disable-smb-driver
az aksarc update -n $aksclustername -g $resource_group --disable-nfs-driver