Sdílet prostřednictvím


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:

  1. 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 $pathpřípadě příkazu vytvořte cestu k úložišti s názvem $storagepathnameC :\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 
    
  2. Vytvořte novou vlastní třídu úložiště pomocí nové cesty k úložišti.

    1. 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řenou storage path ID v předchozím kroku pro container. Zadejte group dotaz na výchozí třídu úložiště spuštěním hostnamepříkazu a kubectl get storageclass default -o yamlpak 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
      
    2. 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
      

Další kroky