Udostępnij za pośrednictwem


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.yamli 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.yamli 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.yamli 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-groupelementu 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