Použití ovladačů disku rozhraní úložiště kontejnerů (CSI) v AKS povolené službou Azure Arc
> platí pro: AKS v Azure Local 22H2, AKS na Windows Serveru, AKS v Azure Local, verze 23H2
Tento článek popisuje, jak používat integrované třídy úložiště kontejneru (CSI) k dynamickému vytváření trvalých svazků disku a vytváření vlastních tříd úložiště v AKS povolené službou Arc.
Přehled csI v AKS povolené službou 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).
Dynamické vytváření trvalých svazků disku pomocí integrované třídy úložiště
Třída úložiště slouží k definování dynamického vytvoření jednotky úložiště s trvalým svazkem. Další informace o používání tříd úložiště najdete v tématu Třídy úložiště Kubernetes.
Ve službě AKS Arc se ve výchozím nastavení vytvoří výchozí třída úložiště a pomocí rozhraní CSI vytvoří svazky založené na VHDX. Zásady uvolnění paměti zajistí, že se základní VHDX odstraní, když se odstraní trvalý svazek, který ho použil. Třída úložiště také konfiguruje trvalé svazky tak, aby byly rozšiřitelné; Stačí upravit trvalou deklaraci identity svazku s novou velikostí.
Chcete-li využít tuto třídu úložiště, vytvořte PVC a odpovídající pod, který odkazuje a používá ho. PVC se používá k automatickému zřizování úložiště na základě třídy úložiště. PVC může použít jednu z předem vytvořených tříd úložiště nebo uživatelem definovanou třídu úložiště k vytvoření VHDX požadované velikosti. Při vytváření definice podu je pvc určen k vyžádání požadovaného úložiště.
Vytvoření vlastní třídy úložiště pro disky
Výchozí třída úložiště je vhodná pro nejběžnější scénáře. V některých případech ale můžete chtít vytvořit vlastní třídu úložiště, která ukládá virtuální počítače v určitém umístění mapovaném na konkrétní úroveň výkonu.
Pokud máte linuxové úlohy (pody), musíte vytvořit vlastní třídu úložiště s parametrem fsType: ext4
. Tento požadavek platí pro Kubernetes verze 1.19 a 1.20 nebo novější. Následující příklad ukazuje definici vlastní třídy úložiště s definovaným parametrem fsType
:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: aks-hci-disk-custom
parameters:
blocksize: "33554432"
container: SqlStorageContainer
dynamic: "true"
group: clustergroup-summertime
hostname: TESTPATCHING-91.sys-sqlsvr.local
logicalsectorsize: "4096"
physicalsectorsize: "4096"
port: "55000"
fsType: ext4
provisioner: disk.csi.akshci.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
Pokud vytvoříte vlastní třídu úložiště, můžete určit umístění, kam chcete ukládat virtuální počítače. Pokud je základní infrastruktura Místní Azure, může toto nové umístění být svazek, který je založený na vysoce výkonných discích SSD/NVMe nebo na svazku optimalizovaném podle nákladů založených na pevných discích.
Vytvoření vlastní třídy úložiště je dvoustupňový proces:
Vytvořte novou cestu k úložišti pomocí
stack-hci-vm storagepath
rutin k vytvoření, zobrazení a výpisu cest k úložišti v místním clusteru Azure. Další informace o vytvoření cesty k úložišti najdete v tématu Cesta k úložišti.V
$path
případě příkazu vytvořte cestu k úložišti s názvem$storagepathname
C :\ClusterStorage\test-storagepath:az stack-hci-vm storagepath create --resource-group $resource_group --custom-location $customLocationID --name $storagepathname --path $path
Získejte ID prostředku cesty úložiště:
$storagepathID = az stack-hci-vm storagepath show --name $storagepathname --resource-group $resource_group --query "id" -o tsv
Vytvořte novou vlastní třídu úložiště pomocí nové cesty k úložišti.
Vytvořte soubor s názvem sc-aks-hci-disk-custom.yaml a zkopírujte manifest z následujícího souboru YAML. Třída úložiště je stejná jako výchozí třída úložiště s výjimkou nové
container
. Použijte vytvořenoustorage path ID
v předchozím kroku procontainer
. Zadejtegroup
dotaz na výchozí třídu úložiště spuštěnímhostname
příkazu akubectl get storageclass default -o yaml
pak použijte zadané hodnoty:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: aks-hci-disk-custom provisioner: disk.csi.akshci.com parameters: blocksize: "33554432" container: <storage path ID> dynamic: "true" group: <e.g clustergroup-akshci> # same as the default storageclass hostname: <e.g. ca-a858c18c.ntprod.contoso.com> # same as the default storageclass logicalsectorsize: "4096" physicalsectorsize: "4096" port: "55000" fsType: ext4 # refer to the note above to determine when to include this parameter allowVolumeExpansion: true reclaimPolicy: Delete volumeBindingMode: Immediate
Vytvořte třídu úložiště pomocí příkazu kubectl apply a zadejte soubor sc-aks-hci-disk-custom.yaml :
$ kubectl apply -f sc-aks-hci-disk-custom.yaml storageclass.storage.k8s.io/aks-hci-disk-custom created