Použití ovladačů souborů rozhraní CSI (Container Storage Interface) v AKS povolených službou Azure Arc

> Platí pro: AKS v Azure Stack HCI 22H2, AKS ve Windows Serveru, AKS ve Službě Azure Stack HCI 23H2

Tento článek popisuje, jak pomocí ovladačů rozhraní CSI (Container Storage Interface) pro soubory připojit sdílené složky SMB (Server Message Block) nebo NFS, když více uzlů potřebuje souběžný přístup ke stejnému svazku úložiště v AKS povoleném službou Azure Arc.

Přehled CSI v AKS Arc

Rozhraní CSI (Container Storage Interface) je standard pro vystavení libovolných systémů úložiště bloků a souborů kontejnerizovaným úlohám v Kubernetes. Pomocí CSI může AKS s povolenou službou Arc zapisovat, nasazovat a iterovat moduly plug-in, aby se zpřístupnily nové systémy úložiště. Pomocí CSI můžete také vylepšit existující kódy v Kubernetes, aniž byste se museli dotýkat základního kódu Kubernetes a pak čekat na cykly jeho vydání.

Diskové a souborové ovladače CSI používané službou AKS Arc jsou ovladače kompatibilní se specifikací CSI.

Podpora ovladačů úložiště CSI v AKS Arc umožňuje používat:

  • Disky AKS Arc, které můžete použít k vytvoření prostředku Kubernetes DataDisk . Ty jsou připojené jako ReadWriteOnce, takže jsou k dispozici jenom pro jeden pod najednou. Pro svazky úložiště, ke kterým může přistupovat více podů současně, použijte soubory AKS Arc.

  • Soubory AKS Arc, které můžete použít k připojení sdílené složky SMB nebo NFS k podům. Jsou připojené jako ReadWriteMany, takže můžete sdílet data mezi několika uzly a pody. Lze je také připojit jako ReadWriteOnce na základě specifikace PVC (deklarace trvalého svazku).

Použití trvalých svazků souborů pomocí ovladačů ReadWriteMany CSI

Pokud více uzlů potřebuje souběžný přístup ke stejným svazkům úložiště v AKS Arc, můžete pomocí ovladačů CSI pro soubory připojit sdílené složky SMB nebo NFS jako ReadWriteMany. Sdílené složky SMB nebo NFS musíte zřídit předem.

Použití ovladačů SMB

  1. Ujistěte se, že je nasazený ovladač SMB. Ovladač SMB CSI se ve výchozím nastavení nainstaluje při vytváření clusteru Kubernetes pomocí Azure Portal nebo az aksarc create příkazu. Pokud vytvoříte cluster Kubernetes pomocí --disable-smb-driverpříkazu , musíte v tomto clusteru povolit ovladač SMB pomocí příkazu az aksarc update :

    az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
    
  1. Spuštěním následujícího příkazu vytvořte tajné kódy Kubernetes pro ukládání přihlašovacích údajů potřebných pro přístup ke sdíleným složkám SMB:

    kubectl create secret generic smbcreds --from-literal username=$username --from-literal password=$password --from-literal domain=$domain
    
  2. Vytvořte třídu úložiště pomocí kubectl k vytvoření nové třídy úložiště SMB s následujícím manifestem:

    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
    

Použití ovladačů NFS

  1. Ujistěte se, že je nasazený ovladač NFS. Při vytváření clusteru Kubernetes pomocí Azure Portal nebo az aksarc create příkazu se ve výchozím nastavení nainstaluje ovladač CSI nfs. Pokud vytvoříte cluster Kubernetes pomocí --disable-nfs-driverpříkazu , musíte v tomto clusteru povolit ovladač NFS pomocí az aksarc update příkazu:

    az aksarc update -n $aksclustername -g $resource_group --enable-nfs-driver
    
  1. Vytvořte třídu úložiště NFS pomocí následujícího manifestu:

    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
    

Odinstalace ovladačů SMB nebo NFS

Pomocí následujících příkazů Azure CLI odinstalujte ovladače SMB nebo NFS:

az aksarc update -n $aksclustername -g $resource_group --disable-smb-driver
az aksarc update -n $aksclustername -g $resource_group --disable-nfs-driver

Další kroky