Använda CSI-fildrivrutiner (Container Storage Interface) i AKS som aktiverats av Azure Arc
> Gäller för: AKS på Azure Stack HCI 22H2, AKS på Windows Server, AKS på Azure Local, version 23H2
Den här artikeln beskriver hur du använder CSI-drivrutiner (Container Storage Interface) för filer för att montera en SMB-fil (Server Message Block) eller NFS-resurser när flera noder behöver samtidig åtkomst till samma lagringsvolym i AKS som aktiveras av Azure Arc.
Översikt över CSI i AKS Arc
Container Storage Interface (CSI) är en standard för att exponera godtyckliga block- och fillagringssystem för containerbaserade arbetsbelastningar på Kubernetes. Med hjälp av CSI kan AKS som aktiveras av Arc skriva, distribuera och iterera plugin-program för att exponera nya lagringssystem. Att använda CSI kan också förbättra befintliga i Kubernetes utan att behöva röra kubernetes-kärnkoden och sedan vänta på dess lanseringscykler.
Disk- och fil-CSI-drivrutinerna som används av AKS Arc är CSI-specifikationskompatibla drivrutiner.
Med stöd för CSI-lagringsdrivrutinen på AKS Arc kan du använda:
AKS Arc-diskar som du kan använda för att skapa en Kubernetes DataDisk-resurs . Dessa monteras som ReadWriteOnce, så de är bara tillgängliga för en enda podd i taget. För lagringsvolymer som kan nås av flera poddar samtidigt använder du AKS Arc-filer.
AKS Arc-filer som du kan använda för att montera en SMB- eller NFS-resurs på poddar. Dessa monteras som ReadWriteMany, så du kan dela data över flera noder och poddar. De kan också monteras som ReadWriteOnce baserat på PVC-specifikationen (beständiga volymanspråk).
Använda filer med beständiga volymer med ReadWriteMany CSI-drivrutiner
Om flera noder behöver samtidig åtkomst till samma lagringsvolymer i AKS Arc kan du använda CSI-drivrutiner för filer för att montera SMB- eller NFS-resurser som ReadWriteMany. Du måste etablera SMB- eller NFS-resurserna i förväg.
Använda SMB-drivrutiner
Kontrollera att SMB-drivrutinen har distribuerats. SMB CSI-drivrutinen installeras som standard när du skapar ett Kubernetes-kluster med hjälp av Azure Portal eller
az aksarc create
kommandot . Om du skapar ett Kubernetes-kluster med hjälp--disable-smb-driver
av måste du aktivera SMB-drivrutinen i klustret med kommandotaz aksarc update
:az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
Skapa Kubernetes-hemligheter för att lagra de autentiseringsuppgifter som krävs för att komma åt SMB-resurser genom att köra följande kommando:
kubectl create secret generic smbcreds --from-literal username=$username --from-literal password=$password --from-literal domain=$domain
Skapa en lagringsklass med för
kubectl
att skapa en ny SMB-lagringsklass med följande 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
Använda NFS-drivrutiner
Kontrollera att NFS-drivrutinen har distribuerats. NFS CSI-drivrutinen installeras som standard när du skapar ett Kubernetes-kluster med hjälp av Azure Portal eller
az aksarc create
kommandot. Om du skapar ett Kubernetes-kluster med hjälp--disable-nfs-driver
av måste du aktivera NFS-drivrutinen i det här klustret med kommandotaz aksarc update
:az aksarc update -n $aksclustername -g $resource_group --enable-nfs-driver
Skapa en NFS-lagringsklass med hjälp av följande 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
Så här avinstallerar du SMB- eller NFS-drivrutiner
Använd följande Azure CLI-kommandon för att avinstallera antingen SMB- eller NFS-drivrutinerna:
az aksarc update -n $aksclustername -g $resource_group --disable-smb-driver
az aksarc update -n $aksclustername -g $resource_group --disable-nfs-driver