Použití disků SSD úrovně Azure Premium v2 ve službě Azure Kubernetes Service
Disky SSD úrovně Azure Premium v2 nabízejí náročné vstupně-výstupní úlohy v podniku, konzistentní latenci disků v milisekundách a vysokou IOPS a propustnost. Výkon (kapacita, propustnost a IOPS) disků SSD úrovně Premium v2 se dá kdykoli nezávisle nakonfigurovat, což usnadňuje nákladově efektivní situaci, když splňuje požadavky na výkon.
Tento článek popisuje, jak nakonfigurovat nový nebo existující cluster AKS tak, aby používal disky SSD úrovně Azure Premium v2.
Než začnete
Před vytvořením nebo upgradem clusteru AKS, který dokáže používat disky SSD úrovně Azure Premium v2, je potřeba vytvořit cluster AKS ve stejné oblasti a zóně dostupnosti, která podporuje Službu Premium Storage, a připojit disky podle následujících kroků.
U existujícího clusteru AKS můžete povolit disky SSD úrovně Premium v2 tak, že do clusteru přidáte nový fond uzlů a pak připojíte disky podle následujících kroků.
Důležité
Disky SSD úrovně Azure Premium v2 vyžadují fondy uzlů nasazené v oblastech, které tyto disky podporují. Seznam podporovaných oblastí najdete v tématu Podporované oblasti disků SSD úrovně Premium v2.
Omezení
- Disky SSD úrovně Azure Premium v2 mají určitá omezení, o kterých potřebujete vědět. Úplný seznam najdete v tématu Omezení ssd úrovně Premium v2.
Dynamické použití disků SSD úrovně Premium s třídou úložiště
Pokud chcete použít disky SSD úrovně Premium v2 v nasazení nebo stavové sadě, můžete k dynamickému zřizování použít třídu úložiště.
Vytvoření třídy úložiště
Třída úložiště slouží k definování dynamického vytvoření jednotky úložiště s trvalým svazkem. Další informace o třídách úložiště Kubernetes najdete v tématu Třídy úložiště Kubernetes.
V tomto příkladu vytvoříte třídu úložiště, která odkazuje na disky SSD úrovně Premium v2. Vytvořte soubor s názvem azure-pv2-disk-sc.yaml
a zkopírujte ho v následujícím manifestu.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: premium2-disk-sc
parameters:
cachingMode: None
skuName: PremiumV2_LRS
DiskIOPSReadWrite: "4000"
DiskMBpsReadWrite: "1000"
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
Vytvořte třídu úložiště pomocí příkazu kubectl apply a zadejte soubor azure-pv2-disk-sc.yaml :
kubectl apply -f azure-pv2-disk-sc.yaml
Výstup příkazu vypadá podobně jako v následujícím příkladu:
storageclass.storage.k8s.io/premium2-disk-sc created
Vytvoření deklarace trvalého svazku
Deklarace trvalého svazku (PVC) se používá k automatickému zřizování úložiště na základě třídy úložiště. V tomto případě může PVC použít dříve vytvořenou třídu úložiště k vytvoření disku úrovně Ultra.
Vytvořte soubor s názvem azure-pv2-disk-pvc.yaml
a zkopírujte ho v následujícím manifestu. Deklarace identity požaduje disk s názvem premium2-disk
o velikosti 1000 GB s přístupem ReadWriteOnce . Třída úložiště premium2-disk-sc je určena jako třída úložiště.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: premium2-disk
spec:
accessModes:
- ReadWriteOnce
storageClassName: premium2-disk-sc
resources:
requests:
storage: 1000Gi
Vytvořte trvalou deklaraci identity svazku pomocí příkazu kubectl apply a zadejte soubor azure-pv2-disk-pvc.yaml :
kubectl apply -f azure-pv2-disk-pvc.yaml
Výstup příkazu vypadá podobně jako v následujícím příkladu:
persistentvolumeclaim/premium2-disk created
Použití trvalého svazku
Po vytvoření deklarace trvalého svazku a úspěšném zřízení disku je možné vytvořit pod s přístupem k disku. Následující manifest vytvoří základní pod NGINX, který používá deklaraci trvalého svazku s názvem premium2-disk k připojení disku Azure k cestě /mnt/azure
.
Vytvořte soubor s názvem nginx-premium2.yaml
a zkopírujte ho v následujícím manifestu.
kind: Pod
apiVersion: v1
metadata:
name: nginx-premium2
spec:
containers:
- name: nginx-premium2
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
volumes:
- name: volume
persistentVolumeClaim:
claimName: premium2-disk
Vytvořte pod pomocí příkazu kubectl apply , jak je znázorněno v následujícím příkladu:
kubectl apply -f nginx-premium2.yaml
Výstup příkazu vypadá podobně jako v následujícím příkladu:
pod/nginx-premium2 created
Teď máte spuštěný pod s připojeným diskem Azure v /mnt/azure
adresáři. Tuto konfiguraci můžete vidět při kontrole podu prostřednictvím kubectl describe pod nginx-premium2
, jak je znázorněno v následujícím zhuštěném příkladu:
kubectl describe pod nginx-premium2
[...]
Volumes:
volume:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: premium2-disk
ReadOnly: false
kube-api-access-sh59b:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: Burstable
Node-Selectors: <none>
Tolerations: node.kubernetes.io/memory-pressure:NoSchedule op=Exists
node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 7m58s default-scheduler Successfully assigned default/nginx-premium2 to aks-agentpool-12254644-vmss000006
Normal SuccessfulAttachVolume 7m46s attachdetach-controller AttachVolume.Attach succeeded for volume "pvc-ff39fb64-1189-4c52-9a24-e065b855b886"
Normal Pulling 7m39s kubelet Pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine"
Normal Pulled 7m38s kubelet Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine" in 1.192915667s
Normal Created 7m38s kubelet Created container nginx-premium2
Normal Started 7m38s kubelet Started container nginx-premium2
[...]
Nastavení limitů IOPS a propustnosti
Vstupně-výstupní operace za sekundu (IOPS) a omezení propustnosti disku SSD úrovně Azure Premium v2 se v současné době prostřednictvím AKS nepodporují. K úpravě výkonu můžete použít příkaz Azure CLI az disk update a včetně --disk-iops-read-write
parametrů.--disk-mbps-read-write
Následující příklad aktualizuje vstupně-výstupní operace čtení a zápis disku na 5 000 a Mb/s na 200. Hodnota --resource-group
musí být druhou skupinou prostředků, která se automaticky vytvoří, aby se pracovní uzly AKS ukládaly s MC_resourcegroupname_clustername_location konvence vytváření názvů. Další informace najdete v tématu Proč jsou dvě skupiny prostředků vytvořené pomocí AKS?.
Hodnota parametru --name
je název svazku vytvořeného pomocí třídy StorageClass a začíná na pvc-
. Pokud chcete zjistit název disku, můžete ho najít spuštěním kubectl get pvc
nebo přechodem do sekundární skupiny prostředků na portálu. Další informace najdete v tématu Správa prostředků na webu Azure Portal .
az disk update --subscription subscriptionName --resource-group myResourceGroup --name diskName --disk-iops-read-write=5000 --disk-mbps-read-write=200
Další kroky
- Další informace odisch
- Další informace o osvědčených postupech úložiště najdete v tématu Osvědčené postupy pro ukládání a zálohování ve službě Azure Kubernetes Service (AKS).
Azure Kubernetes Service