Korzystanie z dysków Platformy Azure w warstwie Ultra w usłudze 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 Azure w warstwie Ultra.
Zanim rozpoczniesz
Tę funkcję można ustawić tylko podczas tworzenia klastra lub tworzenia puli węzłów.
Ograniczenia
- Dyski w warstwie Ultra platformy Azure wymagają pul węzłów wdrożonych w strefach dostępności i regionach obsługujących 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 i 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 Azure Ultra Disks przy użyciu następujących poleceń interfejsu wiersza polecenia. Użyj parametru EnableUltraSSD
, --enable-ultra-ssd
aby ustawić funkcję.
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
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, który obsługuje 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żywać 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 woluminu trwałego. 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 trwałego oświadczenia woluminu
Trwałe oświadczenie woluminu (PVC) służy do automatycznego aprowizowania magazynu na podstawie klasy magazynu. W takim przypadku w celu utworzenia dysku w warstwie Ultra można użyć wcześniej utworzonej klasy magazynu.
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 trwałego oświadczenia 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 użyciu
kubectl describe pod
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 tworzenia kopii zapasowych w usłudze AKS.
Azure Kubernetes Service