Sdílet prostřednictvím


Použití disků Azure Ultra ve službě Azure Kubernetes Service

Disky Azure Ultra zajišťují vysokou propustnost, vysoký počet vstupně-výstupních operací (IOPS) a představují konzistentní diskové úložiště s nízkou latencí pro stavové aplikace. Jednou z hlavních výhod disků úrovně Ultra je schopnost dynamicky měnit výkon disku SSD podle aktuálních úloh, aniž byste museli restartovat uzly agenta. Disky Úrovně Ultra jsou vhodné pro úlohy náročné na data.

Tento článek popisuje, jak nakonfigurovat nový nebo existující cluster AKS tak, aby používal disky Azure Ultra.

Než začnete

Tuto funkci lze nastavit pouze při vytváření clusteru nebo při vytváření fondu uzlů.

Omezení

  • Disky Úrovně Ultra Azure vyžadují fondy uzlů nasazené v zónách dostupnosti a oblastech, které tyto disky podporují, a podporují se jenom konkrétní řady virtuálních počítačů. Další informace najdete v odpovídající tabulce v části Omezení disků Úrovně Ultra.
  • Disky Úrovně Ultra se nedají používat s některými funkcemi, jako jsou skupiny dostupnosti nebo Azure Disk Encryption. Nejnovější informace najdete v omezení disku Úrovně Ultra.

Vytvoření clusteru, který může používat disky úrovně Ultra

Pomocí následujících příkazů rozhraní příkazového řádku vytvořte cluster AKS, který dokáže využívat disky Úrovně Ultra Azure. --enable-ultra-ssd K nastavení EnableUltraSSD funkce použijte parametr.

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

Pokud chcete vytvořit cluster bez podpory disků úrovně Ultra, můžete to udělat tak --enable-ultra-ssd , že parametr vynecháte.

Povolení disků úrovně Ultra v existujícím clusteru

Disky úrovně Ultra můžete povolit v existujícím clusteru přidáním nového fondu uzlů do clusteru, který podporuje disky úrovně Ultra. Nakonfigurujte nový fond uzlů tak, aby používal disky úrovně Ultra pomocí --enable-ultra-ssd parametru s příkazem az aks nodepool add .

Pokud chcete vytvořit nové fondy uzlů bez podpory disků úrovně Ultra, můžete to udělat tak, že tento parametr vyloučíte --enable-ultra-ssd .

Dynamické používání disků úrovně Ultra spolu s třídou úložiště

Pokud chcete ve svých nasazeních nebo stavových sadách používat disky úrovně Ultra, můžete k dynamickému zřizování použít třídu úložiště.

Vytvoření třídy úložiště

Třída úložiště slouží k definování dynamického vytvoření jednotky úložiště s trvalým svazkem. Další informace o třídách úložiště Kubernetes najdete v tématu Třídy úložiště Kubernetes. V tomto příkladu vytvoříme třídu úložiště, která odkazuje na disky úrovně Ultra.

  1. Vytvořte soubor s názvem azure-ultra-disk-sc.yaml a zkopírujte ho v následujícím manifestu:

    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
    
  2. Pomocí příkazu vytvořte třídu kubectl apply úložiště a zadejte soubor azure-ultra-disk-sc.yaml .

    kubectl apply -f azure-ultra-disk-sc.yaml
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    storageclass.storage.k8s.io/ultra-disk-sc created
    

Vytvoření deklarace trvalého svazku

Deklarace trvalého svazku (PVC) se používá k automatickému zřizování úložiště na základě třídy úložiště. V tomto případě může PVC použít dříve vytvořenou třídu úložiště k vytvoření disku úrovně Ultra.

  1. Vytvořte soubor s názvem azure-ultra-disk-pvc.yaml a zkopírujte ho v následujícím manifestu:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: ultra-disk
    spec:
      accessModes:
     - ReadWriteOnce
      storageClassName: ultra-disk-sc
      resources:
        requests:
          storage: 1000Gi
    

    Deklarace identity požaduje disk s názvem ultra-disk o velikosti 1000 GB s přístupem ReadWriteOnce . Třída úložiště ultra-disk-sc je určena jako třída úložiště.

  2. Pomocí příkazu vytvořte trvalou deklaraci identity svazku kubectl apply a zadejte soubor azure-ultra-disk-pvc.yaml .

    kubectl apply -f azure-ultra-disk-pvc.yaml
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    persistentvolumeclaim/ultra-disk created
    

Použití trvalého svazku

Po vytvoření deklarace trvalého svazku a úspěšném zřízení disku je možné vytvořit pod s přístupem k disku. Následující manifest vytvoří základní pod NGINX, který používá deklaraci trvalého svazku s názvem ultra-disk k připojení disku Azure k cestě /mnt/azure.

  1. Vytvořte soubor s názvem nginx-ultra.yaml a zkopírujte ho v následujícím manifestu:

    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
    
  2. Vytvořte pod pomocí kubectl apply příkazu a zadejte soubor nginx-ultra.yaml .

    kubectl apply -f nginx-ultra.yaml
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    pod/nginx-ultra created
    

    Teď máte spuštěný pod s připojeným diskem Azure v /mnt/azure adresáři.

  3. Pomocí příkazu si prohlédněte podrobnosti kubectl describe pod o konfiguraci a zadejte soubor nginx-ultra.yaml .

    kubectl describe pod nginx-ultra
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    [...]
    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"
    [...]
    

Další kroky

  • Další informace o discích úrovně Ultra najdete v tématu Použití disků Azure Ultra.
  • Další informace oosvědčených