Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek vám ukáže, jak dynamicky a staticky vytvářet trvalé svazky (PVs) pomocí Azure Disks pro použití v jednom podu v clusteru Azure Kubernetes Service (AKS).
Předpoklady
Azure CLI nainstalovaná a nakonfigurovaná verze 2.0.59 nebo novější. Najděte verzi pomocí
az --versionpříkazu. Pokud chcete nainstalovat nebo upgradovat, přečtěte si téma Instalace Azure CLI.Ovladač Azure Disks CSI driver je povolen v clusteru AKS.
Ovladač disků Azure CSI má limit svazků na jeden uzel. Počet svazků se změní na základě velikosti uzlu nebo fondu uzlů. Pomocí příkazu můžete určit počet svazků, které se dají přidělit na každý uzel
kubectl get. Například:kubectl get CSINode <node-name> -o yamlPokud je limit svazku pro jednotlivé uzly problém pro vaši úlohu, zvažte použití Azure Container Storage pro trvalé svazky místo ovladačů CSI.
Integrované třídy úložiště pro dynamické virtuální počítače s Azure disky
Třídy úložiště definují, jak se dynamicky vytváří jednotka úložiště s trvalým svazkem.
Každý cluster AKS obsahuje čtyři předdefinované třídy úložiště, přičemž dva z nich jsou nakonfigurované tak, aby fungovaly s Azure disky:
- Třída úložiště default poskytuje standardní disk Azure SSD.
- Standardní SSD disky podporují standardní úložiště a poskytují úsporné úložiště, a zároveň poskytují spolehlivý výkon.
- Třída úložiště managed-csi-premium provozuje disk úrovně Premium Azure.
- Disky s vysokým výkonem a nízkou latencí, založené na technologii SSD, podporují disky Premium. Jsou ideální pro virtuální počítače, na kterých běží produkční úlohy. Pokud používáte ovladač CSI disku Azure v AKS, můžete také použít třídu úložiště
managed-csi, která je podporována místně redundantním úložištěm SSD úrovně Standard (LRS).
- Disky s vysokým výkonem a nízkou latencí, založené na technologii SSD, podporují disky Premium. Jsou ideální pro virtuální počítače, na kterých běží produkční úlohy. Pokud používáte ovladač CSI disku Azure v AKS, můžete také použít třídu úložiště
- Efektivní spuštění s Kubernetes verze 1.29: Když nasadíte clustery AKS napříč několika zónami dostupnosti, AKS teď používá zónově redundantní úložiště (ZRS) k vytváření spravovaných disků v rámci integrovaných tříd úložiště.
- ZRS zajišťuje synchronní replikaci spravovaných disků Azure napříč několika Azure zónami dostupnosti ve zvolené oblasti. Tato strategie redundance zvyšuje odolnost vašich aplikací a chrání vaše data před selháními datacentra.
- Je ale důležité si uvědomit, že ZRS má oproti místně redundantnímu úložišti (LRS) vyšší náklady. Pokud je optimalizace nákladů prioritou, můžete vytvořit novou třídu úložiště s parametrem názvu skladové položky LRS a použít ji ve vašem PVC.
- ZRS zajišťuje synchronní replikaci spravovaných disků Azure napříč několika Azure zónami dostupnosti ve zvolené oblasti. Tato strategie redundance zvyšuje odolnost vašich aplikací a chrání vaše data před selháními datacentra.
Zmenšení velikosti PVC není podporováno kvůli riziku ztráty dat. Existující třídu úložiště můžete upravit pomocí kubectl edit sc příkazu nebo můžete vytvořit vlastní třídu úložiště.
Poznámka:
Požadavky na trvalé svazky jsou uvedeny v GiB, ale spravované disky Azure jsou účtovány podle SKU za konkrétní velikost. Tyto skladové položky se liší od 32 GiB pro disky S4 nebo P4 až po 32 TiB pro disky S80 nebo P80 (ve verzi Preview). Propustnost a výkon IOPS Premium SSD závisí na SKU i velikosti instance uzlů v clusteru AKS. Další informace najdete v tématu Ceny a výkon spravovaných disků.
Pomocí příkazu kubectl get sc zobrazte předem připravené třídy úložiště. Následující příklad ukazuje předem připravené třídy úložiště dostupné v clusteru AKS:
kubectl get sc
Výstup by měl vypadat podobně jako v následujícím příkladu výstupu, který zahrnuje třídy úložiště default a managed-csi-premium, které jsou předem vytvořeny pro disky Azure:
NAME PROVISIONER AGE
default (default) disk.csi.azure.com 1h
managed-csi-premium disk.csi.azure.com 1h
Vytvoření vlastních tříd úložiště pro dynamické virtuální počítače s Azure disky
Výchozí třídy úložiště jsou vhodné pro většinu scénářů. V některých případech můžete chtít mít vlastní třídu úložiště přizpůsobenou vlastními parametry. Můžete například chtít změnit volumeBindingMode třídu.
Můžete použít volumeBindingMode: Immediate třídu, která zaručuje, že k tomu dojde okamžitě po vytvoření PVC. Pokud jsou fondy uzlů omezené topologií, například při použití zón dostupnosti, budou trvalé svazky připojené nebo zřízené bez znalosti specifických požadavků na plánování podu.
Chcete-li tento scénář vyřešit, můžete použít volumeBindingMode: WaitForFirstConsumer, což zpožďuje vazbu a zřizování PV, dokud není vytvořen pod, který používá PVC. Tímto způsobem je PV v souladu a zřízen v zóně dostupnosti (nebo v jiné topologii) určené omezeními plánování pódia. Výchozí třídy úložiště používají volumeBindingMode: WaitForFirstConsumer třídu.
Vytvořte soubor s názvem
sc-azuredisk-csi-waitforfirstconsumer.yamla vložte do následujícího manifestu YAML. Třída úložiště je stejná jako našemanaged-csitřída úložiště, ale s jinouvolumeBindingModetřídou.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: WaitForFirstConsumerPomocí příkazu vytvořte třídu
kubectl applyúložiště a zadejte souborsc-azuredisk-csi-waitforfirstconsumer.yaml:kubectl apply -f sc-azuredisk-csi-waitforfirstconsumer.yamlVýstup by měl vypadat podobně jako v následujícím příkladu výstupu:
storageclass.storage.k8s.io/azuredisk-csi-waitforfirstconsumer created
Parametry třídy úložiště pro dynamické PV s disky Azure
Následující tabulka obsahuje parametry, které můžete použít k definování vlastní třídy úložiště pro dynamické žádosti o vytrvalé svazky (PVC) s Azure Disky:
| Název | Význam | Dostupné hodnoty | Povinné | Výchozí hodnota |
|---|---|---|---|---|
skuName |
typ účtu úložiště Azure Disky (alias: storageAccountType).
PremiumV2_LRS a UltraSSD_LRS podporují okamžitý přístup pro přírůstková obnovení snímků. |
Standard_LRS, Premium_LRS, StandardSSD_LRS, PremiumV2_LRS, UltraSSD_LRS, , Premium_ZRSStandardSSD_ZRS |
Ne | StandardSSD_LRS |
fsType |
Typ systému souborů |
ext4, ext3, ext2, xfs, btrfs pro Linux ntfs pro Windows |
Ne |
ext4 pro Linux ntfs pro Windows |
cachingMode |
Azure Nastavení hostitelské mezipaměti pro datový disk (PremiumV2_LRS a UltraSSD_LRS podporují pouze režim ukládání do mezipaměti None) |
None, ReadOnly, ReadWrite |
Ne | ReadOnly |
resourceGroup |
Zadejte skupinu prostředků pro disky Azure | Název existující skupiny prostředků | Ne | Pokud je prázdný, ovladač použije stejný název skupiny prostředků jako aktuální cluster AKS. |
DiskIOPSReadWrite |
Schopnost IOPS disku Ultra nebo SSD Premium v2 (minimálně 2 IOPS/GiB) | 100~160000 | Ne | 500 |
DiskMBpsReadWrite |
Provozní kapacita propustnosti Ultra Disk nebo Premium SSD v2 (minimálně: 0,032/GiB) | 1 ~ 2000 | Ne | 100 |
LogicalSectorSize |
Velikost logického sektoru v bajtech pro Ultra Disk. |
512, 4096 |
Ne | 4096 |
tags |
Azure Disk tags | Formát značky: key1=val1,key2=val2 |
Ne | "" |
diskEncryptionSetID |
ID prostředku sady šifrování disku, které se má použít k povolení šifrování neaktivních uložených dat | formát: /subscriptions/{subs-id}/resourceGroups/{rg-name}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSet-name} |
Ne | "" |
diskEncryptionType |
Typ šifrování sady šifrování disku |
EncryptionAtRestWithCustomerKey (ve výchozím nastavení) EncryptionAtRestWithPlatformAndCustomerKeys |
Ne | EncryptionAtRestWithCustomerKey |
writeAcceleratorEnabled |
Akcelerátor zápisu na discích Azure |
true, false |
Ne | "" |
networkAccessPolicy |
NetworkAccessPolicy vlastnost k zabránění generování identifikátoru URI SAS pro disk nebo snímek. |
AllowAll, DenyAll, AllowPrivate |
Ne | AllowAll |
diskAccessID |
Azure ID prostředku DiskAccess pro použití privátních koncových bodů na discích | Ne | `` | |
enableBursting |
Povolte pružné zvýšení výkonu na vyžádání nad rámec zřízeného cíle pro výkon disku. Nárazové rozšíření na vyžádání by mělo být použito pouze pro disk Premium a pokud je velikost disku > 512 GB. Disky Ultra a sdílené disky nejsou podporovány. Ve výchozím nastavení je prasknutí zakázané. |
true, false |
Ne | false |
userAgent |
Uživatelský agent používaný pro přisuzování využití zákazníka | Ne | Vygenerovaný formát uživatelského agenta: driverName/driverVersion compiler/version (OS-ARCH) |
|
subscriptionID |
Zadejte ID předplatného Azure, ve kterém byly vytvořeny disky Azure. Pokud není prázdný, resourceGroup je nutné zadat. |
ID předplatného Azure | Ne | |
| --- | Následující parametry jsou určené pouze pro v2. | --- | --- | --- |
maxShares |
Celkový počet připojení sdílených disků povolených pro disk. Nastavení hodnoty na 2 nebo více umožňuje zajištění replik příloh. | Podporované hodnoty závisí na velikosti disku. Podporované hodnoty najdete v tématu Sdílení spravovaného disku Azure. | Ne | 1 |
maxMountReplicaCount |
Počet příloh replik, které je třeba zachovat. | Tato hodnota musí být v rozsahu. [0..(maxShares - 1)] |
Ne | Pokud accessMode je ReadWriteMany, výchozí hodnota je 0. V opačném případě je výchozí hodnota maxShares - 1 |
Důležité
Parametr třídy úložiště tags se použije na spravovaný disk, když ovladač Azure Disk CSI přidělí svazek. Po vytvoření trvalého svazku PersistentVolume je specifikace neměnná, takže úprava nebo oprava pv pro změnu značek nebo jiných atributů svazku selže. Aktualizace třídy úložiště později ovlivní pouze nově zřízené svazky.
Pokud chcete aktualizovat značky na existujícím svazku, změňte je na podkladovém spravovaném disku v Azure. Tato operace nepřeruší stávající připojení, pody ani přístup k datům a aktualizované Azure značky se nesynchronizují zpět do YAML nebo metadat Kubernetes PV. Například:
az disk update \
--name myManagedDisk \
--resource-group MC_myResourceGroup_myAKSCluster_eastus \
--set tags.abc=ABC123
Vytvoření PVC s disky Azure
PVC automaticky zajišťuje úložiště podle třídy úložiště. V tomto případě může PVC použít jednu z předem vytvořených tříd úložiště k vytvoření spravovaného disku Azure úrovně Standard nebo Premium.
Vytvořte soubor s názvem
azure-pvc.yamla vložte ho do následujícího manifestu. Požadavek požaduje disk s názvemazure-managed-disk, který má velikost 10 GB a přístup ReadWriteOnce. Třída úložiště managed-csi je specifikována jako třída úložiště.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: azure-managed-disk spec: accessModes: - ReadWriteOnce storageClassName: managed-csi resources: requests: storage: 10GiNávod
Pokud chcete vytvořit disk, který používá Premium Storage, použijte
storageClassName: managed-csi-premiummísto managed-csi.Pomocí příkazu
kubectl applyvytvořte PVC a zadejte soubor azure-pvc.yaml:kubectl apply -f azure-pvc.yamlVýstup by měl vypadat podobně jako v následujícím příkladu výstupu:
persistentvolumeclaim/azure-managed-disk createdOvěřte, že je PV připravený k použití v podu pomocí příkazu
kubectl describe pvc.kubectl describe pvc azure-managed-diskVýstup by měl vypadat podobně jako v následujícím příkladu výstupu, který ukazuje, že pv je ve stavu Čeká na vyřízení :
Name: azure-managed-disk Namespace: default StorageClass: managed-csi Status: Pending [...]
Vytvořte pod, který používá PVC s disky Azure
Vytvořte soubor s názvem
azure-pvc-disk.yamla vložte ho do následujícího manifestu. Tento manifest vytvoří základní NGINX pod, který pomocí žádosti o trvalý svazek s názvem azure-managed-disk připojí disk Azure k cestě/mnt/azure. (Pro kontejnery Windows Server zadejtemountPathpomocí konvence cesty Windows, například '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-diskVytvořte pod pomocí příkazu
kubectl apply.kubectl apply -f azure-pvc-disk.yamlVýstup by měl vypadat podobně jako v následujícím příkladu výstupu:
pod/mypod createdTeď máte spuštěný pod s diskem Azure připojeným v adresáři
/mnt/azure. Pomocí příkazu zkontrolujte konfiguraci podukubectl describe.kubectl describe pod mypodVýstup by měl vypadat jako následující příklad, který ukazuje, že svazek pojmenovaný volume používá PVC s názvem 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 třídy snímků svazku pro disky Azure
Ovladač disky Azure CSI podporuje vytváření snapshotů trvalých svazků. V rámci této funkce může ovladač provádět úplné nebo přírůstkové snímky v závislosti na hodnotě nastavené v parametru incremental .
Následující tabulka obsahuje podrobnosti o parametrech, které můžete použít k definování vlastní třídy snímků svazků pro vaše snímky s Azure Disks:
| Název | Význam | Dostupné hodnoty | Povinné | Výchozí hodnota |
|---|---|---|---|---|
resourceGroup |
Skupina prostředků pro ukládání snímků | EXISTUJÍCÍ SKUPINA PROSTŘEDKŮ | Ne | Pokud není určen, snímek se uloží ve stejné skupině prostředků jako zdrojové disky Azure. |
incremental |
Pořízení úplných nebo přírůstkových snímků |
true, false |
Ne | true |
tags |
Azure disky tags | Formát tagu: 'key1=val1,key2=val2' | Ne | "" |
userAgent |
Uživatelský agent používaný pro přisuzování využití zákazníka | Ne | Vygenerovaný uživatelský agent naformátovaný driverName/driverVersion compiler/version (OS-ARCH) |
|
subscriptionID |
Zadejte ID Azure předplatného, kde se vytvoří disky Azure. | ID předplatného Azure | Ne | Pokud není prázdný, resourceGroup musí být zadaný, incremental musí být nastaven jako false |
Vytvořte snímek svazku z PVC s Azure Disks
Poznámka:
Než budete pokračovat, ujistěte se, že aplikace nezapisuje data na zdrojový disk.
Vytvořte třídu snímků svazku pomocí příkazu
kubectl apply.kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/snapshot/storageclass-azuredisk-snapshot.yamlVýstup by měl vypadat podobně jako v následujícím příkladu výstupu:
volumesnapshotclass.snapshot.storage.k8s.io/csi-azuredisk-vsc createdPomocí příkazu vytvořte snímek svazku z dynamického PVC, který jste vytvořili dříve v tomto kurzu
kubectl apply:kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/snapshot/azuredisk-volume-snapshot.yamlVýstup by měl vypadat podobně jako v následujícím příkladu výstupu:
volumesnapshot.snapshot.storage.k8s.io/azuredisk-volume-snapshot createdPomocí příkazu
kubectl describeověřte, že se snímek svazku úspěšně vytvořil:kubectl describe volumesnapshot azuredisk-volume-snapshotVýstup by měl vypadat podobně jako v následujícím příkladu výstupu, který ukazuje, že snímek svazku je připravený k použití:
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>
Vytvoření nového PVC, založeného na snímku svazku, s Azure Disks
Nový PVC můžete vytvořit na základě snímku svazku. V této části použijeme snímek z části Vytvoření snímku svazku z PVC s oddílem Azure Disky a vytvoříme nové PVC a nový pod, které ho spotřebují.
Pomocí následujících
kubectl applypříkazů vytvořte PVC a pod: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.yamlVýstup by měl vypadat podobně jako v následujícím příkladu výstupu:
persistentvolumeclaim/pvc-azuredisk-snapshot-restored created pod/nginx-restored createdOvěřte, že se jedná o stejný PVC vytvořený dříve kontrolou obsahu svazku pomocí příkazu
kubectl execke spuštění příkazulsv podu:kubectl exec nginx-restored -- ls /mnt/azurediskVýstup by měl vypadat podobně jako v následujícím příkladu výstupu, který zobrazuje stejný obsah jako původní PVC, včetně
test.txtsouboru vytvořeného v původním PVC:lost+found outfile test.txt
Klonování svazků pomocí disků Azure
Klonovaný svazek se definuje jako duplikát existujícího svazku Kubernetes. Další informace o klonování svazků v Kubernetes najdete v koncepční dokumentaci ke klonování svazků.
Ovladač CSI pro disky Azure podporuje klonování svazků. Pro demonstraci vytvořte naklonovaný svazek dynamického PVC, který jste vytvořili dříve v tomto kurzu, a nový pod, který jej využije.
Pomocí následujících
kubectl applypříkazů vytvořte klonovaný PVC a pod: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.yamlVýstup by měl vypadat podobně jako v následujícím příkladu výstupu:
persistentvolumeclaim/pvc-azuredisk-cloning created pod/nginx-restored-cloning createdOvěřte, že klonovaný svazek má stejný obsah jako původní svazek. Zkontrolujte obsah svazku pomocí
kubectl execpříkazu ke spuštěnílspříkazu v podu:kubectl exec nginx-restored-cloning -- ls /mnt/azurediskVýstup by měl vypadat podobně jako v následujícím příkladu výstupu, který zobrazuje stejný obsah jako původní PVC, včetně
test.txtsouboru vytvořeného v původním PVC:lost+found outfile test.txt
Změna velikosti trvalého svazku bez výpadků pomocí disků Azure
Poznámka:
Zmenšování trvalých svazků se v současné době nepodporuje. Pokus o opravu existujícího PVC s menší velikostí, než je aktuální, vede k následující chybové zprávě:
The persistentVolumeClaim "pvc-azuredisk" is invalid: spec.resources.requests.storage: Forbidden: field can not be less than previous value.
Pro PVC můžete požádat o větší objem úpravou objektu PVC a určit tak větší velikost. Tato změna aktivuje rozšíření podkladového svazku, který zálohuje trvalý svazek. Nový trvalý svazek (PV) se nikdy nevytváří, aby uspokojil požadavek. Místo toho se změní velikost existujícího svazku.
V AKS integrovaná managed-csi třída úložiště již podporuje rozšíření, takže můžete použít dynamické PVC, které jste vytvořili dříve v tomto kurzu. PVC požádal o trvalý svazek 10 GiB.
Pomocí příkazu
kubectl execzkontrolujte aktuální velikost svazku a spusťte příkazdf -hv podu:kubectl exec -it nginx-azuredisk -- df -h /mnt/azurediskVýstup by měl vypadat podobně jako v následujícím příkladu výstupu, který ukazuje aktuální velikost svazku 10 Gi:
Filesystem Size Used Avail Use% Mounted on /dev/sdc 9.8G 42M 9.8G 1% /mnt/azurediskRozbalte PVC zvětšením pole
spec.resources.requests.storagepomocí příkazukubectl patch. V tomto příkladu zvětšíme velikost PVC na 15 Gi:kubectl patch pvc pvc-azuredisk --type merge --patch '{"spec": {"resources": {"requests": {"storage": "15Gi"}}}}'Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:
persistentvolumeclaim/pvc-azuredisk patchedZkontrolujte PV a ověřte, že se nová velikost projeví v PV pomocí příkazu
kubectl get pv.kubectl get pvVýstup by měl vypadat podobně jako v následujícím příkladu výstupu, který ukazuje, že velikost pv byla změněna na 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 několika minutách zkontrolujte PVC a ověřte, že se nová velikost projeví v PVC pomocí
kubectl get pvcpříkazu:kubectl get pvc pvc-azurediskVýstup by měl vypadat jako následující příklad výstupu, který ukazuje, že PVC bylo změněno na 15 Gi.
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-azuredisk Bound pvc-a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 15Gi RWO managed-csi 2d2hOvěřte, že se velikost disku v podu aktualizovala na novou velikost, pomocí
kubectl execpříkazu spusťtedf -hpříkaz v podu:kubectl exec -it nginx-azuredisk -- df -h /mnt/azurediskVýstup by měl vypadat podobně jako v následujícím příkladu výstupu, který ukazuje, že velikost svazku byla aktualizována na 15 Gi:
Filesystem Size Used Avail Use% Mounted on /dev/sdc 15G 46M 15G 1% /mnt/azuredisk
Nárazové rozšíření na vyžádání pro disky SSD úrovně Premium s Azure disky
Model diskového výbuchu na vyžádání umožňuje diskové výbuchy kdykoli potřeby překročí jeho aktuální kapacitu. Tento model generuje další poplatky, kdykoli se disk rozsákne. Funkce bursting na vyžádání je k dispozici pouze pro Premium SSD větší než 512 GiB. Další informace o předem definovaném IOPS a propustnosti na disk pro Premium SSD disky najdete v tématu Velikost SSD úrovně Premium. Alternativně, bursting na bázi kreditů znamená, že disk překročí svou běžnou kapacitu pouze tehdy, když má ve svém kreditovém fondu naakumulované kredity. Při kreditním shlukování se při shlukování disku negenerují žádné dodatečné poplatky. Rozšíření založené na kreditech je dostupné jenom pro disky SSD úrovně Premium 512 GiB a menší a disky SSD úrovně Standard 1024 GiB a menší. Další informace o on-demand bursting viz on-demand bursting.
Důležité
Výchozí managed-csi-premium třída úložiště má deaktivované nárazové navyšování na vyžádání a využívá nárazové nárůsty založené na kreditech. Jakékoliv SSD úrovně Premium dynamicky vytvořené požadavkem na perzistentní svazek na základě výchozí managed-csi-premium třídy úložiště má také zakázané automatické rozšíření kapacity na vyžádání.
Pokud chcete vytvořit trvalý svazek SSD úrovně Premium s povoleným jednorázovým navýšením, můžete vytvořit novou třídu úložiště s nastaveným parametrem enableBurstingtrue jak je znázorněno v následující šabloně YAML. Další informace o povolení "nárazového škálování" na vyžádání najdete v tématu Škálování na vyžádání. Další informace o vytváření vlastní třídy úložiště s pružným nárůstem na vyžádání najdete v tématu Vytvoření třídy úložiště s pružným nárůstem – spravovaná třída CSI Premium Storage.
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
Použití disků Azure s kontejnery Windows
Ovladač csI disku Azure podporuje uzly a kontejnery Windows. Pokud chcete použít kontejnery Windows, postupujte podle rychlého startu Windows kontejnerů k přidání uzlového fondu Windows. Jakmile máte fond uzlů Windows, můžete použít předdefinované třídy úložiště, jako je managed-csi.
Nasaďte ukázkovou stavovou sadu založenou na Windows, která ukládá časová razítka do souboru
data.txtpomocí následujícího příkazukubectl apply:kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/windows/statefulset.yamlVýstup by měl vypadat podobně jako v následujícím příkladu výstupu:
statefulset.apps/busybox-azuredisk createdOvěřte obsah souboru
data.txtv podu pomocí příkazukubectl execpro spuštěnítypev podu.kubectl exec -it statefulset-azuredisk-win-0 -- powershell -c "type c:/mnt/azuredisk/data.txt"Výstup by měl vypadat podobně jako v následujícím příkladu výstupu, který ukazuje časová razítka, která se ukládají do souboru
data.txt:2020-08-27 08:13:41Z 2020-08-27 08:13:42Z 2020-08-27 08:13:44Z (...)
Vytvoření statické PV s disky Azure
Následující části obsahují pokyny pro vytvoření statické PV pomocí disků Azure. Statický svazek PV je trvalý svazek, který správce vytvoří ručně. Tento PV je k dispozici pro použití pody v clusteru. Chcete-li použít statickou PV, vytvořte PVC, které odkazuje na PV, a poté vytvořte pod, který odkazuje na PVC.
Parametry třídy úložiště pro statické virtuální počítače s Azure disky
Následující tabulka obsahuje parametry, které můžete použít k definování vlastní třídy úložiště pro vaše statické PVCs s Azure Disky:
| Název | Význam | Dostupné hodnoty | Povinné | Výchozí hodnota |
|---|---|---|---|---|
volumeHandle |
identifikátor URI disku Azure | /subscriptions/{sub-id}/resourceGroups/{group-name}/providers/microsoft.compute/disks/{disk-id} |
Ano | N/A |
volumeAttributes.fsType |
Typ systému souborů |
ext4, ext3, ext2, xfs, btrfs pro Linux ntfs pro Windows |
Ne |
ext4 pro Linux ntfs pro Windows |
volumeAttributes.partition |
Počet oddílů existujícího disku (podporuje se jenom v Linuxu) |
1, 2, 3 |
Ne | Prázdné (bez oddílu) Ujistěte se, že je formát oddílu: -part1 |
volumeAttributes.cachingMode |
Nastavení mezipaměti hostitele disku |
None, ReadOnly, ReadWrite |
Ne | ReadOnly |
Vytvoření disku Azure
Když vytvoříte Azure disk pro použití s AKS, můžete vytvořit prostředek disku ve skupině prostředků uzlu. Tento přístup umožňuje clusteru AKS přístup k prostředku disku a jeho správě. Pokud místo toho disk vytvoříte v samostatné skupině prostředků, musíte spravované identitě AKS pro váš cluster udělit roli Contributor k přístupu ke skupině prostředků disku.
Identifikujte název skupiny prostředků uzlu pomocí příkazu
az aks shows parametrem--query nodeResourceGroup.az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsvVýstup by měl vypadat podobně jako v následujícím příkladu výstupu, který ukazuje název skupiny prostředků uzlu pro cluster AKS:
MC_myResourceGroup_myAKSCluster_eastusVytvořte disk pomocí
az disk createpříkazu. Zadejte název skupiny prostředků uzlu a název prostředku disku, například myAKSDisk. Následující příklad vytvoří disk 20 GiB a po vytvoření vypíše ID disku. Pokud potřebujete vytvořit disk pro použití s kontejnery Windows Server, přidejte parametr--os-type windowspro správné formátování disku.az disk create \ --resource-group MC_myResourceGroup_myAKSCluster_eastus \ --name myAKSDisk \ --size-gb 20 \ --query id --output tsvPoznámka:
Azure disky se účtují podle SKU za konkrétní velikost. Tyto skladové položky se liší od 32 GiB pro disky S4 nebo P4 až po 32 TiB pro disky S80 nebo P80 (ve verzi Preview). Výkon propustnosti a IOPS spravovaného disku úrovně Premium závisí na typu SKU a velikosti uzlů v clusteru AKS. Viz Pricing and Performance of Spravované disky.
Výstup by měl vypadat podobně jako následující příklad, který ukazuje ID prostředku vytvořeného disku:
/subscriptions/<subscriptionID>/resourceGroups/MC_myResourceGroup_myAKSCluster_eastus/providers/Microsoft.Compute/disks/myAKSDisk
Vytvořit PV a PVC, které odkazují na disk Azure
Pomocí následujícího ukázkového manifestu vytvořte soubor pv-azuredisk.yaml s PV. Aktualizujte
volumeHandlepomocí ID prostředku disku z předchozího kroku. Pro kontejnery Windows Server zadejte ntfs jako parametrfsType.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_myResourceGroup_myAKSCluster_eastus/providers/Microsoft.Compute/disks/myAKSDisk volumeAttributes: fsType: ext4Jak je uvedeno v Vytvoření disku Azure, pokud byl disk pro
volumeHandlevytvořen v samostatné skupině prostředků, musíte spravované identitě clusteru AKS udělit roliContributorskupiny prostředků disku.Vytvořte soubor pvc-azuredisk.yaml s PVC, který používá PV pomocí následujícího ukázkového manifestu:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-azuredisk spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi volumeName: pv-azuredisk storageClassName: managed-csiPomocí následujících
kubectl applypříkazů vytvořte PV a PVC:kubectl apply -f pv-azuredisk.yaml kubectl apply -f pvc-azuredisk.yamlPomocí příkazu
kubectl get pvcověřte, že se váš PVC úspěšně vytvořil a vázal na PV.kubectl get pvc pvc-azurediskVýstup by měl vypadat podobně jako v následujícím příkladu výstupu, který ukazuje, že PVC je ve vázaném stavu:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-azuredisk Bound pv-azuredisk 20Gi RWO 5s
Vytvořte pod, který používá PVC s disky Azure
Pomocí následujícího ukázkového manifestu vytvořte soubor azure-disk-pod.yaml , který bude odkazovat na váš PVC. (Pro kontejnery Windows Server zadejte
mountPathpomocí konvence cesty Windows, například '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-azurediskPoužijte konfiguraci a připojte svazek pomocí
kubectl applypříkazu.kubectl apply -f azure-disk-pod.yaml
Vyčistěte zdroje
Pomocí následujících příkazů [
kubectl delete][kubectl-delete] odstraňte prostředky, které jste vytvořili v tomto kurzu.# Remove the pod kubectl delete -f azure-pvc-disk.yaml # Remove the persistent volume claim kubectl delete -f azure-pvc.yaml