Przypisywanie grup rezerwacji pojemności do pul węzłów usługi Azure Kubernetes Service (AKS)

W miarę zmiany wymagań dotyczących obciążeń można skojarzyć istniejące grupy rezerwacji pojemności (CRG) z pulami węzłów usługi Azure Kubernetes Service (AKS), aby zagwarantować przydzieloną pojemność. Grupy rezerwacji pojemności umożliwiają rezerwę pojemności obliczeniowej w regionie platformy Azure lub strefie dostępności przez dowolny czas. Ta funkcja jest przydatna w przypadku obciążeń wymagających gwarantowanej pojemności, takich jak te z przewidywalnymi wzorcami ruchu lub tymi, które muszą spełniać określone wymagania dotyczące wydajności.

Z tego artykułu dowiesz się, jak używać grup rezerwacji pojemności z pulami węzłów w usłudze AKS.

Uwaga / Notatka

Usunięcie puli węzłów automatycznie usuwa skojarzenie tej puli z wszelkimi powiązanymi grupami rezerwacji pojemności przed usunięciem samej puli węzłów. Usunięcie klastra powoduje automatyczne odłączenie wszystkich pul węzłów w tym klastrze od powiązanych z nimi grup rezerwacji pojemności.

Wymagania wstępne dotyczące używania grup rezerwacji pojemności z pulami węzłów usługi AKS

Ważna

W przypadku grup rezerwacji pojemności udostępnionej lub między subskrypcjami użytkownik lub jednostka usługi z uruchomionym poleceniem usługi AKS musi mieć Microsoft.Compute/capacityReservationGroups/write uprawnienie do połączonej grupy rezerwacji pojemności. Szczegółowe uprawnienia odbiorcy dla grupy współdzielonej rezerwacji pojemności używane przez maszyny wirtualne, takie jak Microsoft.Compute/capacityReservationGroups/deploy/action, nie są obecnie wystarczające do skojarzenia puli węzłów usługi AKS z grupą rezerwacji pojemności.

Uprawnienia przypisane do tożsamości zarządzanej klastra AKS nie zastępują tej weryfikacji autoryzacji podmiotu wywołującego. Tożsamość zarządzana klastra musi nadal mieć wymagane uprawnienia do grupy zasobów, która zawiera grupę rezerwacji pojemności, jak opisano w tym artykule.

Tworzenie tożsamości zarządzanej przypisanej przez użytkownika i przypisywanie jej do klastra usługi AKS

  1. Utwórz tożsamość zarządzaną przypisaną przez użytkownika przy użyciu az identity create polecenia .

    az identity create --name <identity-name> --resource-group <resource-group-name> --location <location>
    
  2. Pobierz identyfikator tożsamości zarządzanej przypisanej przez użytkownika przy użyciu az identity show polecenia i ustaw go na zmienną środowiskową.

    IDENTITY_ID=$(az identity show --name <identity-name> --resource-group <resource-group-name> --query identity.id -o tsv)
    
  3. Przy użyciu polecenia Contributor, przypisz rolę do tożsamości przypisanej przez użytkownika az role assignment create.

    az role assignment create --assignee $IDENTITY_ID --role "Contributor" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>
    

    Propagacja przypisania roli może potrwać do 60 minut.

  4. Przypisz przypisaną tożsamość zarządzaną przez użytkownika do nowego lub istniejącego klastra usługi AKS za pomocą flagi --assign-identity z poleceniem az aks create lub az aks update .

    # Create a new AKS cluster with the user-assigned managed identity
    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> --node-count <node-count> \
        --assign-identity $IDENTITY_ID \
        --generate-ssh-keys
    
    # Update an existing AKS cluster to use the user-assigned managed identity
    az aks update \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> \
        --node-count <node-count> \
        --enable-managed-identity \
        --assign-identity $IDENTITY_ID         
    

Pobierz identyfikator istniejącej grupy rezerwacji pojemności

Pobierz identyfikator istniejącej grupy rezerwacji pojemności przy użyciu az capacity reservation group show polecenia i ustaw go na zmienną środowiskową.

CRG_ID=$(az capacity reservation group show --capacity-reservation-group <crg-name> --resource-group <resource-group-name> --query id -o tsv)

Kojarzenie istniejącej grupy rezerwacji pojemności z nową pulą węzłów

Skojarz istniejącą grupę rezerwacji pojemności z nową pulą węzłów za pomocą polecenia az aks nodepool add z flagą --crg-id. W poniższym przykładzie przyjęto założenie, że masz grupę CRG o nazwie "myCRG".

az aks nodepool add --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --crg-id $CRG_ID

Skojarzenie istniejącej grupy rezerwacji mocy z istniejącą pulą węzłów (wersja zapoznawcza)

Powiąż istniejącą grupę rezerwacji pojemności z istniejącą pulą węzłów za pomocą polecenia az aks nodepool update z flagą --crg-id.

  • W przypadku pul węzłów strefowych ta operacja inicjuje aktualizację stopniowej puli węzłów docelowych. Proces aktualizacji obejmuje stopniowe kordono­wanie i drenowanie wszystkich węzłów, a następnie ponowne uruchomienie, aby zastosować tę zmianę.
  • W przypadku pul węzłów innych niż strefowe (regionalne) w wersji zapoznawczej najpierw przeskaluj pulę węzłów do zera, a następnie zastosuj grupę rezerwacji pojemności.

Prerequisites

  • Przed uruchomieniem aks-preview tego polecenia zainstaluj wersję 20.0.0b7 rozszerzenia Azure CLI lub nowszą.

  • Upewnij się, że grupa rezerwacji zasobów ma wystarczające zasoby dla strategii uaktualniania puli węzłów. W przypadku maxSurge > 0, zarezerwuj dodatkowe zasoby na potrzeby wartości max surge. Na przykład pula 10-węzłowa z parametrem maxSurge ustawionym na 2 może podczas aktualizacji uruchamiać maksymalnie 12 węzłów. Ta dodatkowa pojemność nie jest wymagana w przypadku wdrożeń wykorzystujących wyłącznie maxUnavailable ani regionalnych ścieżek skalowanych do zera.

    az aks nodepool update --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --crg-id $CRG_ID
    

    Jeśli polecenie zakończy się niepowodzeniem z komunikatem LinkedAuthorizationFailed i będzie zawierać odwołanie do Microsoft.Compute/capacityReservationGroups/write, nadaj to uprawnienie zalogowanemu użytkownikowi lub jednostce usługi uruchamiającej to polecenie w docelowej grupie rezerwacji pojemności.

Skojarz istniejącą grupę rezerwacji pojemności z pulą węzłów systemowych

Aby skojarzyć istniejącą grupę rezerwacji pojemności z pulą węzłów systemowych, należy przypisać tożsamość zarządzaną przypisaną przez użytkownika z rolą Contributor do klastra podczas tworzenia klastra. Następnie możesz użyć --crg-id flagi , aby skojarzyć grupę rezerwacji pojemności z pulą węzłów systemowych.

  • Utwórz nowy klaster usługi AKS z tożsamością zarządzaną przypisaną przez użytkownika i skojarz go z grupą rezerwacji pojemności przy użyciu flag --assign-identity i --crg-id z poleceniem az aks create.

    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> --node-count <node-count> \
        --assign-identity $IDENTITY_ID \
        --crg-id $CRG_ID \
        --generate-ssh-keys
    

Następne kroki: Zarządzanie pulami węzłów w usłudze AKS

Aby dowiedzieć się więcej na temat zarządzania pulami węzłów w usłudze AKS, zobacz Zarządzanie pulami węzłów w usłudze Azure Kubernetes Service (AKS).