Použití disků Azure Ultra ve službě Azure Kubernetes Service
Disky Azure Ultra zajišťují vysokou propustnost, vysoký počet vstupně-výstupních operací (IOPS) a představují konzistentní diskové úložiště s nízkou latencí pro stavové aplikace. Jednou z hlavních výhod disků úrovně Ultra je schopnost dynamicky měnit výkon disku SSD podle aktuálních úloh, aniž byste museli restartovat uzly agenta. Disky Úrovně Ultra jsou vhodné pro úlohy náročné na data.
Tento článek popisuje, jak nakonfigurovat nový nebo existující cluster AKS tak, aby používal disky Azure Ultra.
Než začnete
Tuto funkci lze nastavit pouze při vytváření clusteru nebo při vytváření fondu uzlů.
Omezení
- Disky Úrovně Ultra Azure vyžadují fondy uzlů nasazené v zónách dostupnosti a oblastech, které tyto disky podporují, a podporují se jenom konkrétní řady virtuálních počítačů. Další informace najdete v odpovídající tabulce v části Omezení disků Úrovně Ultra.
- Disky Úrovně Ultra se nedají používat s některými funkcemi, jako jsou skupiny dostupnosti nebo Azure Disk Encryption. Nejnovější informace najdete v omezení disku Úrovně Ultra.
Vytvoření clusteru, který může používat disky úrovně Ultra
Pomocí následujících příkazů rozhraní příkazového řádku vytvořte cluster AKS, který dokáže využívat disky Úrovně Ultra Azure. --enable-ultra-ssd
K nastavení EnableUltraSSD
funkce použijte parametr.
az aks create \
--resource-group MyResourceGroup \
--name myAKSCluster \
--location westus2 \
--node-vm-size Standard_D2s_v3 \
--zones 1 2 \
--node-count 2 \
--enable-ultra-ssd \
--generate-ssh-keys
Pokud chcete vytvořit cluster bez podpory disků úrovně Ultra, můžete to udělat tak --enable-ultra-ssd
, že parametr vynecháte.
Povolení disků úrovně Ultra v existujícím clusteru
Disky úrovně Ultra můžete povolit v existujícím clusteru přidáním nového fondu uzlů do clusteru, který podporuje disky úrovně Ultra. Nakonfigurujte nový fond uzlů tak, aby používal disky úrovně Ultra pomocí --enable-ultra-ssd
parametru s příkazem az aks nodepool add
.
Pokud chcete vytvořit nové fondy uzlů bez podpory disků úrovně Ultra, můžete to udělat tak, že tento parametr vyloučíte --enable-ultra-ssd
.
Dynamické používání disků úrovně Ultra spolu s třídou úložiště
Pokud chcete ve svých nasazeních nebo stavových sadách používat disky úrovně Ultra, 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říme třídu úložiště, která odkazuje na disky úrovně Ultra.
Vytvořte soubor s názvem
azure-ultra-disk-sc.yaml
a zkopírujte ho v následujícím manifestu:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: ultra-disk-sc provisioner: disk.csi.azure.com # replace with "kubernetes.io/azure-disk" if aks version is less than 1.21 volumeBindingMode: WaitForFirstConsumer # optional, but recommended if you want to wait until the pod that will use this disk is created parameters: skuname: UltraSSD_LRS kind: managed cachingMode: None diskIopsReadWrite: "2000" # minimum value: 2 IOPS/GiB diskMbpsReadWrite: "320" # minimum value: 0.032/GiB
Pomocí příkazu vytvořte třídu
kubectl apply
úložiště a zadejte souborazure-ultra-disk-sc.yaml
.kubectl apply -f azure-ultra-disk-sc.yaml
Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:
storageclass.storage.k8s.io/ultra-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-ultra-disk-pvc.yaml
a zkopírujte ho v následujícím manifestu:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ultra-disk spec: accessModes: - ReadWriteOnce storageClassName: ultra-disk-sc resources: requests: storage: 1000Gi
Deklarace identity požaduje disk s názvem
ultra-disk
o velikosti 1000 GB s přístupem ReadWriteOnce . Třída úložiště ultra-disk-sc je určena jako třída úložiště.Pomocí příkazu vytvořte trvalou deklaraci identity svazku
kubectl apply
a zadejte souborazure-ultra-disk-pvc.yaml
.kubectl apply -f azure-ultra-disk-pvc.yaml
Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:
persistentvolumeclaim/ultra-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 ultra-disk k připojení disku Azure k cestě /mnt/azure
.
Vytvořte soubor s názvem
nginx-ultra.yaml
a zkopírujte ho v následujícím manifestu:kind: Pod apiVersion: v1 metadata: name: nginx-ultra spec: containers: - name: nginx-ultra 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: ultra-disk
Vytvořte pod pomocí
kubectl apply
příkazu a zadejte soubornginx-ultra.yaml
.kubectl apply -f nginx-ultra.yaml
Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:
pod/nginx-ultra created
Teď máte spuštěný pod s připojeným diskem Azure v
/mnt/azure
adresáři.Pomocí příkazu si prohlédněte podrobnosti
kubectl describe pod
o konfiguraci a zadejte soubornginx-ultra.yaml
.kubectl describe pod nginx-ultra
Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:
[...] 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" [...]
Další kroky
- Další informace o discích úrovně Ultra najdete v tématu Použití disků Azure Ultra.
- Další informace oosvědčených
Azure Kubernetes Service