Korzystanie z dysków Platformy Azure w warstwie Ultra na Azure Kubernetes Service
Dyski w warstwie Ultra platformy Azure oferują magazyn danych na dysku z wysoką przepływnością, dużą liczbą operacji we/wy na sekundę i stałym małym opóźnieniem dla aplikacji stanowych. Jedną z głównych zalet dysków w warstwie Ultra jest możliwość dynamicznej zmiany wydajności dysków SSD wraz z obciążeniami, bez konieczności ponownego uruchamiania węzłów agenta. Dyski w warstwie Ultra są odpowiednie dla obciążeń intensywnie korzystających z danych.
W tym artykule opisano sposób konfigurowania nowego lub istniejącego klastra usługi AKS do korzystania z dysków w warstwie Ultra platformy Azure.
Zanim rozpoczniesz
Tę funkcję można ustawić tylko podczas tworzenia klastra lub podczas tworzenia puli węzłów.
Ograniczenia
- Dyski w warstwie Ultra platformy Azure wymagają wdrożenia pul węzłów w strefach dostępności i regionach, które obsługują te dyski, i są obsługiwane tylko przez określoną serię maszyn wirtualnych. Aby uzyskać więcej informacji, zapoznaj się z odpowiednią tabelą w sekcji Ograniczenia dotyczące dysków w warstwie Ultra.
- Dysków w warstwie Ultra nie można używać z niektórymi funkcjami, takimi jak zestawy dostępności lub usługa Azure Disk Encryption. Przejrzyj ograniczenia dotyczące dysków w warstwie Ultra, aby uzyskać najnowsze informacje.
Tworzenie klastra, który może używać dysków w warstwie Ultra
Utwórz klaster usługi AKS, który może korzystać z dysków Platformy Azure w warstwie Ultra przy użyciu następujących poleceń interfejsu wiersza polecenia. Użyj parametru , --enable-ultra-ssd
aby ustawić EnableUltraSSD
funkcję.
az aks create -g MyResourceGroup -n myAKSCluster -l westus2 --node-vm-size Standard_D2s_v3 --zones 1 2 --node-count 2 --enable-ultra-ssd
Jeśli chcesz utworzyć klaster bez obsługi dysków w warstwie Ultra, możesz to zrobić, pomijając --enable-ultra-ssd
parametr .
Włączanie dysków w warstwie Ultra w istniejącym klastrze
Możesz włączyć dyski w warstwie Ultra w istniejącym klastrze, dodając nową pulę węzłów do klastra obsługującego dyski w warstwie Ultra. Skonfiguruj nową pulę węzłów do używania dysków w warstwie Ultra przy użyciu parametru --enable-ultra-ssd
z poleceniem az aks nodepool add
.
Jeśli chcesz utworzyć nowe pule węzłów bez obsługi dysków w warstwie Ultra, możesz to zrobić, wykluczając --enable-ultra-ssd
parametr .
Dynamiczne używanie dysków w warstwie Ultra z klasą magazynu
Aby użyć dysków w warstwie Ultra we wdrożeniach lub zestawach stanowych, możesz użyć klasy magazynu do dynamicznej aprowizacji.
Tworzenie klasy magazynu
Klasa magazynu służy do definiowania sposobu dynamicznego tworzenia jednostki magazynu przy użyciu trwałego woluminu. Aby uzyskać więcej informacji na temat klas magazynu Kubernetes, zobacz Klasy magazynu Kubernetes. W tym przykładzie utworzymy klasę magazynu, która odwołuje się do dysków w warstwie Ultra.
Utwórz plik o nazwie
azure-ultra-disk-sc.yaml
i skopiuj go w następującym manifeście: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
Utwórz klasę magazynu przy użyciu
kubectl apply
polecenia i określazure-ultra-disk-sc.yaml
plik.kubectl apply -f azure-ultra-disk-sc.yaml
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
storageclass.storage.k8s.io/ultra-disk-sc created
Tworzenie oświadczenia trwałego woluminu
Trwałe oświadczenie woluminu (PVC) służy do automatycznego aprowizowania magazynu na podstawie klasy magazynu. W takim przypadku pcv może użyć wcześniej utworzonej klasy magazynu do utworzenia dysku w warstwie Ultra.
Utwórz plik o nazwie
azure-ultra-disk-pvc.yaml
i skopiuj go w następującym manifeście:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ultra-disk spec: accessModes: - ReadWriteOnce storageClassName: ultra-disk-sc resources: requests: storage: 1000Gi
Oświadczenie żąda dysku o nazwie
ultra-disk
o rozmiarze 1000 GB z dostępem ReadWriteOnce . Klasa magazynu ultra-disk-sc jest określana jako klasa magazynu.Utwórz oświadczenie trwałego woluminu
kubectl apply
przy użyciu polecenia i określazure-ultra-disk-pvc.yaml
plik.kubectl apply -f azure-ultra-disk-pvc.yaml
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
persistentvolumeclaim/ultra-disk created
Używanie woluminu trwałego
Po utworzeniu oświadczenia trwałego woluminu i pomyślnym aprowizacji dysku można utworzyć zasobnik z dostępem do dysku. Poniższy manifest tworzy podstawowy zasobnik NGINX, który używa trwałego oświadczenia woluminu o nazwie ultra-disk do zainstalowania dysku platformy Azure w ścieżce /mnt/azure
.
Utwórz plik o nazwie
nginx-ultra.yaml
i skopiuj go w następującym manifeście: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
Utwórz zasobnik przy użyciu
kubectl apply
polecenia i określnginx-ultra.yaml
plik.kubectl apply -f nginx-ultra.yaml
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
pod/nginx-ultra created
Masz teraz uruchomiony zasobnik z dyskiem platformy Azure zainstalowanym
/mnt/azure
w katalogu .Zobacz szczegóły konfiguracji przy
kubectl describe pod
użyciu polecenia i określnginx-ultra.yaml
plik.kubectl describe pod nginx-ultra
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
[...] 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" [...]
Następne kroki
- Aby uzyskać więcej informacji na temat dysków w warstwie Ultra, zobacz Korzystanie z dysków w warstwie Ultra platformy Azure.
- Aby uzyskać więcej informacji na temat najlepszych rozwiązań dotyczących magazynu, zobacz Najlepsze rozwiązania dotyczące magazynu i kopii zapasowych w usłudze AKS.