Tilldela kapacitetsreservationsgrupper till Azure Kubernetes Service-nodpooler (AKS)

När arbetsbelastningens krav ändras kan du associera befintliga kapacitetsreservationsgrupper (CRG:er) med dina Azure Kubernetes Service-nodpooler (AKS) för att garantera allokerad kapacitet för dem. Med kapacitetsreservationsgrupper kan du reservera beräkningskapacitet i en Azure-region eller tillgänglighetszon under en tidsperiod. Den här funktionen är användbar för arbetsbelastningar som kräver garanterad kapacitet, till exempel de med förutsägbara trafikmönster eller de som behöver uppfylla specifika prestandakrav.

I den här artikeln får du lära dig hur du använder kapacitetsreservationsgrupper med nodpooler i AKS.

Anmärkning

När en nodpool tas bort, kopplas den automatiskt från en associerad kapacitetsreservationsgrupp innan den tas bort. När du tar bort ett kluster, kopplas alla nodpooler i klustret implicit från deras associerade kapacitetsreservationsgrupper.

Förutsättningar för att använda kapacitetsreservationsgrupper med AKS-nodpooler

  • Du behöver Azure CLI version 2.56 eller senare installerad och konfigurerad. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera, se Installera Azure CLI.
  • Du behöver en befintlig kapacitetsreservationsgrupp med minst en kapacitetsreservation. Annars läggs nodpoolen till i klustret med en varning och ingen kapacitetsreservationsgrupp blir associerad.
  • Du måste skapa en användartilldelad hanterad identitet med Contributor rollen för resursgruppen som innehåller kapacitetsreservationsgruppen och tilldela identiteten till ditt AKS-kluster. Systemtilldelade hanterade identiteter fungerar inte för den här funktionen.

Skapa en användartilldelad hanterad identitet och tilldela den till ett AKS-kluster

  1. Skapa en användartilldelad hanterad identitet med kommandot az identity create .

    az identity create --name <identity-name> --resource-group <resource-group-name> --location <location>
    
  2. Hämta ID:t för den användartilldelade hanterade identiteten az identity show med kommandot och ange den till en miljövariabel.

    IDENTITY_ID=$(az identity show --name <identity-name> --resource-group <resource-group-name> --query identity.id -o tsv)
    
  3. Tilldela Contributor rollen till den användartilldelade identiteten med az role assignment create kommandot.

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

    Det kan ta upp till 60 minuter innan rolltilldelningen sprids.

  4. Tilldela den hanterade identiteten som användaren har tilldelat till ett nytt eller befintligt AKS-kluster med hjälp av flagga --assign-identity med kommandot az aks create eller 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         
    

Hämta ID för en befintlig kapacitetsreservationsgrupp

Hämta ID:t för en befintlig kapacitetsreservationsgrupp med hjälp az capacity reservation group show av kommandot och ange det till en miljövariabel.

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

Associera en befintlig kapacitetsreservationsgrupp med en ny nodpool

Associera en befintlig kapacitetsreservationsgrupp med en ny nodpool med kommandot az aks nodepool add och flaggan --crg-id. I följande exempel förutsätter vi att du har en CRG med namnet "myCRG".

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

Associera en befintlig kapacitetsreservationsgrupp med en befintlig nodpool (förhandsversion)

Koppla en befintlig kapacitetsreservationsgrupp till en befintlig nodpool med hjälp av kommandot az aks nodepool update med --crg-id-flaggan.

  • För zonindeala nodpooler initierar den här åtgärden en löpande uppdatering av målnodpoolen. Uppdateringsprocessen omfattar rullande avspärrning och tömning av alla noder, följt av en omstart för att tillämpa ändringen.
  • För nodpooler som inte är zonindelade (regionala) under förhandsversionen skalar du först nodpoolen till noll och tillämpar sedan kapacitetsreservationsgruppen.

Prerequisites

  • aks-preview Installera Azure CLI-tilläggsversionen 20.0.0b7 eller senare innan du kör det här kommandot.

  • Se till att kapacitetsreservationsgruppen har tillräckligt med kapacitet för uppgraderingsstrategin för nodpoolen. När maxSurge > 0reserverar du extra kapacitet för det maximala överspänningsvärdet . Till exempel kan en pool med 10 noder med maxSurge inställd på 2 köra upp till 12 noder under en uppgradering. Den här extra kapaciteten krävs inte för utrullningar endast med maxUnavailable eller regionala sökvägar som skalats ned till noll.

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

Associera en befintlig kapacitetsreservationsgrupp med en systemnodpool

Om du vill associera en befintlig kapacitetsreservationsgrupp med en systemnodpool måste du tilldela den användartilldelade hanterade identiteten rollen Contributor i klustret under klustrets skapande. Du kan sedan använda --crg-id flaggan för att associera kapacitetsreservationsgruppen med systemnodpoolen.

  • Skapa ett nytt AKS-kluster med den användartilldelade hanterade identiteten och associera det med kapacitetsreservationsgruppen med hjälp av flaggorna --assign-identity och --crg-id med az aks create kommandot .

    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
    

Nästa steg: Hantera nodpooler i AKS

Mer information om hur du hanterar nodpooler i AKS finns i Hantera nodpooler i Azure Kubernetes Service (AKS).