Použití ovladačů disků rozhraní PRO úložiště kontejnerů (CSI) v AKS povolených službou Azure Arc

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

Tento článek popisuje, jak pomocí předdefinovaných tříd úložiště rozhraní CSI (Container Storage Interface) dynamicky vytvářet trvalé diskové svazky a vytvářet vlastní třídy úložiště v AKS s podporou Arc.

Přehled CSI v AKS povolené službou Arc

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

Diskové ovladače CSI a soubory 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ží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 dostupné jenom pro jednotlivé pody 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. Mohou být také připojeny jako ReadWriteOnce na základě specifikace PVC (deklarace trvalého svazku).

Dynamické vytváření trvalých diskových svazků pomocí integrované třídy úložiště

Třída úložiště slouží k definování dynamického vytváření jednotky úložiště s trvalým svazkem. Další informace o tom, jak používat třídy úložiště, najdete v tématu Třídy úložiště Kubernetes.

Ve službě AKS Arc je výchozí třída úložiště vytvořená ve výchozím nastavení a pomocí CSI vytváří svazky založené na VHDX. Zásada uvolnění zajišťuje odstranění základního souboru VHDX při odstranění trvalého svazku, který ho používal. Třída úložiště také konfiguruje trvalé svazky tak, aby byly rozšiřitelné; Stačí upravit deklaraci trvalého svazku s novou velikostí.

Pokud chcete tuto třídu úložiště využít, vytvořte pvc a odpovídající pod, který na něj 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. Když vytvoříte definici podu, zadává se pvc pro 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 většinu běžných scénářů. 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 zadat umístění, kam chcete ukládat osobní počítače. Pokud je základní infrastrukturou Azure Stack HCI, může se jednat o svazek, který je podporovaný vysoce výkonnými disky SSD nebo NVMe, nebo svazek optimalizovaný pro náklady na disky HDD.

Vytvoření vlastní třídy úložiště je dvoustupňový proces:

  1. Pomocí rutin vytvořte novou cestu k stack-hci-vm storagepath úložišti, abyste mohli vytvořit, zobrazit a vypsat cesty k úložišti v clusteru Azure Stack HCI. Další informace o vytvoření cesty k úložišti najdete v tématu Cesta k úložišti.

    Pro $pathvytvořte cestu k úložišti s názvem $storagepathname, například 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 k úložišti:

    $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é containertřídy . storage path ID Pro použijte soubor vytvořený v předchozím krokucontainer. Pro group a hostnamezadejte dotaz na výchozí třídu úložiště spuštěním kubectl get storageclass default -o yamlpříkazu a 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
      
    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