Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan hozhat létre dinamikusan és statikusan állandó köteteket (PV-ket) Azure lemezek használatával, amelyeket egyetlen pod használ egy Azure Kubernetes Service (AKS)-fürtben.
Előfeltételek
Azure CLI 2.0.59-es vagy újabb verzió van telepítve és konfigurálva. Keresse meg a verziót a
az --versionparancs használatával. A telepítéssel vagy frissítéssel kapcsolatban lásd: Install Azure CLI.A Azure Lemezek CSI-meghajtó be van kapcsolva az AKS-fürtön.
A Azure lemezek CSI-illesztőprogramjának csomópontonkénti kötetkorlátja van. A kötetszám a csomópont/munkacsoport mérete alapján változik. A
kubectl getparancs segítségével meghatározhatja, hogy csomópontonként hány kötetet lehet hozzárendelni. Például:kubectl get CSINode <node-name> -o yamlHa a csomópontonkénti kötetkorlát problémát jelent a számítási feladathoz, fontolja meg a Azure Tárolótároló használatát az állandó kötetekhez a CSI-illesztőprogramok helyett.
Beépített tárolóosztályok dinamikus PV-khez Azure Diszkekkel
A tárolási osztályok meghatározzák, hogyan jön létre dinamikusan egy tárolóegység egy állandó kötettel.
Minden AKS-fürt négy beépített tárolási osztályt tartalmaz, ezek közül kettő Azure lemezek használatára van konfigurálva:
- A default tárolási osztály standard SSD-Azure lemezt helyez üzembe.
- A standard SSD-k a Standard tárolót adják vissza, és költséghatékony tárolást biztosítanak, miközben továbbra is megbízható teljesítményt nyújtanak.
- A managed-csi-premium tárolási osztály prémium szintű Azure Lemezt helyez üzembe.
- Az SSD-alapú nagy teljesítményű, alacsony késésű lemezek prémium szintű lemezeket ad vissza. Ideálisak éles számítási feladatokat futtató virtuális gépekhez. Ha a Azure Disk CSI-illesztőprogramot használja az AKS-en, használhatja a
managed-csitárolási osztályt is, amelyet a Standard SSD helyileg redundáns tároló (LRS) biztosít.
- Az SSD-alapú nagy teljesítményű, alacsony késésű lemezek prémium szintű lemezeket ad vissza. Ideálisak éles számítási feladatokat futtató virtuális gépekhez. Ha a Azure Disk CSI-illesztőprogramot használja az AKS-en, használhatja a
- A Kubernetes 1.29-es verziójától kezdve érvényes: Ha több rendelkezésre állási zónában helyez üzembe AKS-fürtöket, az AKS mostantól zónaredundáns tárolást (ZRS) használ felügyelt lemezek létrehozásához a beépített tárolási osztályokon belül.
- A ZRS biztosítja a Azure felügyelt lemezek szinkron replikálását a kiválasztott régió több Azure rendelkezésre állási zónájában. Ez a redundanciastratégia javítja az alkalmazások rugalmasságát, és védi az adatokat az adatközpontok meghibásodásai ellen.
- Fontos azonban megjegyezni, hogy a ZRS a helyileg redundáns tároláshoz (LRS) képest magasabb költséggel jár. Ha a költségoptimalizálás prioritás, létrehozhat egy új tárolási osztályt az LRS termékváltozat névparaméterével, és használhatja azt a PVC-ben.
- A ZRS biztosítja a Azure felügyelt lemezek szinkron replikálását a kiválasztott régió több Azure rendelkezésre állási zónájában. Ez a redundanciastratégia javítja az alkalmazások rugalmasságát, és védi az adatokat az adatközpontok meghibásodásai ellen.
A PVC méretének csökkentése az adatvesztés kockázata miatt nem támogatott. A parancs használatával kubectl edit sc szerkesztheti a meglévő tárosztályokat, vagy létrehozhat saját egyéni tárosztályt.
Megjegyzés:
A tartós kötet-igények GiB-ben kerülnek megadásra, de az Azure által felügyelt lemezek egy adott méret alapján termékváltozat alapján kerülnek számlázásra. Ezek az SKU-k az S4 vagy P4 lemezek esetében 32 GiB-tól az S80 vagy P80 lemezek esetében 32 TiB-ig terjednek (előzetes verzióban). A Prémium SSD átviteli sebessége és IOPS-teljesítménye az AKS-fürt csomópontjainak termékváltozatától és példányméretétől is függ. További információ: Felügyelt lemezek díjszabása és teljesítménye.
A parancs használatával kubectl get sc megtekintheti az előre létrehozott tárosztályokat. Az alábbi példa egy AKS-fürtben elérhető előre létrehozott tárolási osztályokat mutatja be:
kubectl get sc
A kimenetnek a következő példakimenethez kell hasonlítania, amely magában foglalja a default és a managed-csi-premium Azure lemezekhez előre létrehozott tárolási osztályokat:
NAME PROVISIONER AGE
default (default) disk.csi.azure.com 1h
managed-csi-premium disk.csi.azure.com 1h
Egyéni tárolóosztályok létrehozása dinamikus perzisztens tárolóvolumenekhez Azure Lemezekkel
Az alapértelmezett tárolási osztályok a legtöbb forgatókönyvhöz megfelelőek. Bizonyos esetekben előfordulhat, hogy saját tárolóosztályt szeretne testreszabni a saját paramétereivel. Előfordulhat például, hogy módosítani szeretné az osztályt volumeBindingMode .
Használhat olyan volumeBindingMode: Immediate osztályt, amely garantálja, hogy a PVC létrehozása után azonnal megtörténik. Ha a csomópontkészletek topológiailag korlátozottak, például amikor rendelkezésre állási zónákat használunk, a tartós tárolók a pod ütemezési követelményeinek ismerete nélkül lesznek hozzárendelve vagy létrehozva.
Ennek a forgatókönyvnek a megoldásához használhatja volumeBindingMode: WaitForFirstConsumer-t, amely késlelteti a PV-kötés és kiépítés megkezdését addig, amíg létre nem jön egy PVC-t használó pod. Így a PV összhangban van és kiépítésre kerül a pod ütemezési kényszerei által megszabott rendelkezésre állási zónában (vagy más topológiában). Az alapértelmezett tárolási osztályok osztályt használnak volumeBindingMode: WaitForFirstConsumer .
Hozzon létre egy fájlt, neve
sc-azuredisk-csi-waitforfirstconsumer.yaml, és illessze be a következő YAML-manifesztumot. A tárolási osztály megegyezik a tárolási osztályunkkalmanaged-csi, de egy másikvolumeBindingModeosztálysal.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: WaitForFirstConsumerHozza létre a tárosztályt a
kubectl applyparanccsal, és adja meg asc-azuredisk-csi-waitforfirstconsumer.yamlfájlt:kubectl apply -f sc-azuredisk-csi-waitforfirstconsumer.yamlA kimenetnek a következő példakimenethez kell hasonlítania:
storageclass.storage.k8s.io/azuredisk-csi-waitforfirstconsumer created
A Azure lemezekkel rendelkező dinamikus PV-k tárolási osztályparaméterei
Az alábbi táblázat olyan paramétereket tartalmaz, amelyekkel egyéni tárolási osztályt határozhat meg a dinamikus állandó kötet jogcímeihez (PVC-k) Azure Lemezek használatával:
| Név | Meaning | Elérhető értékek | Kötelező | Alapértelmezett érték |
|---|---|---|---|---|
skuName |
Azure Lemeztárfiók típusa (alias: storageAccountType).
PremiumV2_LRS és UltraSSD_LRS támogatja az azonnali hozzáférést a növekményes pillanatkép-visszaállításokhoz. |
Standard_LRS, Premium_LRS, StandardSSD_LRS, PremiumV2_LRSUltraSSD_LRS, Premium_ZRSStandardSSD_ZRS |
Nem | StandardSSD_LRS |
fsType |
Fájlrendszer típusa |
ext4, ext3, ext2Linux xfsbtrfs eseténntfs Windows-hez |
Nem |
ext4 Linux esetén ntfs Windows-hez |
cachingMode |
Azure adatlemez-gazdagépgyorsítótár beállítása (A PremiumV2_LRS és az UltraSSD_LRS csak a None gyorsítótárazási módot támogatja) |
\ |
Nem | ReadOnly |
resourceGroup |
Adja meg a Azure lemezek erőforráscsoportját | Meglévő erőforráscsoport neve | Nem | Ha üres, a meghajtó ugyanazt az erőforráscsoport-nevet használja, mint az aktuális AKS-fürt. |
DiskIOPSReadWrite |
Ultralemezes vagy Prémium SSD v2 IOPS-képesség (minimum: 2 IOPS/GiB) | 100~160000 | Nem | 500 |
DiskMBpsReadWrite |
Ultralemez vagy Prémium SSD v2 átviteli sebesség (minimum: 0,032/GiB) | 1~2000 | Nem | 100 |
LogicalSectorSize |
Logikai szektor mérete bájtban az Ultra Disk esetében. |
512, 4096 |
Nem | 4096 |
tags |
Azure Lemez címkék | Címkeformátum: key1=val1,key2=val2 |
Nem | "" |
diskEncryptionSetID |
A lemeztitkosítási készlet erőforrás-azonosítója a nyugalmi állapotban lévő titkosítás engedélyezéséhez | formátum: /subscriptions/{subs-id}/resourceGroups/{rg-name}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSet-name} |
Nem | "" |
diskEncryptionType |
A lemeztitkosítási csoport titkosítási típusa. |
EncryptionAtRestWithCustomerKey (alapértelmezés szerint), EncryptionAtRestWithPlatformAndCustomerKeys |
Nem | EncryptionAtRestWithCustomerKey |
writeAcceleratorEnabled |
Írásgyorsító az Azure-lemezeken |
true, false |
Nem | "" |
networkAccessPolicy |
NetworkAccessPolicy tulajdonságot, hogy megakadályozza a SAS URI létrehozását egy lemezhez vagy egy pillanatképhez. |
\ |
Nem | AllowAll |
diskAccessID |
Azure DiskAccess-erőforrás azonosítójának használata privát végpontokhoz a lemezen | Nem | `` | |
enableBursting |
Engedélyezze az igény szerinti kitörést a lemez kiosztott teljesítménycélján túl. Igény szerinti kipukkadás csak prémium szintű lemezre és 512 GB lemezméret > esetén alkalmazható. Az Ultra és a megosztott lemez nem támogatott. A kipukkadás alapértelmezés szerint le van tiltva. |
true, false |
Nem | false |
userAgent |
Ügyfélhasználat-hozzárendeléshez használt felhasználói ügynök | Nem | Generált felhasználói ügynök formátuma: driverName/driverVersion compiler/version (OS-ARCH) |
|
subscriptionID |
Adja meg Azure előfizetés-azonosítót, ahol a Azure lemezek létrejönnek. Ha nem üres, resourceGroup meg kell adni. |
Azure előfizetés azonosítója | Nem | |
| --- | A következő paraméterek csak a 2. v2-hez tartoznak | --- | --- | --- |
maxShares |
A lemezhez engedélyezett megosztott lemezcsatlakozások teljes száma. Az érték 2 vagy több értékre állítása lehetővé teszi a mellékletreplikák létrehozását. | A támogatott értékek a lemez méretétől függenek. A támogatott értékekről a A Azure felügyelt lemez megosztásáról olvashat. | Nem | 1 |
maxMountReplicaCount |
A karbantartandó replikák mellékleteinek száma. | Ennek az értéknek a tartományban kell lennie [0..(maxShares - 1)] |
Nem | Ha accessModeReadWriteMany, akkor az alapértelmezett 0. Ellenkező esetben az alapértelmezett érték a következő: maxShares - 1 |
Fontos
A tags tárolási osztály paramétere a felügyelt lemezre lesz alkalmazva, amikor a Azure lemez CSI-illesztőprogramja kiépíti a kötetet. Az állandó kötet létrehozása után a PersistentVolume specifikáció nem módosítható, ezért a PV szerkesztése vagy javítása sikertelen a címkék vagy más kötetattribútumok módosításához. A tárolási osztály későbbi frissítése csak az újonnan kiépített köteteket érinti.
Meglévő kötet címkéinek frissítéséhez változtassa meg a címkéket az Azure alapjául szolgáló felügyelt lemezen. Ez a művelet nem szakítja meg a meglévő csatlakoztatásokat, podokat vagy adathozzáférést, és a frissített Azure címkék nem szinkronizálódnak vissza a Kubernetes PV YAML-hez vagy metaadatokhoz. Például:
az disk update \
--name myManagedDisk \
--resource-group MC_myResourceGroup_myAKSCluster_eastus \
--set tags.abc=ABC123
PVC létrehozása Azure lemezekkel
A PVC automatikusan biztosít tárolót egy tárolóosztály alapján. Ebben az esetben a PVC az előre létrehozott tárolóosztályok egyikével hozhat létre standard vagy prémium szintű Azure felügyelt lemezt.
Hozzon létre egy
azure-pvc.yamlnevű fájlt, és illessze be az alábbi manifesztet. A jogcím egyazure-managed-disknevű, 10 GB méretű és ReadWriteOnce hozzáféréssel rendelkező lemezt kér. A felügyelt-csi tárolási osztály tárolóosztályként van megadva.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: azure-managed-disk spec: accessModes: - ReadWriteOnce storageClassName: managed-csi resources: requests: storage: 10GiJótanács
A prémium szintű tárterületet használó lemez létrehozásához használja
storageClassName: managed-csi-premiuma managed-csi helyett.Hozza létre a PVC-t a
kubectl applyparanccsal, és adja meg az azure-pvc.yaml fájlt:kubectl apply -f azure-pvc.yamlA kimenetnek a következő példakimenethez kell hasonlítania:
persistentvolumeclaim/azure-managed-disk createdEllenőrizze, hogy a PV készen áll-e egy pod általi használatra a
kubectl describe pvcparancs segítségével:kubectl describe pvc azure-managed-diskA kimenetnek a következő példakimenetre kell hasonlítania, amely azt mutatja, hogy a PV függőben sztátuszban van:
Name: azure-managed-disk Namespace: default StorageClass: managed-csi Status: Pending [...]
PVC-t használó pod létrehozása Azure Lemezekkel
Hozzon létre egy
azure-pvc-disk.yamlnevű fájlt, és illessze be az alábbi manifesztet. Ez a jegyzék egy alapszintű NGINX-podot hoz létre, amely a azure-managed-disk nevű állandó kötet jogcímet használja a Azure Lemez csatlakoztatásához a/mnt/azureelérési úthoz. (Windows Server tárolók esetében adjon meg egymountPatha Windows elérésiút-konvencióval, például '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-diskHozza létre a podot a
kubectl applyparanccsal.kubectl apply -f azure-pvc-disk.yamlA kimenetnek a következő példakimenethez kell hasonlítania:
pod/mypod createdMost már rendelkezik egy futó poddal, amelyhez az Azure Lemez a
/mnt/azurekönyvtárban van csatlakoztatva. Ellenőrizze a pod konfigurációját akubectl describeparanccsal.kubectl describe pod mypodA kimenetnek a következő példakimenethez kell hasonlítania, amelyben az látható, hogy a kötet a azure-managed-disk nevű PVC-t használja:
[...] 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" [...]
Azure lemezek kötetpillanatkép-osztályának paraméterei
Az Azure Lemezek CSI-illesztőprogramja támogatja az állandó kötetek pillanatképeinek létrehozását. Ennek a képességnek a részeként az illesztőprogram teljes vagy növekményes pillanatképeket is képes végrehajtani a paraméterben incremental beállított értéktől függően.
Az alábbi táblázat részletezi azokat a paramétereket, amelyekkel egyéni kötet-pillanatkép-osztályt határozhat meg az Azure Lemezekkel készített kötet pillanatképeihez.
| Név | Meaning | Elérhető értékek | Kötelező | Alapértelmezett érték |
|---|---|---|---|---|
resourceGroup |
Erőforráscsoport pillanatképek tárolásához | MEGLÉVŐ ERŐFORRÁSCSOPORT | Nem | Ha nincs megadva, a pillanatkép ugyanabban az erőforráscsoportban lesz tárolva, mint a forrás Azure Lemezek |
incremental |
Teljes vagy növekményes pillanatképek készítése |
true, false |
Nem | true |
tags |
Azure Lemezek címkék | Címkeformátum: 'key1=val1;key2=val2' | Nem | "" |
userAgent |
Ügyfélhasználat-hozzárendeléshez használt felhasználói ügynök | Nem | Létrehozott formázott felhasználói ügynök driverName/driverVersion compiler/version (OS-ARCH) |
|
subscriptionID |
Adja meg Azure előfizetés-azonosítót, ahol Azure Lemezek létre lesznek hozva | Azure előfizetés azonosítója | Nem | Ha nem üres, resourceGroup meg kell adni, incremental be kell állítani false |
Mennyiségi pillanatkép létrehozása PVC-ről Azure Lemezek használatával
Megjegyzés:
Mielőtt továbblép, győződjön meg arról, hogy az alkalmazás nem ír adatokat a forráslemezre.
Hozzon létre egy mennyiségi pillanatkép-osztályt a
kubectl applykövetkező paranccsal:kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/snapshot/storageclass-azuredisk-snapshot.yamlA kimenetnek a következő példakimenethez kell hasonlítania:
volumesnapshotclass.snapshot.storage.k8s.io/csi-azuredisk-vsc createdHozzon létre egy mennyiségi pillanatképet az oktatóanyag korábbi részében létrehozott dinamikus PVC-ből a
kubectl applykövetkező paranccsal:kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/snapshot/azuredisk-volume-snapshot.yamlA kimenetnek a következő példakimenethez kell hasonlítania:
volumesnapshot.snapshot.storage.k8s.io/azuredisk-volume-snapshot createdEllenőrizze, hogy a kötet pillanatképe sikeresen létrejött-e a
kubectl describeparancs használatával:kubectl describe volumesnapshot azuredisk-volume-snapshotA kimenetnek a következő példakimenethez kell hasonlítania, amely azt mutatja, hogy a kötet pillanatképe készen áll a használatra:
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>
Új PVC létrehozása mennyiségi pillanatkép alapján Azure Lemezek használatával
Létrehozhat egy új PVC-t egy kötet pillanatképe alapján. Ebben a szakaszban az „Készítsen pillanatképet egy PVC-ről Azure Lemezek használatával” szakaszból származó pillanatképet vesszük, és létrehozunk egy új PVC-t és egy új podot annak felhasználásához.
Hozza létre a PVC-t és a podot a következő
kubectl applyparancsokkal: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.yamlA kimenetnek a következő példakimenethez kell hasonlítania:
persistentvolumeclaim/pvc-azuredisk-snapshot-restored created pod/nginx-restored createdEllenőrizze, hogy ugyanaz a PVC-e, amelyet korábban létrehozott. Ehhez ellenőrizze a kötet tartalmát a
kubectl execparancs használatával alspodon belüli parancs végrehajtásához:kubectl exec nginx-restored -- ls /mnt/azurediskA kimenetnek az alábbi példakimenethez kell hasonlítania, amely ugyanazt a tartalmat jeleníti meg, mint az eredeti PVC, beleértve az
test.txteredeti PVC-ben létrehozott fájlt is:lost+found outfile test.txt
Kötetek klónozása Azure lemezekkel
A klónozott kötet egy meglévő Kubernetes-kötet duplikátumaként van definiálva. A Kubernetesben a kötetek klónozásával kapcsolatos további információkért tekintse meg a kötet klónozásának elméleti dokumentációját.
A Azure lemezek CSI-illesztőprogramja támogatja a kötet klónozását. A bemutatóhoz hozzon létre egy klónozott kötetet az oktatóanyag korábbi részében létrehozott dinamikus PVC-ből, és egy új podot a felhasználáshoz.
Hozza létre a klónozott PVC-t és podot a következő
kubectl applyparancsokkal: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.yamlA kimenetnek a következő példakimenethez kell hasonlítania:
persistentvolumeclaim/pvc-azuredisk-cloning created pod/nginx-restored-cloning createdEllenőrizze, hogy a klónozott kötet tartalma megegyezik-e az eredeti kötet tartalmával. Ehhez ellenőrizze a kötet tartalmát a
kubectl execparancs használatával alspodon belüli parancs végrehajtásához:kubectl exec nginx-restored-cloning -- ls /mnt/azurediskA kimenetnek az alábbi példakimenethez kell hasonlítania, amely ugyanazt a tartalmat jeleníti meg, mint az eredeti PVC, beleértve az
test.txteredeti PVC-ben létrehozott fájlt is:lost+found outfile test.txt
Állandó kötet átméretezése állásidő nélkül Azure lemezek használatával
Megjegyzés:
Az állandó kötetek zsugorítása jelenleg nem támogatott. Ha egy meglévő, az aktuálisnál kisebb méretű PVC-t próbál kijavítani, az a következő hibaüzenethez vezet:
The persistentVolumeClaim "pvc-azuredisk" is invalid: spec.resources.requests.storage: Forbidden: field can not be less than previous value.
A PVC objektumának szerkesztésével nagyobb méretű kötetet kérhet a PVC-hez. Ez a módosítás elindítja a PV-t (állandó kötetet) támogató mögöttes kötet kiterjesztését. A rendszer soha nem hoz létre új PV-t a jogcím kielégítése érdekében. Ehelyett a rendszer átméretez egy meglévő kötetet.
Az AKS-ben a managed-csi beépített tárolási osztály már támogatja a bővítést, így használhatja az előzőleg létrehozott dinamikus PVC-t. A PVC 10 Gi állandó kötetet kért.
Ellenőrizze a kötet aktuális méretét a
kubectl execparancs használatával adf -hpodon belüli parancs végrehajtásához:kubectl exec -it nginx-azuredisk -- df -h /mnt/azurediskA kimenetnek a következő példakimenethez kell hasonlítania, amely azt mutatja, hogy a kötet jelenlegi mérete 10 Gi:
Filesystem Size Used Avail Use% Mounted on /dev/sdc 9.8G 42M 9.8G 1% /mnt/azurediskBővítse a PVC-t a
spec.resources.requests.storagemező növelésével akubectl patchparancs használatával. Ebben a példában a PVC méretét 15 Gi-ra növeljük:kubectl patch pvc pvc-azuredisk --type merge --patch '{"spec": {"resources": {"requests": {"storage": "15Gi"}}}}'A kimenetnek a következő példakimenethez kell hasonlítania:
persistentvolumeclaim/pvc-azuredisk patchedEllenőrizze a PV-t, hogy az új méret megjelenjen-e a PV-ben a
kubectl get pvkövetkező paranccsal:kubectl get pvA kimenetnek a következő példakimenethez kell hasonlítania, amely azt mutatja, hogy a PV 15 Gi-ra lett átméretezve:
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 (...)Néhány perc múlva ellenőrizze a PVC-t, hogy az új méret megjelenjen-e a PVC-ben a
kubectl get pvckövetkező paranccsal:kubectl get pvc pvc-azurediskA kimenetnek a következő példakimenethez kell hasonlítania, amely azt mutatja, hogy a PVC 15 Gi-ra lett átméretezve:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-azuredisk Bound pvc-a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 15Gi RWO managed-csi 2d2hEllenőrizze, hogy a podban lévő lemez mérete az új méretre lett-e frissítve a
kubectl execparancs használatával adf -hpodon belüli parancs végrehajtásához:kubectl exec -it nginx-azuredisk -- df -h /mnt/azurediskA kimenetnek a következő példakimenethez kell hasonlítania, amely azt mutatja, hogy a kötet mérete 15 Gi-ra frissült:
Filesystem Size Used Avail Use% Mounted on /dev/sdc 15G 46M 15G 1% /mnt/azuredisk
Igény szerinti kipukkadás prémium SSD-khez Azure lemezekkel
Az igény szerinti lemezkitörési modell lehetővé teszi a lemezkitöréseket, amikor az igényei túllépik a jelenlegi kapacitását. Ez a modell többletköltségeket generál, amikor a lemez felfut. Igény szerinti kipukkadás csak 512 GiB-nél nagyobb prémium SSD-k esetén érhető el. A prémium SSD-k kiépített IOPS-jával és lemezenkénti átviteli sebességével kapcsolatos további információkért lásd: Premium SSD-méret. Másik lehetőségként a kreditalapú kitörés esetén a lemez csak akkor tör ki, ha a kreditvödörben felhalmozott kitörési kreditek vannak. A hitelalapú kipukkadás nem jár többletköltségekkel, ha a lemez kipukkan. A kredit-alapú teljesítménynövelés csak a 512 GiB-nél kisebb prémium SSD-k, valamint a 1024 GiB-nél kisebb standard SSD-k esetében érhető el. További információ az igény szerinti kibővítésről: Igény szerinti kibővítés.
Fontos
Az alapértelmezett managed-csi-premium tárolási osztálynál az igény szerinti kitörés le van tiltva, és hitelalapú kitörést használ. Az alapértelmezett managed-csi-premium tárolási osztályon alapuló állandó mennyiségi jogcímek által dinamikusan létrehozott Prémium SSD-k igény szerinti kitörése is le van tiltva.
Ha prémium szintű SSD-állandó kötetet szeretne létrehozni, amelyhez engedélyezve van az igény szerinti bővítési lehetőség, létrehozhat egy új tárolási osztályt az enableBursting paraméter true beállításával, ahogy az az alábbi YAML-sablonban látható. További információt a dinamikus skálázás engedélyezéséről az Igény szerinti dinamikus skálázás című részben talál. További információ a saját tárosztály igény szerinti kipukkadással történő kiépítéséről: Repeszthető felügyelt CSI-Premium Storage osztály létrehozása.
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
Azure lemezek használata Windows tárolókkal
A Azure lemez CSI-illesztőprogramja támogatja Windows csomópontokat és tárolókat. Ha Windows tárolókat szeretne használni, kövesse a Windows tárolók rövid útmutatót egy Windows csomópontkészlet hozzáadásához. Miután rendelkezik egy Windows csomópontkészletével, használhatja a beépített tárolási osztályokat, például managed-csi.
Helyezzen üzembe egy példa Windows-alapú állapotalapú készletet amely időbélyegeket ment a fájlba
data.txta következőkubectl applyparanccsal:kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/windows/statefulset.yamlA kimenetnek a következő példakimenethez kell hasonlítania:
statefulset.apps/busybox-azuredisk createdEllenőrizze a pod fájljának
data.txttartalmát akubectl execparancs használatával atypepodon belüli parancs végrehajtásához:kubectl exec -it statefulset-azuredisk-win-0 -- powershell -c "type c:/mnt/azuredisk/data.txt"A kimenetnek a következő példakimenethez kell hasonlítania, amely a fájlba
data.txtmentett időbélyegeket jeleníti meg:2020-08-27 08:13:41Z 2020-08-27 08:13:42Z 2020-08-27 08:13:44Z (...)
Statikus PV létrehozása Azure lemezekkel
A következő szakaszok útmutatást nyújtanak egy statikus PV létrehozásához Azure Lemezek használatával. A statikus PV egy állandó kötet, amelyet a rendszergazda manuálisan hoz létre. Ez a PV a fürt podjai számára érhető el. Statikus PV használatához hozzon létre egy PVC-t, amely a PV-re hivatkozik, majd hozzon létre egy podot, amely a PVC-re hivatkozik.
A Azure lemezekkel rendelkező statikus PV-k tárolási osztályparaméterei
Az alábbi táblázat olyan paramétereket tartalmaz, amelyekkel egyéni tárolási osztályt határozhat meg a statikus PVC-k számára Azure Lemezek használatával:
| Név | Meaning | Elérhető értékek | Kötelező | Alapértelmezett érték |
|---|---|---|---|---|
volumeHandle |
Azure lemez URI-ja | /subscriptions/{sub-id}/resourceGroups/{group-name}/providers/microsoft.compute/disks/{disk-id} |
Igen | N/A |
volumeAttributes.fsType |
Fájlrendszer típusa |
ext4, ext3, ext2Linux xfsbtrfs eseténntfs Windows-hez |
Nem |
ext4 Linux esetén ntfs Windows-hez |
volumeAttributes.partition |
A meglévő lemez partíciószáma (csak Linuxon támogatott) | \ |
Nem | Üres (nincs partíció) Győződjön meg arról, hogy a partíció formátuma a következő: -part1 |
volumeAttributes.cachingMode |
Lemezgazdagyorsítótár-beállítás | \ |
Nem | ReadOnly |
Azure lemez létrehozása
Amikor Azure lemezt hoz létre az AKS-hez való használatra, létrehozhatja a lemezerőforrást a csomópont erőforráscsoportjában. Ez a módszer lehetővé teszi az AKS-fürt számára a lemezerőforrás elérését és kezelését. Ha ehelyett egy külön erőforráscsoportban hozza létre a lemezt, a fürt AKS által felügyelt identitásának meg kell adnia a Contributor szerepkört a lemez erőforráscsoportjának.
Azonosítsa a csomópont erőforráscsoportjának nevét a
az aks showparaméterrel rendelkező--query nodeResourceGroupparanccsal.az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsvA kimenetnek az alábbi példakimenethez kell hasonlítania, amely az AKS-fürt csomópont-erőforráscsoportjának nevét jeleníti meg:
MC_myResourceGroup_myAKSCluster_eastusHozzon létre egy lemezt a
az disk createparanccsal. Adja meg a csomópont erőforráscsoportjának nevét és a lemezerőforrás nevét, például a myAKSDisk nevet. Az alábbi példa egy 20 GiB-lemezt hoz létre, és a létrehozás után adja ki a lemez azonosítóját. Ha lemezt kell létrehoznia Windows Server tárolókhoz, adja hozzá a--os-type windowsparamétert a lemez megfelelő formázásához.az disk create \ --resource-group MC_myResourceGroup_myAKSCluster_eastus \ --name myAKSDisk \ --size-gb 20 \ --query id --output tsvMegjegyzés:
Az Azure lemezeket az adott mérethez tartozó SKU alapján számlázzák ki. Ezek az SKU-k az S4 vagy P4 lemezek esetében 32 GiB-tól az S80 vagy P80 lemezek esetében 32 TiB-ig terjednek (előzetes verzióban). A prémium szintű felügyelt lemezek átviteli sebessége és IOPS-teljesítménye az AKS-fürt csomópontjainak termékváltozatától és példányméretétől is függ. Lásd: A kezelt lemezek árképzése és teljesítménye.
A kimenetnek a következő példakimenethez kell hasonlítania, amely a létrehozott lemez erőforrás-azonosítóját jeleníti meg:
/subscriptions/<subscriptionID>/resourceGroups/MC_myResourceGroup_myAKSCluster_eastus/providers/Microsoft.Compute/disks/myAKSDisk
Az Azure lemezre hivatkozó PV és PVC létrehozása
Hozzon létre egy pv-azuredisk.yaml fájlt egy PV-vel az alábbi példajegyzék használatával. Frissítse a
volumeHandleelemet az előző lépés lemezerőforrás-azonosítójával. Windows Server tárolók esetében adja meg a ntfs paramétert afsTypeparaméterhez.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: ext4Az Azure lemez létrehozása című részben említettük, hogy ha a
volumeHandlelemezt külön erőforráscsoportban hozták létre, akkor az AKS-fürt menedzselt identitásának meg kell adni aContributorszerepkört a lemez erőforráscsoportjához.Hozzon létre egy pvc-azuredisk.yaml fájlt, amely PVC a PV-t használja a következő példajegyzékkel:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-azuredisk spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi volumeName: pv-azuredisk storageClassName: managed-csiHozza létre a PV-t és a PVC-t a következő
kubectl applyparancsokkal:kubectl apply -f pv-azuredisk.yaml kubectl apply -f pvc-azuredisk.yamlEllenőrizze, hogy a PVC sikeresen létrejött-e, és a PV-hez van-e kötve a
kubectl get pvckövetkező paranccsal:kubectl get pvc pvc-azurediskA kimenetnek a következő példakimenethez kell hasonlítania, amely azt mutatja, hogy a PVC kötött állapotban van:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-azuredisk Bound pv-azuredisk 20Gi RWO 5s
Hozzon létre egy podot, amely a PVC-t használja, Azure-lemezeket használva
Hozzon létre egy azure-disk-pod.yaml fájlt a PVC-re való hivatkozáshoz az alábbi példajegyzék használatával. (Windows Server tárolók esetében adjon meg egy
mountPatha Windows elérésiút-konvencióval, például '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-azurediskAlkalmazza a konfigurációt, és csatlakoztassa a kötetet a
kubectl applyparancs használatával.kubectl apply -f azure-disk-pod.yaml
Erőforrások tisztítása
Távolítsa el az oktatóanyagban létrehozott erőforrásokat a következő [
kubectl delete][kubectl-delete] parancsokkal:# Remove the pod kubectl delete -f azure-pvc-disk.yaml # Remove the persistent volume claim kubectl delete -f azure-pvc.yaml