Capaciteitsreserveringsgroepen toewijzen aan AKS-knooppuntgroepen (Azure Kubernetes Service)

Naarmate uw workloadvereisten veranderen, kunt u bestaande capaciteitsreserveringsgroepen (CRG's) koppelen aan uw AKS-knooppuntgroepen (Azure Kubernetes Service) om toegewezen capaciteit voor hen te garanderen. Met capaciteitsreserveringsgroepen kunt u rekencapaciteit reserveren in een Azure-regio of beschikbaarheidszone voor elke duur van de tijd. Deze functie is handig voor workloads waarvoor gegarandeerde capaciteit is vereist, zoals werkbelastingen met voorspelbare verkeerspatronen of werkbelastingen die moeten voldoen aan specifieke prestatievereisten.

In dit artikel leert u hoe u capaciteitsreserveringsgroepen gebruikt met knooppuntgroepen in AKS.

Opmerking

Als u een knooppuntgroep verwijdert, wordt die knooppuntgroep impliciet losgekoppeld van een gekoppelde capaciteitsreserveringsgroep voordat de knooppuntgroep wordt verwijderd. Als u een cluster verwijdert, worden alle knooppuntgroepen in dat cluster impliciet losgekoppeld van de bijbehorende capaciteitsreserveringsgroepen.

Vereisten voor het gebruik van capaciteitsreserveringsgroepen met AKS-knooppuntgroepen

  • U moet Azure CLI versie 2.56 of hoger hebben geïnstalleerd en geconfigureerd. Voer az --version uit om de versie te vinden. Als u Azure CLI wilt installeren of upgraden, raadpleegt u Azure CLI installeren.
  • U hebt een bestaande capaciteitsreserveringsgroep met ten minste één capaciteitsreservering nodig. Als dat niet het geval is, dan wordt de knooppool met een waarschuwing aan het cluster toegevoegd en wordt er geen capaciteitsreserveringsgroep geassocieerd.
  • U moet een door de gebruiker toegewezen beheerde identiteit maken met de Contributor rol voor de resourcegroep die de capaciteitsreserveringsgroep bevat en de identiteit toewijst aan uw AKS-cluster. Door het systeem toegewezen beheerde identiteiten werken niet voor deze functie.

Important

Voor reserveringsgroepen voor gedeelde of abonnementsoverschrijdende capaciteit moet de gebruiker of service-principal die de AKS-opdracht uitvoert, machtigingen hebben Microsoft.Compute/capacityReservationGroups/write voor de gekoppelde capaciteitsreserveringsgroep. De gedetailleerde gebruikersmachtigingen voor de reserveringsgroep voor gedeelde capaciteit die worden gebruikt voor virtuele machines, zoals Microsoft.Compute/capacityReservationGroups/deploy/action, zijn momenteel niet voldoende voor het koppelen van een AKS-knooppuntgroep aan een capaciteitsreserveringsgroep.

Machtigingen die zijn toegewezen aan de beheerde identiteit van het AKS-cluster, vervangen deze autorisatiecontrole van de aanroeper niet. De beheerde identiteit van het cluster heeft nog steeds de vereiste machtigingen nodig voor de resourcegroep die de capaciteitsreserveringsgroep bevat, zoals beschreven in dit artikel.

Een door de gebruiker toegewezen beheerde identiteit maken en deze toewijzen aan een AKS-cluster

  1. Maak een door de gebruiker toegewezen beheerde identiteit met behulp van de az identity create opdracht.

    az identity create --name <identity-name> --resource-group <resource-group-name> --location <location>
    
  2. Haal de id op van de door de gebruiker toegewezen beheerde identiteit met behulp van de az identity show opdracht en stel deze in op een omgevingsvariabele.

    IDENTITY_ID=$(az identity show --name <identity-name> --resource-group <resource-group-name> --query identity.id -o tsv)
    
  3. Wijs de Contributor rol toe aan de door de gebruiker toegewezen identiteit met behulp van de az role assignment create opdracht.

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

    Het kan tot 60 minuten duren voordat de roltoewijzing is doorgegeven.

  4. Wijs de door de gebruiker toegewezen beheerde identiteit toe aan een nieuw of bestaand AKS-cluster met behulp van de --assign-identity vlag met de az aks create of az aks update opdracht.

    # 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         
    

Verkrijg de ID van een bestaande capaciteitsreserveringsgroep

Haal de id van een bestaande capaciteitsreserveringsgroep op met behulp van de az capacity reservation group show opdracht en stel deze in op een omgevingsvariabele.

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

Een bestaande capaciteitsreserveringsgroep koppelen aan een nieuw cluster

Koppel een bestaande capaciteitsreserveringsgroep aan de standaardsysteemknooppuntgroep tijdens het maken van het cluster door de az aks create opdracht uit te voeren met de --assign-identity en --crg-id vlaggen.

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

Een bestaande capaciteitsreserveringsgroep koppelen aan een nieuwe knooppuntgroep

Koppel een bestaande capaciteitsreserveringsgroep aan een nieuwe gebruikersknooppuntgroep met behulp van de az aks nodepool add opdracht met de --crg-id vlag.

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

Als u een bestaande capaciteitsreserveringsgroep wilt koppelen aan een nieuwe systeem-nodepool, maakt u de nodepool met de --mode System- en --crg-id-vlaggen. Gebruik voor productieclusters minimaal drie knooppunten voor systeemknooppuntgroepen.

az aks nodepool add \
    --resource-group <resource-group-name> \
    --cluster-name <cluster-name> \
    --name <system-node-pool-name> \
    --mode System \
    --node-count 3 \
    --node-taints CriticalAddonsOnly=true:NoSchedule \
    --crg-id $CRG_ID

Een bestaande capaciteitsreserveringsgroep koppelen aan een bestaande knooppuntgroep (preview)

Koppel een bestaande capaciteitsreserveringsgroep aan een bestaande knooppuntgroep met behulp van de az aks nodepool update opdracht met de --crg-id vlag.

  • Voor zonale knooppuntgroepen wordt met deze bewerking een gefaseerde update van de doelknooppuntgroep gestart. Het updateproces omvat het gefaseerd cordoneren en drainen van alle knooppunten, gevolgd door een herstart om de wijziging door te voeren.
  • Voor niet-zonegebonden (regionale) gebruikersknooppuntpools tijdens de preview schaalt u eerst de knooppuntpool naar nul en past u vervolgens de capaciteitsreserveringsgroep toe.
  • Voor niet-zonegebonden (regionale) systeemknooppuntgroepen moet u de systeemknooppuntgroep niet schalen naar nul. Maak in plaats daarvan een nieuwe systeemnodepool die is gekoppeld aan de capaciteitsreserveringsgroep, controleer of de nieuwe nodepool gereed is en verwijder vervolgens de oude systeemnodepool. AKS vereist ten minste één systeemknooppuntgroep op elk moment.

Prerequisites

  • Installeer de aks-preview Azure CLI-extensieversie 20.0.0b7 of hoger voordat u deze opdracht uitvoert.

  • Zorg ervoor dat de capaciteitsreserveringsgroep voldoende capaciteit heeft voor de upgradestrategie van uw knooppuntgroep. Wanneer maxSurge > 0, reserveert u extra capaciteit voor de maximale surge-waarde. Een pool met 10 knooppunten waarbij maxSurge is ingesteld op 2, kan tijdens een upgrade bijvoorbeeld maximaal 12 knooppunten draaien. Deze extra capaciteit is niet vereist voor maxUnavailable-implementaties of regionale geschaalde naar nul-paden.

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

    Als de opdracht mislukt met LinkedAuthorizationFailed en verwijst naar Microsoft.Compute/capacityReservationGroups/write, verleen die machtiging aan de aangemelde gebruiker of service-principal die de opdracht uitvoert voor de doelcapaciteitsreserveringsgroep.

Volgende stappen: Knooppuntgroepen beheren in AKS

Zie Knooppuntgroepen beheren in Azure Kubernetes Service (AKS) voor meer informatie over het beheren van knooppuntgroepen in AKS. Zie Systeemknooppuntgroepen gebruiken in Azure Kubernetes Service (AKS) voor meer informatie over het toevoegen, bijwerken of verwijderen van systeemknooppuntgroepen.