Delen via


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

  1. 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 de az aksarc update opdracht:

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

  1. 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 de az aksarc update opdracht:

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

Volgende stappen