Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule pokazano, jak dynamicznie i statycznie tworzyć woluminy trwałe (PV) przy użyciu dysków Azure do użycia przez pojedynczy zasobnik w klastrze usługi Azure Kubernetes Service (AKS).
Wymagania wstępne
Interfejs wiersza polecenia platformy Azure w wersji 2.0.59 lub nowszej został zainstalowany i skonfigurowany. Znajdź wersję przy użyciu
az --versionpolecenia . Aby zainstalować lub uaktualnić, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.Sterownik CSI dysków platformy Azure włączony w klastrze usługi AKS.
Sterownik CSI dysków platformy Azure ma limit woluminu na węzeł. Liczba woluminów zmienia się w zależności od rozmiaru węzła lub puli węzłów. Liczbę woluminów, które można przydzielić na węzeł, można określić przy użyciu
kubectl getpolecenia . Przykład:kubectl get CSINode <node-name> -o yamlJeśli limit woluminów na węzeł stanowi problem dla twojego obciążenia roboczego, rozważ użycie usługi Azure Container Storage do trwałego przechowywania danych zamiast sterowników CSI.
Wbudowane klasy magazynu dla dynamicznych woluminów wirtualnych z dyskami platformy Azure
Klasy magazynu definiują sposób dynamicznego tworzenia jednostki magazynu przy użyciu woluminu trwałego.
Każdy klaster usługi AKS obejmuje cztery wbudowane klasy magazynu, z dwoma z nich skonfigurowanymi do pracy z dyskami platformy Azure:
-
Domyślna klasa magazynu przydziela standardowy dysk SSD Azure.
- Dyski SSD w standardowej warstwie obsługują standardowy magazyn i zapewniają ekonomiczne przechowywanie, jednocześnie oferując niezawodną wydajność.
- Klasa magazynu managed-csi-premium przydziela dysk usługi Azure w wersji Premium.
- Dyski ssd o wysokiej wydajności i małych opóźnieniach są z powrotem dyski w warstwie Premium. Są one idealne dla maszyn wirtualnych z uruchomionymi obciążeniami produkcyjnymi. Jeśli używasz sterownika CSI dysku platformy Azure w usłudze AKS, możesz również użyć
managed-csiklasy magazynu, która jest wspierana przez magazyn lokalnie nadmiarowy SSD w warstwie Standardowa (LRS).
- Dyski ssd o wysokiej wydajności i małych opóźnieniach są z powrotem dyski w warstwie Premium. Są one idealne dla maszyn wirtualnych z uruchomionymi obciążeniami produkcyjnymi. Jeśli używasz sterownika CSI dysku platformy Azure w usłudze AKS, możesz również użyć
- Począwszy od wersji 1.29 platformy Kubernetes: podczas wdrażania klastrów AKS w wielu strefach dostępności, AKS używa teraz magazynu strefowo nadmiarowego (ZRS) do tworzenia dysków zarządzanych w wbudowanych klasach magazynu.
- ZRS zapewnia synchroniczną replikację zarządzanych dysków Azure w wielu strefach dostępności w wybranym regionie. Ta strategia nadmiarowości zwiększa odporność aplikacji i zabezpiecza dane przed awariami centrum danych.
- Należy jednak pamiętać, że ZRS jest bardziej kosztowne w porównaniu z lokalnie nadmiarowym magazynowaniem (LRS). Jeśli optymalizacja kosztów jest priorytetem, możesz utworzyć nową klasę magazynu z parametrem nazwy jednostki SKU LRS i użyć jej w PCV.
- ZRS zapewnia synchroniczną replikację zarządzanych dysków Azure w wielu strefach dostępności w wybranym regionie. Ta strategia nadmiarowości zwiększa odporność aplikacji i zabezpiecza dane przed awariami centrum danych.
Zmniejszenie rozmiaru PVC nie jest obsługiwane z powodu ryzyka utraty danych. Istniejącą klasę magazynu można edytować przy użyciu kubectl edit sc polecenia lub utworzyć własną niestandardową klasę magazynu.
Uwaga / Notatka
Oświadczenia trwałego woluminu są określone w giB, ale dyski zarządzane platformy Azure są rozliczane przez jednostkę SKU dla określonego rozmiaru. Te jednostki SKU wahają się od 32 GiB dla dysków S4 lub P4 do 32 TiB dla dysków S80 lub P80 (w wersji zapoznawczej). Przepustowość i liczba operacji we/wy na sekundę dysku SSD Premium zależy zarówno od SKU, jak i rozmiaru instancji węzłów w klastrze usługi AKS. Aby uzyskać więcej informacji, zobacz Cennik i wydajność dysków zarządzanych.
Wyświetl wstępnie utworzone klasy magazynu za pomocą polecenia kubectl get sc. W poniższym przykładzie przedstawiono wstępnie utworzone klasy magazynu dostępne w klastrze usługi AKS:
kubectl get sc
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe, w tym default i managed-csi klasy magazynu, które są wstępnie tworzone dla Azure Disks.
NAME PROVISIONER AGE
default (default) disk.csi.azure.com 1h
managed-csi disk.csi.azure.com 1h
Tworzenie niestandardowych klas magazynu dla dynamicznych telewizorów z dyskami platformy Azure
Domyślne klasy magazynu są odpowiednie dla większości scenariuszy. W niektórych przypadkach możesz chcieć dostosować własną klasę przechowywania z własnymi parametrami. Na przykład możesz zmienić klasę volumeBindingMode .
Można użyć volumeBindingMode: Immediate klasy, która gwarantuje, że następuje natychmiast po utworzeniu PVC. Jeśli pule węzłów są ograniczone topologią, na przykład w przypadku korzystania ze stref dostępności, woluminy PV będą powiązane lub aprowidowane bez znajomości wymagań dotyczących planowania zasobnika.
Aby rozwiązać ten scenariusz, można użyć volumeBindingMode: WaitForFirstConsumer, które opóźnia powiązanie i aprowizację PV do momentu utworzenia zasobnika korzystającego z PVC. W ten sposób PV jest zgodny i jest przydzielany w strefie dostępności (lub innej topologii) określonej przez ograniczenia planowania poda. Domyślne klasy przechowywania używają klasy volumeBindingMode: WaitForFirstConsumer.
Utwórz plik o nazwie
sc-azuredisk-csi-waitforfirstconsumer.yamli wklej następujący manifest YAML. Klasa przechowywania jest taka sama jak nasza klasamanaged-csi, ale z innym typemvolumeBindingMode.kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: azuredisk-csi-waitforfirstconsumer provisioner: disk.csi.azure.com parameters: skuname: StandardSSD_LRS allowVolumeExpansion: true reclaimPolicy: Delete volumeBindingMode: WaitForFirstConsumerUtwórz klasę pamięci przy użyciu tego polecenia
kubectl applyi określ ten pliksc-azuredisk-csi-waitforfirstconsumer.yaml:kubectl apply -f sc-azuredisk-csi-waitforfirstconsumer.yamlDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
storageclass.storage.k8s.io/azuredisk-csi-waitforfirstconsumer created
Parametry klasy magazynu dla dynamicznych dysków wirtualnych Azure
Poniższa tabela zawiera parametry, których można użyć do zdefiniowania niestandardowej klasy magazynu dla dynamicznych oświadczeń woluminów trwałych (PVC) za pomocą usługi Azure Disks:
| Name | Meaning | Dostępne wartości | Wymagane | Wartość domyślna |
|---|---|---|---|---|
skuName |
Typ konta magazynu Azure Disks (alias: storageAccountType).
PremiumV2_LRS i UltraSSD_LRS obsługują natychmiastowy dostęp do przyrostowych przywróceń migawek. |
Standard_LRS, Premium_LRS, , StandardSSD_LRS, PremiumV2_LRS, UltraSSD_LRS, , Premium_ZRSStandardSSD_ZRS |
Nie. | StandardSSD_LRS |
fsType |
Typ systemu plików |
ext4, ext3, , ext2, xfsbtrfsdla systemu Linuxntfs dla systemu Windows |
Nie. |
ext4 dla systemu Linux ntfs dla systemu Windows |
cachingMode |
Ustawienie pamięci podręcznej hosta usługi Azure Data Disk (PremiumV2_LRS i UltraSSD_LRS obsługuje None tylko tryb buforowania) |
None, ReadOnly, ReadWrite |
Nie. | ReadOnly |
resourceGroup |
Określanie grupy zasobów dla dysków platformy Azure | Nazwa istniejącej grupy zasobów | Nie. | Jeśli jest pusty, sterownik używa tej samej nazwy grupy zasobów co bieżący klaster usługi AKS |
DiskIOPSReadWrite |
Możliwość IOPS (Ultra Disk lub Premium SSD v2) (minimalna: 2 IOPS/GiB) | 100~160000 | Nie. | 500 |
DiskMBpsReadWrite |
Przepustowość Ultra Disk lub Premium SSD v2 (minimalna: 0,032/GiB) | 1~2000 | Nie. | 100 |
LogicalSectorSize |
Rozmiar sektora logicznego w bajtach dla dysku Ultra Disk. |
512, 4096 |
Nie. | 4096 |
tags |
Tagi dysków Azure | Format tagu: key1=val1,key2=val2 |
Nie. | "" |
diskEncryptionSetID |
Identyfikator zasobu zestawu szyfrowania dysku, który ma być używany do włączania szyfrowania danych w spoczynku | Formacie: /subscriptions/{subs-id}/resourceGroups/{rg-name}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSet-name} |
Nie. | "" |
diskEncryptionType |
Typ szyfrowania zestawu szyfrowania dysku. |
EncryptionAtRestWithCustomerKey (domyślnie), EncryptionAtRestWithPlatformAndCustomerKeys |
Nie. | "" |
writeAcceleratorEnabled |
Akcelerator zapisu na dyskach platformy Azure |
true, false |
Nie. | "" |
networkAccessPolicy |
NetworkAccessPolicy właściwość zapobiegająca generowaniu SAS URI sygnatur dostępu współdzielonego dla dysku lub migawki. |
AllowAll, DenyAll, AllowPrivate |
Nie. | AllowAll |
diskAccessID |
Identyfikator zasobu DiskAccess platformy Azure do korzystania z prywatnych punktów końcowych na dyskach | Nie. | `` | |
enableBursting |
Włącz zwiększenie wydajności na żądanie poza aprowizowaną docelową wydajność dysku. Skalowanie na żądanie powinno być stosowane tylko do dysku w warstwie Premium i rozmiaru dysku > 512 GB. Dyski Ultra i udostępniane nie są obsługiwane. "Wyburzanie jest domyślnie wyłączone." |
true, false |
Nie. | false |
useragent |
Agent użytkownika używany do przypisywania użycia przez klienta | Nie. | Wygenerowany format agenta użytkownika: driverName/driverVersion compiler/version (OS-ARCH) |
|
subscriptionID |
Określ identyfikator subskrypcji platformy Azure, w którym są tworzone dyski platformy Azure. | Identyfikator subskrypcji Azure | Nie. | Jeśli nie jest pusty, resourceGroup należy podać. |
| --- | Następujące parametry dotyczą tylko wersji 2 | --- | --- | --- |
maxShares |
Całkowita liczba punktów montowania współdzielonego dysku dozwolona dla dysku. Ustawienie wartości na 2 lub więcej umożliwia tworzenie kopii załączników. | Obsługiwane wartości zależą od rozmiaru dysku. Zobacz Udostępnianie zarządzanego dysku Azure w celu uzyskania obsługiwanych wartości. | Nie. | 1 |
maxMountReplicaCount |
Liczba replik do utrzymania. | Ta wartość musi znajdować się w zakresie [0..(maxShares - 1)] |
Nie. | Jeśli accessMode jest ReadWriteMany, wartość domyślna to 0. W przeciwnym razie wartość domyślna to maxShares - 1 |
Tworzenie pcv z dyskami platformy Azure
PVC automatycznie przydziela pamięć masową na podstawie klasy pamięci masowej. W takim przypadku PVC może użyć jednej ze wstępnie utworzonych klas magazynu do utworzenia dysku zarządzanego w platformie Azure w wersji Standardowa lub Premium.
Utwórz plik o nazwie
azure-pvc.yamli wklej następujący manifest. Żądanie dotyczy dyskuazure-managed-disko rozmiarze 5 GB z dostępem „ReadWriteOnce”. Klasa przechowywania managed-csi jest określona jako klasa przechowywania.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: azure-managed-disk spec: accessModes: - ReadWriteOnce storageClassName: managed-csi resources: requests: storage: 5GiWskazówka
Aby utworzyć dysk korzystający z magazynu w warstwie Premium, użyj
storageClassName: managed-csi-premiumzamiast managed-csi.Utwórz plik PVC przy użyciu
kubectl applypolecenia i określ plik azure-pvc.yaml :kubectl apply -f azure-pvc.yamlDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
persistentvolumeclaim/azure-managed-disk createdSprawdź, czy PV jest gotowy do użycia przez zasobnik, korzystając z polecenia
kubectl describe pvc.kubectl describe pvc azure-managed-diskDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe, które pokazują, że PV jest w stanie Oczekiwanie.
Name: azure-managed-disk Namespace: default StorageClass: managed-csi Status: Pending [...]
Tworzenie zasobnika korzystającego z pcv z dyskami platformy Azure
Utwórz plik o nazwie
azure-pvc-disk.yamli wklej następujący manifest. Ten manifest tworzy podstawowy pod NGINX, który używa żądania trwałego woluminu o nazwie azure-managed-disk, aby zamontować dysk platformy Azure w ścieżce/mnt/azure. (W przypadku kontenerów systemu Windows Server określ konwencjęmountPathścieżki systemu Windows, taką jak "D:").kind: Pod apiVersion: v1 metadata: name: mypod spec: containers: - name: mypod image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - mountPath: "/mnt/azure" name: volume readOnly: false volumes: - name: volume persistentVolumeClaim: claimName: azure-managed-diskUtwórz pod przy użyciu polecenia
kubectl apply.kubectl apply -f azure-pvc-disk.yamlDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
pod/mypod createdMasz teraz uruchomiony zasobnik z zamontowanym dyskiem
/mnt/azureAzure w katalogu. Sprawdź konfigurację zasobnika za pomocą poleceniakubectl describe.kubectl describe pod mypodDane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych, które pokazują, że wolumin o nazwie volume używa roszczenia dotyczącego przestrzeni dyskowej PVC o nazwie azure-managed-disk.
[...] Volumes: volume: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: azure-managed-disk ReadOnly: false default-token-smm2n: Type: Secret (a volume populated by a Secret) SecretName: default-token-smm2n Optional: false [...] Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 2m default-scheduler Successfully assigned mypod to aks-nodepool1-12345678-9 Normal SuccessfulMountVolume 2m kubelet, aks-nodepool1-12345678-9 MountVolume.SetUp succeeded for volume "default-token-smm2n" Normal SuccessfulMountVolume 1m kubelet, aks-nodepool1-12345678-9 MountVolume.SetUp succeeded for volume "pvc-abc0d123-4e5f-67g8-901h-ijk23l45m678" [...]
Parametry klasy migawki wolumenu dla dysków Azure
Sterownik CSI dysków platformy Azure obsługuje tworzenie migawek woluminów trwałych. W ramach tej możliwości sterownik może wykonywać pełne lub przyrostowe migawki w zależności od wartości ustawionej w parametrze incremental .
Poniższa tabela zawiera szczegółowe informacje na temat parametrów, które można wykorzystać do zdefiniowania niestandardowej klasy migawki woluminów z użyciem dysków Azure.
| Name | Meaning | Dostępne wartości | Wymagane | Wartość domyślna |
|---|---|---|---|---|
resourceGroup |
Grupa zasobów do przechowywania zdjęć migawek | ISTNIEJĄCA GRUPA ZASOBÓW | Nie. | Jeśli nie zostanie określone, migawka będzie przechowywana w tej samej grupie zasobów co dyski źródłowe Azure. |
incremental |
Tworzenie pełnej lub przyrostowej migawki |
true, false |
Nie. | true |
tags |
Tagi usługi Azure Disks | Format tagu: "key1=val1,key2=val2" | Nie. | "" |
userAgent |
Agent użytkownika używany do przypisywania użycia przez klienta | Nie. | Sformatowany user-agent wygenerowany driverName/driverVersion compiler/version (OS-ARCH) |
|
subscriptionID |
Określanie identyfikatora subskrypcji platformy Azure, w którym zostaną utworzone dyski platformy Azure | Identyfikator subskrypcji Azure | Nie. | Jeśli nie jest puste, resourceGroup należy podać wartość , incremental należy ustawić jako false |
Tworzenie migawki woluminu z PVC przy użyciu Azure Disks
Uwaga / Notatka
Przed kontynuowaniem upewnij się, że aplikacja nie zapisuje danych na dysku źródłowym.
Utwórz klasę migawki woluminu poleceniem
kubectl apply.kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/snapshot/storageclass-azuredisk-snapshot.yamlDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
volumesnapshotclass.snapshot.storage.k8s.io/csi-azuredisk-vsc createdUtwórz migawkę woluminu z dynamicznego PVC, które utworzyłeś wcześniej w tym samouczku, przy użyciu polecenia
kubectl apply.kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/snapshot/azuredisk-volume-snapshot.yamlDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
volumesnapshot.snapshot.storage.k8s.io/azuredisk-volume-snapshot createdSprawdź, czy migawka woluminu została pomyślnie utworzona przy użyciu polecenia
kubectl describe.kubectl describe volumesnapshot azuredisk-volume-snapshotDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe, które pokazują, że migawka woluminu jest gotowa do użycia:
Name: azuredisk-volume-snapshot Namespace: default Labels: <none> Annotations: API Version: snapshot.storage.k8s.io/v1 Kind: VolumeSnapshot Metadata: Creation Timestamp: 2020-08-27T05:27:58Z Finalizers: snapshot.storage.kubernetes.io/volumesnapshot-as-source-protection snapshot.storage.kubernetes.io/volumesnapshot-bound-protection Generation: 1 Resource Version: 714582 Self Link: /apis/snapshot.storage.k8s.io/v1/namespaces/default/volumesnapshots/azuredisk-volume-snapshot UID: 00aa00aa-bb11-cc22-dd33-44ee44ee44ee Spec: Source: Persistent Volume Claim Name: pvc-azuredisk Volume Snapshot Class Name: csi-azuredisk-vsc Status: Bound Volume Snapshot Content Name: snapcontent-00aa00aa-bb11-cc22-dd33-44ee44ee44ee Creation Time: 2020-08-31T05:27:59Z Ready To Use: true Restore Size: 10Gi Events: <none>
Tworzenie nowego PCV na podstawie migawki woluminu za pomocą usługi Azure Disks
Możesz utworzyć nowy element PVC na podstawie migawki woluminu. W tej sekcji użyjemy migawki z sekcji Tworzenie migawki woluminu z PVC za pomocą dysków Azure i utworzymy nowy PVC oraz nowy pod, aby z niego korzystać.
Utwórz PVC i pod przy użyciu następujących
kubectl applypoleceń:kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/snapshot/pvc-azuredisk-snapshot-restored.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/snapshot/nginx-pod-restored-snapshot.yamlDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
persistentvolumeclaim/pvc-azuredisk-snapshot-restored created pod/nginx-restored createdZweryfikuj, że jest to to samo PVC utworzone wcześniej, sprawdzając zawartość woluminu przy użyciu polecenia
kubectl exec, aby wykonać polecenielsw zasobniku.kubectl exec nginx-restored -- ls /mnt/azurediskWynik powinien przypominać następujący przykładowy wynik, który pokazuje taką samą zawartość jak oryginalny PVC, w tym
test.txtplik utworzony w oryginalnym PVC.lost+found outfile test.txt
Klonowanie woluminów za pomocą usługi Azure Disks
Sklonowany wolumin jest definiowany jako duplikat istniejącego woluminu Kubernetes. Aby uzyskać więcej informacji na temat klonowania woluminów na platformie Kubernetes, zobacz dokumentację koncepcyjną dotyczącą klonowania woluminów.
Sterownik CSI dla usługi Azure Disks obsługuje klonowanie woluminów. Aby zademonstrować, utwórz sklonowany wolumin z dynamicznego PVC utworzonego wcześniej w tym samouczku i nowy pod, który z niego skorzysta.
Utwórz sklonowane PVC i pod za pomocą następujących
kubectl applypoleceń:kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/cloning/pvc-azuredisk-cloning.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/cloning/nginx-pod-restored-cloning.yamlDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
persistentvolumeclaim/pvc-azuredisk-cloning created pod/nginx-restored-cloning createdSprawdź, czy sklonowany wolumin ma taką samą zawartość jak oryginalny wolumin, sprawdzając zawartość woluminu, wykorzystując polecenie
kubectl exec, aby wykonać polecenielsw podzie.kubectl exec nginx-restored-cloning -- ls /mnt/azurediskWynik powinien być podobny do poniższego przykładu, który pokazuje taką samą zawartość jak oryginalny PVC, w tym plik
test.txtutworzony w oryginalnym PVC.lost+found outfile test.txt
Zmień rozmiar woluminu trwałego bez przestoju przy użyciu Dysków Azure.
Uwaga / Notatka
Zmniejszanie woluminów trwałych nie jest obecnie obsługiwane. Próba zastosowania istniejącego pvc o mniejszym rozmiarze niż bieżący prowadzi do następującego komunikatu o błędzie:
The persistentVolumeClaim "pvc-azuredisk" is invalid: spec.resources.requests.storage: Forbidden: field can not be less than previous value.
Aby zażądać większego woluminu dla PVC, edytuj obiekt PVC, aby określić większy rozmiar. Ta zmiana wyzwala rozszerzenie woluminu bazowego, który wspiera PV. Nowy PV nigdy nie jest tworzony w celu spełnienia roszczenia. Zamiast tego zmieniany jest rozmiar istniejącego woluminu.
W usłudze AKS wbudowana klasa pamięci masowej managed-csi obsługuje już rozszerzenie, co oznacza, że można użyć dynamicznego PVC utworzonego wcześniej w tym samouczku. PVC zażądał 10-GiB trwałego wolumenu.
Sprawdź bieżący rozmiar woluminu, wykonując polecenie
df -hprzy użyciu poleceniakubectl execw podzie.kubectl exec -it nginx-azuredisk -- df -h /mnt/azurediskWynik powinien przypominać następujący przykład wyniku, który pokazuje, że bieżący rozmiar woluminu wynosi 10 Gi.
Filesystem Size Used Avail Use% Mounted on /dev/sdc 9.8G 42M 9.8G 1% /mnt/azurediskRozwiń PVC, zwiększając pole
spec.resources.requests.storageza pomocą poleceniakubectl patch. W tym przykładzie zwiększamy rozmiar PVC do 15 Gi:kubectl patch pvc pvc-azuredisk --type merge --patch '{"spec": {"resources": {"requests": {"storage": "15Gi"}}}}'Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
persistentvolumeclaim/pvc-azuredisk patchedSprawdź PV, aby potwierdzić, że nowy rozmiar jest odzwierciedlony w PV, używając komendy
kubectl get pv.kubectl get pvWynik powinien przypominać następujący przykład, w którym rozmiar PV został zmieniony do 15 Gi.
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 15Gi RWO Delete Bound default/pvc-azuredisk managed-csi 2d2h (...)Po kilku minutach sprawdź PVC, aby potwierdzić, że nowy rozmiar jest odzwierciedlony w PVC przy użyciu polecenia
kubectl get pvc.kubectl get pvc pvc-azurediskDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe, które pokazują, że rozmiar PVC został zwiększony do 15 Gi.
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-azuredisk Bound pvc-a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 15Gi RWO managed-csi 2d2hUpewnij się, że rozmiar dysku w zasobniku został zaktualizowany do nowego rozmiaru przy użyciu
kubectl execpolecenia, aby wykonać poleceniedf -hw zasobniku:kubectl exec -it nginx-azuredisk -- df -h /mnt/azurediskDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe, które pokazują, że rozmiar woluminu został zaktualizowany do 15 Gi:
Filesystem Size Used Avail Use% Mounted on /dev/sdc 15G 46M 15G 1% /mnt/azuredisk
Elastyczne skalowanie na żądanie dla dysków SSD Premium z Dyskami Azure
Model rozszerzania wydajności dysku na żądanie umożliwia rozszerzenie wydajności dysków, kiedy zapotrzebowanie na wydajność przewyższa bieżącą wydajność. Model ten generuje dodatkowe opłaty za każdym razem, gdy dysk przekroczy swoje limity. Skalowanie na żądanie (bursting) jest dostępne tylko dla dysków SSD Premium o pojemności większej niż 512 GiB. Aby uzyskać więcej informacji na temat dysków SSD w warstwie Premium, aprowizowanych operacji we/wy na sekundę i przepustowości na dysk, zobacz Rozmiar SSD w warstwie Premium. Alternatywnie, wybuch oparty na kredytach jest możliwy tylko wtedy, gdy dysk zgromadził kredyty w swoim pojemniku kredytowym. Skalowanie oparte na kredytach nie generuje dodatkowych opłat, gdy dysk pęka. Skalowanie oparte na kredytach jest dostępne tylko dla dysków SSD w warstwie Premium 512 GiB i mniejszych oraz dysków SSD w warstwie Standardowa 1024 GiB i mniejszych. Aby uzyskać więcej informacji na temat przerywania na żądanie, zobacz sekcję Przerywanie na żądanie.
Ważna
Domyślna managed-csi-premium klasa magazynu ma wyłączone dynamiczne przydzielanie zasobów i używa działania opartego na kredytach. Każdy dysk SSD w warstwie Premium dynamicznie tworzony przez trwałe oświadczenie woluminu na podstawie domyślnej managed-csi-premium klasy magazynu ma również wyłączone skalowanie na żądanie.
Aby utworzyć trwały wolumin SSD w warstwie Premium z włączonym elastycznym rozruchem na żądanie, możesz utworzyć nową klasę magazynu z parametrem ustawionym na enableBurstingtrue, co pokazano w poniższym szablonie YAML. Aby uzyskać więcej informacji na temat włączania skalowania na żądanie, zobacz On-demand bursting. Aby uzyskać więcej informacji na temat tworzenia własnej klasy magazynu z włączoną obsługą nagłego zwiększania mocy na żądanie, zobacz Tworzenie zarządzanej klasy magazynu Premium CSI z możliwością burstu.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: burstable-managed-csi-premium
provisioner: disk.csi.azure.com
parameters:
skuname: Premium_LRS
enableBursting: "true"
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
Używanie dysków platformy Azure z kontenerami systemu Windows
Sterownik CSI dysku platformy Azure obsługuje węzły i kontenery systemu Windows. Jeśli chcesz używać kontenerów systemu Windows, postępuj zgodnie z Szybkim przewodnikiem kontenerów Windows, aby dodać pulę węzłów systemu Windows. Po utworzeniu puli węzłów systemu Windows możesz użyć wbudowanych klas pamięci, takich jak managed-csi.
Wdróż przykładowy zestaw stanowy oparty na systemie Windows , który zapisuje znaczniki czasu w pliku
data.txtprzy użyciu następującegokubectl applypolecenia:kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/windows/statefulset.yamlDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
statefulset.apps/busybox-azuredisk createdZweryfikuj zawartość pliku
data.txtw podzie za pomocą poleceniakubectl exec, aby wykonać polecenietypew podzie.kubectl exec -it statefulset-azuredisk-win-0 -- powershell -c "type c:/mnt/azuredisk/data.txt"Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe, które pokazują znaczniki czasu zapisywane w pliku
data.txt:2020-08-27 08:13:41Z 2020-08-27 08:13:42Z 2020-08-27 08:13:44Z (...)
Tworzenie statycznego PV przy użyciu dysków platformy Azure
W poniższych sekcjach przedstawiono instrukcje dotyczące tworzenia statycznej sieci PV z dyskami platformy Azure. Statyczny pv jest woluminem trwałym tworzonym ręcznie przez administratora. Ten serwer PV jest dostępny do użycia przez zasobniki w klastrze. Aby użyć statycznego PV, należy utworzyć PVC, który odwołuje się do PV, a następnie utworzyć pod odwołujący się do PVC.
Parametry klasy przechowywania dla trwałych woluminów z dysków Azure
Poniższa tabela zawiera parametry, których można użyć do zdefiniowania niestandardowej klasy magazynu dla statycznych kontrolerów PVC za pomocą usługi Azure Disks:
| Name | Meaning | Dostępne wartości | Wymagane | Wartość domyślna |
|---|---|---|---|---|
volumeHandle |
URI dysku Azure | /subscriptions/{sub-id}/resourcegroups/{group-name}/providers/microsoft.compute/disks/{disk-id} |
Tak | N/A |
volumeAttributes.fsType |
Typ systemu plików |
ext4, ext3, , ext2, xfsbtrfsdla systemu Linuxntfs dla systemu Windows |
Nie. |
ext4 dla systemu Linux ntfs dla systemu Windows |
volumeAttributes.partition |
Numer partycji istniejącego dysku (obsługiwany tylko w systemie Linux) |
1, 2, 3 |
Nie. | Pusty (bez partycji) Upewnij się, że format partycji to: -part1 |
volumeAttributes.cachingMode |
Ustawienie pamięci podręcznej hosta dysku |
None, ReadOnly, ReadWrite |
Nie. | ReadOnly |
Tworzenie dysku platformy Azure
Podczas tworzenia dysku platformy Azure do użycia z usługą AKS można utworzyć zasób dysku w grupie zasobów węzła. Takie podejście umożliwia klastrowi usługi AKS uzyskiwanie dostępu do zasobu dysku i zarządzanie nim. Jeśli zamiast tego utworzysz dysk w oddzielnej grupie zasobów, musisz przyznać zarządzanej tożsamości AKS twojego klastra rolę Contributor do grupy zasobów dysku.
Zidentyfikuj nazwę grupy zasobów węzła przy użyciu
az aks showpolecenia z parametrem--query nodeResourceGroup.az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsvDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe, pokazując nazwę grupy zasobów węzła dla klastra AKS.
MC_myResourceGroup_myAKSCluster_eastusUtwórz dysk przy użyciu
az disk createpolecenia . Określ nazwę grupy zasobów węzła i nazwę zasobu dysku, na przykład myAKSDisk. Poniższy przykład tworzy dysk 20 GiB i generuje identyfikator dysku po jego utworzeniu. Jeśli musisz utworzyć dysk do użycia z kontenerami systemu Windows Server, dodaj--os-type windowsparametr w celu poprawnego sformatowania dysku.az disk create \ --resource-group MC_myResourceGroup_myAKSCluster_eastus \ --name myAKSDisk \ --size-gb 20 \ --query id --output tsvUwaga / Notatka
Opłaty za dyski platformy Azure są naliczane według jednostki SKU dla określonego rozmiaru. Te jednostki SKU wahają się od 32 GiB dla dysków S4 lub P4 do 32 TiB dla dysków S80 lub P80 (w wersji zapoznawczej). Wydajność przepływności i liczby operacji we/wy na sekundę dysku zarządzanego w warstwie Premium zależy zarówno od jednostki SKU, jak i rozmiaru wystąpienia węzłów w klastrze usługi AKS. Zobacz Cennik i wydajność Dyski zarządzane.
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe, które pokazują identyfikator zasobu dysku, który został utworzony:
/subscriptions/<subscriptionID>/resourceGroups/MC_myAKSCluster_myAKSCluster_eastus/providers/Microsoft.Compute/disks/myAKSDisk
Utwórz PV i PVC odwołujące się do dysku platformy Azure
Utwórz plik pv-azuredisk.yaml z zasobem PV przy użyciu następującego przykładowego manifestu. Zaktualizuj
volumeHandleza pomocą identyfikatora zasobu dysku z poprzedniego kroku. W przypadku kontenerów systemu Windows Server określ ntfs dla parametrufsType.apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: disk.csi.azure.com name: pv-azuredisk spec: capacity: storage: 20Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: managed-csi csi: driver: disk.csi.azure.com volumeHandle: /subscriptions/<subscriptionID>/resourceGroups/MC_myAKSCluster_myAKSCluster_eastus/providers/Microsoft.Compute/disks/myAKSDisk volumeAttributes: fsType: ext4Jak wspomniano w artykule Tworzenie dysku platformy Azure, jeśli dysk dla
volumeHandleelementu został utworzony w oddzielnej grupie zasobów, musisz przyznać tożsamościContributorzarządzanej klastra usługi AKS rolę grupie zasobów dysku.Utwórz plik pvc-azuredisk.yaml z PVC, który korzysta z PV, na podstawie następującego przykładowego manifestu:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-azuredisk spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi volumeName: pv-azuredisk storageClassName: managed-csiUtwórz PV i PVC przy użyciu następujących
kubectl applypoleceń:kubectl apply -f pv-azuredisk.yaml kubectl apply -f pvc-azuredisk.yamlSprawdź, czy element PVC został pomyślnie utworzony i powiązany z PV przy użyciu polecenia
kubectl get pvc:kubectl get pvc pvc-azurediskDane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe, które pokazują, że PVC jest w stanie Związana :
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-azuredisk Bound pv-azuredisk 20Gi RWO 5s
Tworzenie zasobnika korzystającego z pcv z dyskami platformy Azure
Utwórz plik azure-disk-pod.yaml, aby odwołać się do swojego obiektu PVC, używając poniższego przykładowego manifestu. (W przypadku kontenerów systemu Windows Server określ konwencję
mountPathścieżki systemu Windows, taką jak "D:").apiVersion: v1 kind: Pod metadata: name: mypod spec: nodeSelector: kubernetes.io/os: linux containers: - image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine name: mypod resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - name: azure mountPath: /mnt/azure volumes: - name: azure persistentVolumeClaim: claimName: pvc-azurediskZastosuj konfigurację i zainstaluj wolumin przy
kubectl applyużyciu polecenia .kubectl apply -f azure-disk-pod.yaml
Uprzątnij zasoby
Usuń zasoby, które utworzyłeś w tym samouczku, korzystając z następujących poleceń [
kubectl delete][kubectl-delete]:# Remove the pod kubectl delete -f azure-pvc-disk.yaml # Remove the persistent volume claim kubectl delete -f azure-pvc.yaml