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:
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
$path
hozzon 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
Hozzon létre egy új egyéni tárolóosztályt az új tárolási útvonal használatával.
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 azstorage path ID
előző lépésben létrehozott parancsot a következőhöz:container
.hostname
És eseténgroup
a parancs futtatásávalkubectl get storageclass default -o yaml
ké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
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