Share via


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 Stack HCI 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

CSI (Container Storage Interface) ä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 versionscykler.

De CSI-drivrutiner för diskar och filer 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 till poddar. Dessa monteras som ReadWriteMany, så att du kan dela data över flera noder och poddar. De kan också monteras som ReadWriteOnce baserat på PVC-specifikationen (beständigt 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

  1. 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-driverav måste du aktivera SMB-drivrutinen i det här klustret med kommandot az aksarc update :

    az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
    
  1. 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
    
  2. 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

  1. Kontrollera att NFS-drivrutinen har distribuerats. NFS CSI-drivrutinen installeras som standard när du skapar ett Kubernetes-kluster med Azure Portal eller az aksarc create kommandot . Om du skapar ett Kubernetes-kluster med hjälp --disable-nfs-driverav måste du aktivera NFS-drivrutinen i det här klustret med kommandot az aksarc update :

    az aksarc update -n $aksclustername -g $resource_group --enable-nfs-driver
    
  1. 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
    

Avinstallera SMB- eller NFS-drivrutiner

Använd följande Azure CLI-kommandon för att avinstallera 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

Nästa steg