Tárolótároló-illesztő (CSI) lemezillesztők használata az Azure Arc által engedélyezett AKS-ben

> A következőkre vonatkozik: AKS az Azure Stack HCI 22H2-n, AKS Windows Serveren, AKS az Azure Stack HCI-n 23H2

Ez a cikk bemutatja, hogyan használhatja a Tárolótárolói felület (CSI) beépített tárolóosztályait a lemezek állandó köteteinek dinamikus létrehozására, valamint egyéni tárolóosztályok létrehozására az Arc által engedélyezett AKS-ben.

Az Arc által engedélyezett CSI áttekintése az AKS-ben

A Container Storage Interface (CSI) egy standard, amely tetszőleges blokk- és fájlrendszereket tárhat fel tárolóalapú számítási feladatok számára a Kubernetesen. A CSI használatával az Arc által engedélyezett AKS képes beépülő modulokat írni, üzembe helyezni és iterálni az új tárolórendszerek elérhetővé tételéhez. A CSI használatával a Kubernetes meglévőit is javíthatja anélkül, hogy hozzá kellene nyúlnia az alapvető Kubernetes-kódhoz, majd várnia kellene a kiadási ciklusokra.

Az AKS Arc által használt lemez- és fájl CSI-illesztőprogramok a CSI specifikációnak megfelelő illesztőprogramok.

Az AKS Arc CSI-tárolóillesztő támogatása lehetővé teszi a következőket:

  • Kubernetes DataDisk-erőforrás létrehozásához használható AKS Arc-lemezek. Ezek ReadWriteOnce néven vannak csatlakoztatva, így egyszerre csak egyetlen podhoz érhetők el. Olyan tárolókötetekhez, amelyek egyszerre több podtal is elérhetők, használja az AKS Arc-fájlokat.

  • AKS Arc-fájlok, amelyekkel SMB- vagy NFS-megosztásokat csatlakoztathat podokhoz. Ezek ReadWriteMany néven vannak csatlakoztatva, így több csomópont és pod között oszthat meg adatokat. A PVC (állandó kötetjogcím) specifikációja alapján ReadWriteOnce-ként is csatlakoztathatók.

Állandó lemezkötetek dinamikus létrehozása beépített tárolási osztály használatával

A tárolási osztály határozza meg, hogyan jön létre dinamikusan egy tárolóegység egy állandó kötettel. A tárolási osztályok használatáról további információt a Kubernetes-tárolóosztályok című témakörben talál.

Az AKS Arcban az alapértelmezett tárolási osztály alapértelmezés szerint létrejön, és a CSI használatával hoz létre VHDX-alapú köteteket. A visszaigénylési szabályzat biztosítja, hogy a mögöttes VHDX törlődik az azt használó állandó kötet törlésekor. A tárolási osztály az állandó köteteket is bővíthetőre konfigurálja; csak szerkesztenie kell az állandó kötetjogcímet az új mérettel.

A tárolási osztály használatához hozzon létre egy PVC-t és egy megfelelő podot, amely hivatkozik rá, és használja azt. A PVC-t a tárolóosztályon alapuló tárolás automatikus kiépítésére használják. A PVC az előre létrehozott tárolóosztályok vagy a felhasználó által definiált tárolóosztályok egyikét használhatja a kívánt méretű VHDX létrehozásához. Poddefiníció létrehozásakor a PVC meg van adva a kívánt tároló igényléséhez.

Egyéni tárolóosztály létrehozása lemezekhez

Az alapértelmezett tárolási osztály a leggyakoribb forgatókönyvekhez használható. Bizonyos esetekben azonban érdemes lehet létrehoznia egy saját tárolóosztályt, amely egy adott teljesítményszintre leképezett helyen tárolja a számítógépeket.

Ha linuxos számítási feladatokkal (podokkal) rendelkezik, létre kell hoznia egy egyéni tárolóosztályt a paraméterrel fsType: ext4. Ez a követelmény a Kubernetes 1.19-s és 1.20-s vagy újabb verzióira vonatkozik. Az alábbi példa egy egyéni tárolóosztály-definíciót mutat be, amelynek paramétere fsType definiálva van:

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  

Ha egyéni tárolóosztályt hoz létre, megadhatja, hogy hol szeretné tárolni a PV-ket. Ha a mögöttes infrastruktúra az Azure Stack HCI, ez az új hely lehet egy nagy teljesítményű SSD-k/NVMe-k által támogatott kötet, vagy egy HDD-k által támogatott, költségoptimalizált kötet.

Az egyéni tárolóosztályok létrehozása két lépésből áll:

  1. Hozzon létre egy új tárolási útvonalat a stack-hci-vm storagepath parancsmagok használatával az Azure Stack HCI-fürtön található tárolási útvonalak létrehozásához, megjelenítéséhez és listázásához. A tárelérési út létrehozásával kapcsolatos további információkért lásd: tárolási elérési út.

    A esetében $pathhozzon létre egy nevű tárolási útvonalat $storagepathname; például : C:\ClusterStorage\test-storagepath:

    az stack-hci-vm storagepath create --resource-group $resource_group --custom-location $customLocationID --name $storagepathname --path $path
    

    Kérje le a tárolási útvonal erőforrás-azonosítóját:

    $storagepathID = az stack-hci-vm storagepath show --name $storagepathname --resource-group $resource_group --query "id" -o tsv 
    
  2. Hozzon létre egy új egyéni tárolóosztályt az új tárolási útvonal használatával.

    1. Hozzon létre egy sc-aks-hci-disk-custom.yaml nevű fájlt, majd másolja a jegyzékfájlt a következő YAML-fájlból. A tárolási osztály ugyanaz, mint az alapértelmezett tárolási osztály, kivéve az újat container. Használja az storage path ID előző lépésben létrehozott parancsot a következőhöz: container. hostnameÉs esetén group a parancs futtatásával kubectl get storageclass default -o yamlkérdezze le az alapértelmezett tárolási osztályt, majd használja a megadott értékeket:

      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. Hozza létre a storage osztályt a kubectl apply paranccsal, és adja meg az sc-aks-hci-disk-custom.yaml fájlt:

       $ kubectl apply -f sc-aks-hci-disk-custom.yaml
       storageclass.storage.k8s.io/aks-hci-disk-custom created
      

Következő lépések