Kötet létrehozása és használata az Azure Lemezekkel az Azure Kubernetes szolgáltatásban (AKS)
Az állandó kötet a Kubernetes-podokkal való használatra kiépített tárterületet jelöli. Egy állandó kötetet egy vagy több pod használatával használhat, és dinamikusan vagy statikusan is kiépítheti. Ez a cikk bemutatja, hogyan hozhat létre dinamikusan állandó köteteket az Azure Disks használatával egy Azure Kubernetes Service-fürtben.
Feljegyzés
Az Azure-lemezek csak ReadWriteOnce hozzáférési móddal csatlakoztathatók, ami az AKS egy csomópontja számára teszi elérhetővé. Ez a hozzáférési mód továbbra is lehetővé teszi, hogy több pod is hozzáférjen a kötethez, amikor a podok ugyanazon a csomóponton futnak. További információ: Kubernetes PersistentVolume hozzáférési módok.
Ez a cikk bemutatja, hogyan:
- Dinamikus állandó kötet (PV) használata a Container Storage Interface (CSI) illesztőprogram telepítésével és egy vagy több Felügyelt Azure-lemez dinamikus létrehozásával a podhoz való csatoláshoz.
- Statikus PV-vel dolgozhat egy vagy több Felügyelt Azure-lemez létrehozásával, vagy meglévő használatával, és csatolhatja azt egy podhoz.
A Kubernetes-kötetekkel kapcsolatos további információkért tekintse meg az AKS-alkalmazások tárolási lehetőségeit.
Mielőtt elkezdené
Győződjön meg arról, hogy telepítve és konfigurálva van az Azure CLI 2.0.59-es vagy újabb verziója. A verzió azonosításához futtassa a következőt:
az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.Az Azure Disk CSI-illesztőprogram csomópontonkénti kötetkorlátot ad meg. A kötetszám a csomópont/csomópontkészlet mérete alapján változik. Futtassa a kubectl get parancsot a csomópontonként lefoglalható kötetek számának meghatározásához:
kubectl get CSINode <nodename> -o yaml
Ha a csomópontonkénti kötetkorlát problémát jelent a számítási feladathoz, fontolja meg az Azure Container Storage használatát állandó kötetekhez a CSI-illesztőprogramok helyett.
Kötet dinamikus kiépítése
Ez a szakasz útmutatást nyújt a fürt rendszergazdáinak, akik egy vagy több állandó kötetet szeretnének kiépíteni, amelyek tartalmazzák az Azure Disk Storage részleteit a számítási feladat számára. Az állandó kötetkövetelés (PVC) a tárolási osztály objektumával dinamikusan kiépíteni egy Azure Disk Storage-tárolót.
Tárolási osztály paraméterei dinamikus állandó kötetekhez
Az alábbi táblázat olyan paramétereket tartalmaz, amelyekkel egyéni tárosztályt definiálhat a PersistentVolumeClaim-hez.
Név | Értelmezés | Elérhető érték | Kötelező | Alapértelmezett érték |
---|---|---|---|---|
skuName | Azure Disks Storage-fiók típusa (alias: storageAccountType ) |
Standard_LRS , Premium_LRS , StandardSSD_LRS , PremiumV2_LRS UltraSSD_LRS , Premium_ZRS StandardSSD_ZRS |
Nem | StandardSSD_LRS |
fsType | Fájlrendszer típusa | ext4 , ext3 , ext2 , xfs btrfs Linuxhoz, ntfs Windowshoz |
Nem | ext4 Linuxhoz, ntfs Windowshoz |
cachingMode | Azure Data Disk Host Cache-beállítás (PremiumV2_LRS és UltraSSD_LRS csak a gyorsítótárazási módot támogatja None ) |
None , , ReadOnly ReadWrite |
Nem | ReadOnly |
resourceGroup | Az Azure Disks erőforráscsoportjának megadása | Meglévő erőforráscsoport neve | Nem | Ha üres, az illesztőprogram ugyanazt az erőforráscsoportnevet használja, mint az aktuális AKS-fürt |
DiskIOPSReadWrite | UltraSSD lemez vagy Prémium SSD v2 IOPS-képesség (minimum: 2 IOPS/GiB) | 100~160000 | Nem | 500 |
DiskMBpsReadWrite | UltraSSD lemez vagy Prémium SSD v2 átviteli sebesség (minimum: 0,032/GiB) | 1~2000 | Nem | 100 |
LogicalSectorSize | Logikai szektor mérete bájtban ultralemez esetén. A támogatott értékek: 512 ad 4096. Az alapértelmezett érték a 4096. | 512 , 4096 |
Nem | 4096 |
címkét | Azure Disk-címkék | Címkeformátum: key1=val1,key2=val2 |
Nem | "" |
diskEncryptionSetID | A lemeztitkosítási csoport ResourceId azonosítója, amely a inaktív titkosítás engedélyezéséhez használható | 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 | "" |
writeAcceleratorEnabled | Gyorsító írása Azure-lemezeken | true , false |
Nem | "" |
networkAccessPolicy | NetworkAccessPolicy tulajdonság a SAS URI lemezhez vagy pillanatképhez való létrehozásának megakadályozásához | AllowAll , , DenyAll AllowPrivate |
Nem | AllowAll |
diskAccessID | A DiskAccess-erőforrás Azure-erőforrás-azonosítója magánvégpontok lemezen való használatához | Nem | `` | |
enableBursting | Engedélyezze az igény szerinti kipukkadá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 useragent formázva driverName/driverVersion compiler/version (OS-ARCH) |
|
subscriptionID | Adja meg az Azure-előfizetés azonosítóját, ahol az Azure Disks létrejön. | Azure-előfizetés azonosítója | Nem | Ha nem üres, resourceGroup meg kell adni. |
--- | 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ékekért tekintse meg az Azure-beli felügyelt lemez megosztása című témakört. | Nem | 0 |
maxMountReplicaCount | A karbantartandó replikák mellékleteinek száma. | Ennek az értéknek a tartományban kell lennie [0..(maxShares - 1)] |
Nem | Ha accessMode igenReadWriteMany , akkor az alapértelmezett érték.0 Ellenkező esetben az alapértelmezett érték a következő: maxShares - 1 |
Beépített tárolási osztályok
A tárolási osztályok meghatározzák, hogyan jön létre dinamikusan egy tárolóegység egy állandó kötettel. A Kubernetes storage osztályokkal kapcsolatos további információkért lásd a Kubernetes storage osztályokat.
Minden AKS-fürt négy előre létrehozott tárosztályt tartalmaz, ezek közül kettő az Azure Disks használatára van konfigurálva:
- Az alapértelmezett tárolási osztály egy standard SSD Azure Disk-lemezt helyez üzembe.
- A Standard SSD-k a Standard tárolót háttérbe állítva 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 storage osztály egy prémium Szintű Azure Disket 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 az Azure Disk CSI-illesztőprogramot használja az AKS-en, használhatja a
managed-csi
tárolási osztályt is, amelyet a Standard SSD helyileg redundáns tárolás (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 az Azure Disk CSI-illesztőprogramot használja az AKS-en, használhatja a
- A Kubernetes 1.29-es verziójától kezdve az Azure Kubernetes Service-fürtök több rendelkezésre állási zónában való üzembe helyezésekor az AKS mostantól zónaredundáns tárolást (ZRS) használ a felügyelt lemezek beépített tárolási osztályokon belüli létrehozásához.
- A ZRS biztosítja az Azure-beli felügyelt lemezek szinkron replikálását a kiválasztott régióban található több Azure rendelkezésre állási zóná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 zónaredundáns tárolás (ZRS) magasabb költséggel jár, mint a helyileg redundáns tárolás (LRS). 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 az állandó mennyiségi jogcímben.
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. Ha például egy 4 TiB méretű lemezt szeretne használni, létre kell hoznia egy tárosztályt, amely meghatározza cachingmode: None
, hogy a lemez gyorsítótárazása nem támogatott a 4 TiB-os és annál nagyobb lemezek esetében. A tárolási osztályokról és a saját tárosztály létrehozásáról további információt az AKS-alkalmazások tárolási lehetőségei című témakörben talál.
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 parancs kimenete a következő példához hasonlít:
NAME PROVISIONER AGE
default (default) disk.csi.azure.com 1h
managed-csi disk.csi.azure.com 1h
Feljegyzés
Az állandó kötetjogcímek a GiB-ben vannak megadva, de az Azure által felügyelt lemezeket egy adott mérethez tartozó termékváltozat számlázja ki. Ezek az SKU-k az S4- vagy P4-lemezek esetében 32GiB-től az S80- vagy P80-lemezeken 32TiB-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. További információ: Felügyelt lemezek díjszabása és teljesítménye.
Állandó mennyiségi jogcím létrehozása
Az állandó kötetre vonatkozó jogcímek automatikusan kiépítik a tárolót egy tárolási osztály alapján. Ebben az esetben a PVC az egyik előre létrehozott tárolási osztályt használhatja egy standard vagy prémium szintű Felügyelt Azure-lemez létrehozásához.
Hozzon létre egy fájlt,
azure-pvc.yaml
és másolja a következő jegyzékbe. A jogcím egy 5 GB méretű, ReadWriteOnce-hozzáféréssel rendelkező lemeztazure-managed-disk
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: 5Gi
Tipp.
A prémium szintű tárterületet használó lemez létrehozásához használja storageClassName: managed-csi-premium
a managed-csi helyett.
Hozza létre az állandó mennyiségi jogcímet a
kubectl apply
paranccsal, és adja meg az azure-pvc.yaml fájlt.kubectl apply -f azure-pvc.yaml
A parancs kimenete a következő példához hasonlít:
persistentvolumeclaim/azure-managed-disk created
Az állandó kötet használata
Az állandó kötet jogcímének létrehozása után ellenőriznie kell, hogy a jogcím állapota Pending
a következő. Az Pending
állapot azt jelzi, hogy készen áll a podok általi használatra.
Ellenőrizze a PVC állapotát a
kubectl describe pvc
paranccsal.kubectl describe pvc azure-managed-disk
A parancs kimenete a következő sűrített példához hasonlít:
Name: azure-managed-disk Namespace: default StorageClass: managed-csi Status: Pending [...]
Hozzon létre egy fájlt,
azure-pvc-disk.yaml
és másolja a következő jegyzékbe. Ez a jegyzék egy alapszintű NGINX-podot hoz létre, amely az azure-managed-disk nevű állandó mennyiségi jogcímet használja az Azure Disk csatlakoztatásához az elérési úthoz/mnt/azure
. Windows Server-tárolók esetén adjon meg egy mountPath-t a Windows elérési útjának konvenciója alapján, például a "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-disk
Hozza létre a podot a
kubectl apply
paranccsal.kubectl apply -f azure-pvc-disk.yaml
A parancs kimenete a következő példához hasonlít:
pod/mypod created
Most már rendelkezik egy futó podgal, amelyen az Azure Disk csatlakoztatva van a
/mnt/azure
könyvtárhoz. Ellenőrizze a pod konfigurációját akubectl describe
paranccsal.kubectl describe pod mypod
A parancs kimenete a következő példához hasonlít:
[...] 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-79590246-0 Normal SuccessfulMountVolume 2m kubelet, aks-nodepool1-79590246-0 MountVolume.SetUp succeeded for volume "default-token-smm2n" Normal SuccessfulMountVolume 1m kubelet, aks-nodepool1-79590246-0 MountVolume.SetUp succeeded for volume "pvc-faf0f176-8b8d-11e8-923b-deb28c58d242" [...]
Használjon Azure-ultralemezeket
Az Azure Ultra Disk használatához lásd : Ultralemezek használata az Azure Kubernetes Service-ben (AKS).
Azure-címkék használata
További információ az Azure-címkék használatáról: Azure-címkék használata az Azure Kubernetes Service-ben (AKS).
Kötet statikus kiépítése
Ez a szakasz útmutatást nyújt azoknak a fürtgazdáknak, akik egy vagy több állandó kötetet szeretnének létrehozni, amelyek tartalmazzák a számítási feladat által használt Azure Disks részleteit.
Statikus kiépítési paraméterek állandó kötethez
Az alábbi táblázat olyan paramétereket tartalmaz, amelyekkel állandó kötetet definiálhat.
Név | Értelmezés | Elérhető érték | 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 , ext2 , xfs btrfs Linuxhoz, ntfs Windowshoz |
Nem | ext4 Linuxhoz, ntfs Windowshoz |
volumeAttributes.partition | A meglévő lemez partíciószáma (csak Linuxon támogatott) | 1 , , 2 3 |
Nem | Üres (nincs partíció) – Győződjön meg arról, hogy a partíció formátuma hasonló -part1 |
volumeAttributes.cachingMode | Lemezgazdagyorsítótár-beállítás | None , , ReadOnly ReadWrite |
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, az Azure Kubernetes Service (AKS) által felügyelt identitást kell megadnia a fürt számára a Contributor
lemez erőforráscsoportjának.
Azonosítsa az erőforráscsoport nevét a
az aks show
paranccsal, és adja hozzá a paramétert--query nodeResourceGroup
.az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv
A parancs kimenete a következő példához hasonlít:
MC_myResourceGroup_myAKSCluster_eastus
Hozzon létre egy lemezt a
az disk create
paranccsal. 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 20GiB-lemezt hoz létre, és a létrehozás után adja ki a lemez azonosítóját. Ha Windows Server-tárolókhoz szükséges lemezt kell létrehoznia, adja hozzá a paramétert a--os-type windows
lemez megfelelő formázásához.az disk create \ --resource-group MC_myResourceGroup_myAKSCluster_eastus \ --name myAKSDisk \ --size-gb 20 \ --query id --output tsv
Feljegyzés
Az Azure Disks-t egy adott mérethez tartozó termékváltozat számlázja ki. Ezek az SKU-k az S4- vagy P4-lemezek esetében 32GiB-től az S80- vagy P80-lemezeken 32TiB-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 felügyelt lemezek díjszabását és teljesítményét.
A lemez erőforrás-azonosítója a parancs sikeres befejezése után jelenik meg, ahogyan az alábbi példakimenetben is látható. A lemez azonosítójával csatlakoztathatja a lemezt a következő szakaszban.
/subscriptions/<subscriptionID>/resourceGroups/MC_myAKSCluster_myAKSCluster_eastus/providers/Microsoft.Compute/disks/myAKSDisk
Lemez csatlakoztatása kötetként
Hozzon létre egy pv-azuredisk.yaml fájlt egy PersistentVolume használatával. Frissítsen
volumeHandle
az előző lépés lemezerőforrás-azonosítójával. Windows Server-tárolók esetén adja meg az ntfs értéket az fsType paramé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_myAKSCluster_myAKSCluster_eastus/providers/Microsoft.Compute/disks/myAKSDisk volumeAttributes: fsType: ext4
Hozzon létre egy pvc-azuredisk.yaml fájlt egy PersistentVolumeClaim fájllal, amely a PersistentVolume-t használja.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-azuredisk spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi volumeName: pv-azuredisk storageClassName: managed-csi
Hozza létre a PersistentVolume és a PersistentVolumeClaim fájlt a
kubectl apply
paranccsal, és hivatkozzon a létrehozott két YAML-fájlra.kubectl apply -f pv-azuredisk.yaml kubectl apply -f pvc-azuredisk.yaml
Ellenőrizze, hogy létrejön-e a PersistentVolumeClaim, és a parancs használatával
kubectl get pvc
a PersistentVolume-hoz van-e kötve.kubectl get pvc pvc-azuredisk
A parancs kimenete a következő példához hasonlít:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-azuredisk Bound pv-azuredisk 20Gi RWO 5s
Hozzon létre egy azure-disk-pod.yaml fájlt a PersistentVolumeClaim hivatkozásához. Windows Server-tárolók esetén adjon meg egy mountPath-t a Windows elérési útjának konvenciója alapján, például a "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-azuredisk
Alkalmazza a konfigurációt, és csatlakoztassa a kötetet a
kubectl apply
parancs használatával.kubectl apply -f azure-disk-pod.yaml
Az erőforrások eltávolítása
Ha végzett a cikkben létrehozott erőforrásokkal, a parancs használatával kubectl delete
eltávolíthatja őket.
# Remove the pod
kubectl delete -f azure-pvc-disk.yaml
# Remove the persistent volume claim
kubectl delete -f azure-pvc.yaml
Következő lépések
- Ha tudni szeretné, hogyan használhatja a CSI-illesztőprogramot az Azure Disks Storage-hoz, olvassa el az Azure Disks Storage használata a CSI-illesztőprogrammal című témakört.
- A kapcsolódó ajánlott eljárásokért tekintse meg az ajánlott tárolási és biztonsági mentési eljárásokat az AKS-ben.
Azure Kubernetes Service