Azure Ultra Disks gebruiken in Azure Kubernetes Service
Azure-ultraschijven bieden een hoge doorvoer, een hoge IOPS en consistente schijfopslag met lage latentie voor uw stateful toepassingen. Een groot voordeel van ultraschijven is de mogelijkheid om de prestaties van de SSD dynamisch met uw workloads te wijzigen zonder dat u de agentknooppunten opnieuw hoeft op te starten. Ultraschijven zijn geschikt voor gegevensintensieve workloads.
In dit artikel wordt beschreven hoe u een nieuw of bestaand AKS-cluster configureert voor het gebruik van Azure Ultra Disks.
Voordat u begint
Deze functie kan alleen worden ingesteld bij het maken van een cluster of bij het maken van een knooppuntgroep.
Beperkingen
- Voor Azure Ultra-schijven zijn knooppuntgroepen vereist die zijn geïmplementeerd in beschikbaarheidszones en regio's die deze schijven ondersteunen en die alleen worden ondersteund door specifieke VM-serie. Raadpleeg de bijbehorende tabel onder de sectie Ultra-schijfbeperkingen voor meer informatie.
- Ultraschijven kunnen niet worden gebruikt met bepaalde functies en functionaliteit, zoals beschikbaarheidssets of Azure Disk Encryption. Bekijk de ultraschijfbeperkingen voor de meest recente informatie.
Een cluster maken dat ultraschijven kan gebruiken
Maak een AKS-cluster dat gebruik kan maken van Azure Ultra Disks met behulp van de volgende CLI-opdrachten. Gebruik de --enable-ultra-ssd
parameter om de EnableUltraSSD
functie in te stellen.
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
Als u een cluster wilt maken zonder ultraschijfondersteuning, kunt u dit doen door de --enable-ultra-ssd
parameter weg te laten.
Ultraschijven inschakelen op een bestaand cluster
U kunt ultraschijven inschakelen op een bestaand cluster door een nieuwe knooppuntgroep toe te voegen aan uw cluster die ondersteuning biedt voor ultraschijven. Configureer een nieuwe knooppuntgroep voor het gebruik van ultraschijven met behulp van de --enable-ultra-ssd
parameter met de az aks nodepool add
opdracht.
Als u nieuwe knooppuntgroepen wilt maken zonder ondersteuning voor ultraschijven, kunt u dit doen door de --enable-ultra-ssd
parameter uit te sluiten.
Ultraschijven dynamisch gebruiken met een opslagklasse
Als u ultraschijven in uw implementaties of stateful sets wilt gebruiken, kunt u een opslagklasse gebruiken voor dynamische inrichting.
De opslagklasse maken
Een opslagklasse wordt gebruikt om te definiëren hoe een opslageenheid dynamisch wordt gemaakt met een permanent volume. Zie Kubernetes-opslagklassen voor meer informatie over Kubernetes-opslagklassen. In dit voorbeeld maken we een opslagklasse die verwijst naar ultraschijven.
Maak een bestand met de naam
azure-ultra-disk-sc.yaml
en kopieer dit in het volgende 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
Maak de opslagklasse met behulp van de
kubectl apply
opdracht en geef hetazure-ultra-disk-sc.yaml
bestand op.kubectl apply -f azure-ultra-disk-sc.yaml
De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:
storageclass.storage.k8s.io/ultra-disk-sc created
Een permanente volumeclaim maken
Een permanente volumeclaim (PVC) wordt gebruikt om automatisch opslag in te richten op basis van een opslagklasse. In dit geval kan een PVC de eerder gemaakte opslagklasse gebruiken om een ultraschijf te maken.
Maak een bestand met de naam
azure-ultra-disk-pvc.yaml
en kopieer dit in het volgende manifest:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ultra-disk spec: accessModes: - ReadWriteOnce storageClassName: ultra-disk-sc resources: requests: storage: 1000Gi
De claim vraagt een schijf met de naam
ultra-disk
1000 GB aan met ReadWriteOnce-toegang. De ultra-disk-sc-opslagklasse wordt opgegeven als opslagklasse.Maak de permanente volumeclaim met behulp van de
kubectl apply
opdracht en geef hetazure-ultra-disk-pvc.yaml
bestand op.kubectl apply -f azure-ultra-disk-pvc.yaml
De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:
persistentvolumeclaim/ultra-disk created
Het permanente volume gebruiken
Zodra de permanente volumeclaim is gemaakt en de schijf is ingericht, kan er een pod worden gemaakt met toegang tot de schijf. Met het volgende manifest maakt u een eenvoudige NGINX-pod die gebruikmaakt van de permanente volumeclaim met de naam ultraschijf om de Azure-schijf aan het pad /mnt/azure
te koppelen.
Maak een bestand met de naam
nginx-ultra.yaml
en kopieer dit in het volgende 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
Maak de pod met behulp van
kubectl apply
de opdracht en geef hetnginx-ultra.yaml
bestand op.kubectl apply -f nginx-ultra.yaml
De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:
pod/nginx-ultra created
U hebt nu een actieve pod waarop uw Azure-schijf is gekoppeld in de
/mnt/azure
map.Bekijk uw configuratiegegevens met behulp van de
kubectl describe pod
opdracht en geef hetnginx-ultra.yaml
bestand op.kubectl describe pod nginx-ultra
De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:
[...] 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" [...]
Volgende stappen
- Zie Azure Ultra Disks gebruiken voor meer informatie over ultraschijven.
- Zie Best practices voor opslag en back-ups in AKS voor meer informatie over aanbevolen procedures voor opslag.
Azure Kubernetes Service