Använda Azure Ultra Disks på Azure Kubernetes Service
Ultradiskar i Azure har stöd för stora dataflöden, många IOPS och korta svarstider för tillståndskänsliga appar. En stor fördel med ultradiskar är möjligheten att dynamiskt ändra prestanda för SSD-disken samtidigt som dina arbetsbelastningar utan att du behöver starta om agentnoderna. Ultradiskar är avsedda för dataintensiva arbetsbelastningar.
I den här artikeln beskrivs hur du konfigurerar ett nytt eller befintligt AKS-kluster för användning av Azure-ultradiskar.
Innan du börjar
Den här funktionen kan bara anges när klustret skapas eller när du skapar en nodpool.
Begränsningar
- Azure-ultradiskar kräver nodpooler som distribueras i tillgänglighetszoner och regioner som stöder dessa diskar och som endast stöds av specifika VM-serier. Mer information finns i motsvarande tabell under avsnittet Begränsningar för Ultra-diskar .
- Ultradiskar kan inte användas med vissa funktioner, till exempel tillgänglighetsuppsättningar eller Azure Disk Encryption. Granska ultradiskbegränsningarna för den senaste informationen.
Skapa ett kluster som kan använda ultradiskar
Skapa ett AKS-kluster som kan utnyttja Azure ultra Disks med hjälp av följande CLI-kommandon. Använd parametern --enable-ultra-ssd
för att ange funktionen EnableUltraSSD
.
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
Om du vill skapa ett kluster utan ultradiskstöd kan du göra det genom att utelämna parametern --enable-ultra-ssd
.
Aktivera ultradiskar i ett befintligt kluster
Du kan aktivera ultradiskar i ett befintligt kluster genom att lägga till en ny nodpool i klustret som stöder ultradiskar. Konfigurera en ny nodpool så att den använder ultradiskar med hjälp av parametern --enable-ultra-ssd
az aks nodepool add
med kommandot .
Om du vill skapa nya nodpooler utan stöd för ultradiskar kan du göra det genom att undanta parametern --enable-ultra-ssd
.
Använda ultradiskar dynamiskt med en lagringsklass
Om du vill använda ultradiskar i dina distributioner eller tillståndskänsliga uppsättningar kan du använda en lagringsklass för dynamisk etablering.
Skapa lagringsklassen
En lagringsklass används för att definiera hur en lagringsenhet skapas dynamiskt med en beständig volym. Mer information om Kubernetes-lagringsklasser finns i Kubernetes-lagringsklasser. I det här exemplet skapar vi en lagringsklass som refererar till ultradiskar.
Skapa en fil med namnet
azure-ultra-disk-sc.yaml
och kopiera i följande manifest: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
Skapa lagringsklassen
kubectl apply
med kommandot och ange filenazure-ultra-disk-sc.yaml
.kubectl apply -f azure-ultra-disk-sc.yaml
Dina utdata bör likna följande exempelutdata:
storageclass.storage.k8s.io/ultra-disk-sc created
Skapa ett beständigt volymanspråk
Ett beständiga volymanspråk (PVC) används för att automatiskt etablera lagring baserat på en lagringsklass. I det här fallet kan en PVC använda den tidigare skapade lagringsklassen för att skapa en ultradisk.
Skapa en fil med namnet
azure-ultra-disk-pvc.yaml
och kopiera i följande manifest:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ultra-disk spec: accessModes: - ReadWriteOnce storageClassName: ultra-disk-sc resources: requests: storage: 1000Gi
Anspråket begär en disk med namnet
ultra-disk
1 000 GB i storlek med ReadWriteOnce-åtkomst. Lagringsklassen ultra-disk-sc anges som lagringsklass.Skapa det beständiga volymanspråket
kubectl apply
med kommandot och ange filenazure-ultra-disk-pvc.yaml
.kubectl apply -f azure-ultra-disk-pvc.yaml
Dina utdata bör likna följande exempelutdata:
persistentvolumeclaim/ultra-disk created
Använd den beständiga volymen
När det beständiga volymanspråket har skapats och disken har etablerats kan en podd skapas med åtkomst till disken. Följande manifest skapar en grundläggande NGINX-podd som använder det beständiga volymanspråket med namnet ultradisk för att montera Azure-disken på sökvägen /mnt/azure
.
Skapa en fil med namnet
nginx-ultra.yaml
och kopiera i följande manifest: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
Skapa podden med
kubectl apply
kommandot och ange filennginx-ultra.yaml
.kubectl apply -f nginx-ultra.yaml
Dina utdata bör likna följande exempelutdata:
pod/nginx-ultra created
Nu har du en podd som körs med din Azure-disk monterad i
/mnt/azure
katalogen.Se konfigurationsinformationen
kubectl describe pod
med kommandot och ange filennginx-ultra.yaml
.kubectl describe pod nginx-ultra
Dina utdata bör likna följande exempelutdata:
[...] 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" [...]
Nästa steg
- Mer information om ultradiskar finns i Använda Azure Ultra Disks.
- Mer information om metodtips för lagring finns i Metodtips för lagring och säkerhetskopior i AKS.
Azure Kubernetes Service