Použití ovladačů souborů rozhraní úložiště kontejnerů (CSI) v AKS, které podporuje Azure Arc
> platí pro: AKS v Azure Local 22H2, AKS na Windows Serveru, AKS v Azure Local, verze 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, pokud 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
CSI (Container Storage Interface) je standard pro zpřístupnění libovolných blokových a souborových systémů úložišť kontejnerizovaným úlohám v Kubernetes. Pomocí csI může AKS s podporou Arc psát, nasazovat a iterovat moduly plug-in, aby zpřístupnil nové systémy úložiště. Použití rozhraní CSI může také zlepšit stávající prostředí v Kubernetes, aniž by se muselo dotýkat základního kódu Kubernetes a pak počkat na cykly vydání.
Ovladače csI disku a souboru používané službou AKS Arc jsou ovladače kompatibilní se specifikací CSI.
Podpora ovladače úložiště CSI ve službě AKS Arc umožňuje použít:
Disky AKS Arc, které můžete použít k vytvoření prostředku Datového disku Kubernetes. Jsou připojené jako ReadWriteOnce, takže jsou k dispozici pouze pro jeden pod najednou. Pro svazky úložiště, ke kterým má přístup 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 (trvalá deklarace svazku).
Použití trvalých svazků souborů pomocí ovladačů CSI readWriteMany
Pokud více uzlů potřebuje souběžný přístup ke stejným svazkům úložiště ve službě AKS Arc, můžete soubory připojit ke sdíleným složkám SMB nebo NFS pomocí ovladačů CSI jako ReadWriteMany. Sdílené složky SMB nebo NFS musíte zřídit předem.
Použití ovladačů SMB
Ujistěte se, že je ovladač SMB nasazený. Ovladač SMB CSI se ve výchozím nastavení nainstaluje při vytváření clusteru Kubernetes pomocí webu Azure Portal nebo
az aksarc create
příkazu. Pokud vytváříte cluster Kubernetes pomocí--disable-smb-driver
, musíte v tomto clusteru povolit ovladač SMB pomocíaz aksarc update
příkazu:az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
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
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
Ujistěte se, že je ovladač NFS nasazený. Ovladač CSI systému souborů NFS se ve výchozím nastavení nainstaluje při vytváření clusteru Kubernetes pomocí webu Azure Portal nebo
az aksarc create
příkazu. Pokud vytváříte cluster Kubernetes pomocí--disable-nfs-driver
, 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
Pomocí následujícího manifestu vytvořte třídu úložiště NFS:
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
K odinstalaci ovladačů SMB nebo NFS použijte následující příkazy Azure CLI:
az aksarc update -n $aksclustername -g $resource_group --disable-smb-driver
az aksarc update -n $aksclustername -g $resource_group --disable-nfs-driver