Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: AKS w usłudze Azure Local
W tym artykule opisano sposób używania klas magazynu wbudowanych w interfejs magazynu kontenerów (CSI) do dynamicznego tworzenia trwałych woluminów dysków oraz tworzenia niestandardowych klas magazynu w usłudze AKS obsługiwanej przez Arc.
Omówienie interfejsu CSI w usłudze AKS z obsługą Arc
Interfejs Container Storage Interface (CSI) jest standardem umożliwiającym uwidacznianie dowolnych systemów magazynów blokowych i magazynów plików konteneryzowanym obciążeniom na platformie Kubernetes. Dzięki użyciu interfejsu CSI usługa AKS włączona przez usługę Arc może zapisywać, wdrażać i iterować wtyczki w celu udostępnienia nowych systemów magazynowania. CSI może również poprawić istniejące rozwiązania w Kubernetes bez konieczności modyfikacji podstawowego kodu Kubernetes i oczekiwania na cykle wydań.
Sterowniki CSI dysku i pliku używane przez usługę AKS Arc to sterowniki zgodne ze specyfikacją CSI.
Obsługa sterowników magazynu CSI w usłudze AKS Arc umożliwia korzystanie z następujących funkcji:
Dyski usługi AKS Arc, których można użyć do utworzenia zasobu Kubernetes DataDisk. Są one instalowane jako ReadWriteOnce, więc są dostępne tylko dla jednego zasobnika naraz. W przypadku woluminów magazynu, do których można uzyskiwać dostęp jednocześnie przez wiele zasobników, użyj AKS Arc files.
Pliki usługi AKS Arc, których można użyć do zamontowania udziału SMB lub NFS w podach. Są one instalowane jako ReadWriteMany, dzięki czemu można udostępniać dane między wieloma węzłami i podami. Można je również zamontować jako ReadWriteOnce na podstawie specyfikacji PCV (oświadczenia trwałego woluminu).
Dynamiczne tworzenie woluminów trwałych dysku przy użyciu wbudowanej klasy magazynu
Klasa magazynu służy do definiowania sposobu dynamicznego tworzenia jednostki magazynu przy użyciu woluminu trwałego. Aby uzyskać więcej informacji na temat używania klas magazynu, zobacz Klasy magazynu Kubernetes.
W usłudze AKS Arc domyślna klasa magazynu używa interfejsu CSI do tworzenia woluminów opartych na dyskach typu VHDX. Polityka odzyskiwania zapewnia usunięcie bazowego dysku VHDX po usunięciu woluminu trwałego, który z niego korzystał. Klasa magazynu konfiguruje również woluminy trwałe, aby można je było rozszerzać; wystarczy edytować żądanie woluminu trwałego, określając nowy rozmiar.
Aby użyć tej klasy magazynu, utwórz żądanie trwałego woluminu (PVC) i odpowiedni pod, który z niego korzysta. PVC służy do automatycznego przydzielania przestrzeni dyskowej na podstawie klasy przestrzeni dyskowej. PVC może wykorzystać jedną z wstępnie utworzonych klas magazynu lub klasę magazynu zdefiniowaną przez użytkownika do utworzenia dysku VHDX o żądanym rozmiarze. Podczas tworzenia definicji zasobnika zostanie określony element PVC w celu zażądania żądanego magazynu.
Tworzenie niestandardowej klasy magazynu dla dysków
Domyślna klasa magazynu jest odpowiednia dla najbardziej typowych scenariuszy. Jednak w niektórych przypadkach możesz utworzyć własną klasę magazynu, która przechowuje telewizory w określonej lokalizacji zamapowanej na określoną warstwę wydajności.
Jeśli masz obciążenia systemu Linux (zasobniki), musisz utworzyć niestandardową klasę pamięci masowej z parametrem fsType: ext4. To wymaganie dotyczy platformy Kubernetes w wersji 1.19 i 1.20 lub nowszej. W poniższym przykładzie przedstawiono niestandardową definicję klasy składowania z ustawionym 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
Jeśli tworzysz niestandardową klasę magazynu, możesz określić lokalizację, w której chcesz przechowywać trwałe wolumeny. Jeśli podstawowa infrastruktura jest lokalna platformy Azure, ta nowa lokalizacja może być woluminem wspieranym przez dyski SSD/NVMe o wysokiej wydajności lub wolumin zoptymalizowany pod kątem kosztów wspierany przez dyski HDD.
Tworzenie niestandardowej klasy magazynu jest procesem dwuetapowym:
Utwórz nową ścieżkę magazynu przy użyciu poleceń
stack-hci-vm storagepathcmdlet do tworzenia, wyświetlania i listowania ścieżek magazynu w lokalnym klastrze Azure. Aby uzyskać więcej informacji na temat tworzenia ścieżki do przechowywania, zobacz ścieżka do przechowywania.W przypadku
$pathutwórz ścieżkę magazynowania o nazwie$storagepathname; na przykład C:\ClusterStorage\test-storagepath:az stack-hci-vm storagepath create --resource-group $resource_group --custom-location $customLocationID --name $storagepathname --path $pathPobierz identyfikator zasobu ścieżki przechowywania
$storagepathID = az stack-hci-vm storagepath show --name $storagepathname --resource-group $resource_group --query "id" -o tsvUtwórz nową niestandardową klasę pamięci przy użyciu nowej ścieżki pamięciowej.
Utwórz plik o nazwie sc-aks-hci-disk-custom.yaml, a następnie skopiuj manifest z następującego pliku YAML. Klasa magazynu jest taka sama jak domyślna klasa magazynu, z wyjątkiem nowej
containerklasy . Użyj elementustorage path IDutworzonego w poprzednim kroku dla elementucontainer. W przypadkugroupihostnamewykonaj zapytanie dotyczące domyślnej klasy magazynu, uruchamiająckubectl get storageclass default -o yaml, a następnie użyj podanych wartości.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: ImmediateUtwórz klasę magazynu za pomocą polecenia kubectl apply, określając plik sc-aks-hci-disk-custom.yaml.
$ kubectl apply -f sc-aks-hci-disk-custom.yaml storageclass.storage.k8s.io/aks-hci-disk-custom created
Następne kroki
Używanie sterowników dla plików interfejsu systemu magazynowania kontenerów