Korzystanie z dysków SSD w warstwie Premium w wersji 2 platformy Azure w usłudze Azure Kubernetes Service
Dyski SSD w warstwie Premium w warstwie Azure w wersji 2 oferują obciążenia w przedsiębiorstwie intensywnie obciążane operacjami we/wy , spójne opóźnienie dysku w milisekundach oraz wysoką przepływność i operacje we/wy. Wydajność (pojemność, przepływność i liczba operacji we/wy na sekundę) dysków SSD w warstwie Premium w wersji 2 można w dowolnym momencie skonfigurować niezależnie, co ułatwia zwiększenie wydajności scenariuszy przy jednoczesnym spełnieniu potrzeb związanych z wydajnością.
W tym artykule opisano sposób konfigurowania nowego lub istniejącego klastra usługi AKS do korzystania z dysków SSD w warstwie Premium platformy Azure w wersji 2.
Zanim rozpoczniesz
Przed utworzeniem lub uaktualnieniem klastra usługi AKS, który może używać dysków SSD w wersji 2 usługi Azure Premium, należy utworzyć klaster usługi AKS w tym samym regionie i strefie dostępności, która obsługuje usługę Premium Storage i dołączyć dyski, wykonując poniższe kroki.
W przypadku istniejącego klastra usługi AKS można włączyć dyski SSD w wersji 2 w warstwie Premium, dodając nową pulę węzłów do klastra, a następnie dołączyć dyski, wykonując poniższe kroki.
Ważne
Dyski SSD w warstwie Premium platformy Azure w wersji 2 wymagają pul węzłów wdrożonych w regionach obsługujących te dyski. Aby uzyskać listę obsługiwanych regionów, zobacz Regiony obsługiwane przez dyski SSD w wersji 2 w warstwie Premium.
Ograniczenia
- Dyski SSD w wersji 2 w warstwie Premium platformy Azure mają pewne ograniczenia, o których należy pamiętać. Aby uzyskać pełną listę, zobacz Ograniczenia dotyczące dysków SSD w warstwie Premium w wersji 2.
Dynamiczne używanie dysków SSD w wersji 2 w warstwie Premium z klasą magazynu
Aby użyć dysków SSD w warstwie Premium w wersji 2 we wdrożeniu lub zestawie stanowym, 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 utworzysz klasę magazynu odwołującą się do dysków SSD w wersji 2 w warstwie Premium. Utwórz plik o nazwie azure-pv2-disk-sc.yaml
i skopiuj go w następującym manifeście.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: premium2-disk-sc
parameters:
cachingMode: None
skuName: PremiumV2_LRS
DiskIOPSReadWrite: "4000"
DiskMBpsReadWrite: "1000"
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
Utwórz klasę magazynu za pomocą polecenia kubectl apply i określ plik azure-pv2-disk-sc.yaml :
kubectl apply -f azure-pv2-disk-sc.yaml
Dane wyjściowe polecenia przypominają następujący przykład:
storageclass.storage.k8s.io/premium2-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-pv2-disk-pvc.yaml
i skopiuj go w następującym manifeście. Oświadczenie żąda dysku o nazwie premium2-disk
o rozmiarze 1000 GB z dostępem ReadWriteOnce . Klasa magazynu Premium2-disk-sc jest określana jako klasa magazynu.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: premium2-disk
spec:
accessModes:
- ReadWriteOnce
storageClassName: premium2-disk-sc
resources:
requests:
storage: 1000Gi
Utwórz oświadczenie trwałego woluminu za pomocą polecenia kubectl apply i określ plik azure-pv2-disk-pvc.yaml :
kubectl apply -f azure-pv2-disk-pvc.yaml
Dane wyjściowe polecenia przypominają następujący przykład:
persistentvolumeclaim/premium2-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 premium2-disk do zainstalowania dysku platformy Azure w ścieżce /mnt/azure
.
Utwórz plik o nazwie nginx-premium2.yaml
i skopiuj go w następującym manifeście.
kind: Pod
apiVersion: v1
metadata:
name: nginx-premium2
spec:
containers:
- name: nginx-premium2
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: premium2-disk
Utwórz zasobnik za pomocą polecenia kubectl apply , jak pokazano w poniższym przykładzie:
kubectl apply -f nginx-premium2.yaml
Dane wyjściowe polecenia przypominają następujący przykład:
pod/nginx-premium2 created
Masz teraz uruchomiony zasobnik z dyskiem platformy Azure zainstalowanym /mnt/azure
w katalogu. Tę konfigurację można zobaczyć podczas inspekcji zasobnika za pomocą metody kubectl describe pod nginx-premium2
, jak pokazano w poniższym skondensowanym przykładzie:
kubectl describe pod nginx-premium2
[...]
Volumes:
volume:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: premium2-disk
ReadOnly: false
kube-api-access-sh59b:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: Burstable
Node-Selectors: <none>
Tolerations: node.kubernetes.io/memory-pressure:NoSchedule op=Exists
node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 7m58s default-scheduler Successfully assigned default/nginx-premium2 to aks-agentpool-12254644-vmss000006
Normal SuccessfulAttachVolume 7m46s attachdetach-controller AttachVolume.Attach succeeded for volume "pvc-ff39fb64-1189-4c52-9a24-e065b855b886"
Normal Pulling 7m39s kubelet Pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine"
Normal Pulled 7m38s kubelet Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine" in 1.192915667s
Normal Created 7m38s kubelet Created container nginx-premium2
Normal Started 7m38s kubelet Started container nginx-premium2
[...]
Ustawianie limitów liczby operacji we/wy na sekundę i przepływności
Operacje wejściowe/wyjściowe na sekundę (IOPS) i limity przepływności dla dysku SSD usługi Azure Premium w wersji 2 nie są obecnie obsługiwane za pośrednictwem usługi AKS. Aby dostosować wydajność, możesz użyć polecenia interfejsu wiersza polecenia platformy Azure az disk update oraz parametrów --disk-iops-read-write
i --disk-mbps-read-write
.
W poniższym przykładzie liczba operacji we/wy odczytu/zapisu na sekundę dysku jest aktualizowana do 5000 Mb/s i 200 MB/s. W przypadku --resource-group
elementu wartość musi być drugą grupą zasobów utworzoną automatycznie w celu przechowywania węzłów roboczych usługi AKS z konwencją nazewnictwa MC_resourcegroupname_clustername_location. Aby uzyskać więcej informacji, zobacz Dlaczego dwie grupy zasobów są tworzone za pomocą usługi AKS?.
Wartość parametru --name
to nazwa woluminu utworzonego przy użyciu klasy StorageClass i zaczyna się od pvc-
. Aby zidentyfikować nazwę dysku, możesz uruchomić kubectl get pvc
lub przejść do pomocniczej grupy zasobów w portalu, aby ją znaleźć. Aby dowiedzieć się więcej, zobacz zarządzanie zasobami w witrynie Azure Portal .
az disk update --subscription subscriptionName --resource-group myResourceGroup --name diskName --disk-iops-read-write=5000 --disk-mbps-read-write=200
Następne kroki
- Aby uzyskać więcej informacji na temat dysków SSD w warstwie Premium w wersji 2, zobacz Using Azure Premium SSD v2 disks (Korzystanie z dysków SSD w wersji 2 w warstwie Premium 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 Azure Kubernetes Service (AKS).
Azure Kubernetes Service