Assegnare gruppi di prenotazioni di capacità ai pool di nodi del servizio Azure Kubernetes

Man mano che le richieste del carico di lavoro cambiano, è possibile associare i gruppi di prenotazioni di capacità esistenti ai pool di nodi del servizio Azure Kubernetes per garantire la capacità allocata. I gruppi di prenotazioni di capacità consentono di riservare la capacità di calcolo in un'area di Azure o in una zona di disponibilità per qualsiasi periodo di tempo. Questa funzionalità è utile per i carichi di lavoro che richiedono capacità garantita, ad esempio quelli con modelli di traffico prevedibili o quelli che devono soddisfare requisiti di prestazioni specifici.

In questo articolo, si apprende come utilizzare i gruppi di prenotazione della capacità con i pool di nodi in AKS.

Annotazioni

L'eliminazione di un pool di nodi dissocia in modo implicito il pool di nodi da qualsiasi gruppo di prenotazioni di capacità associato prima dell'eliminazione del pool di nodi. L'eliminazione di un cluster dissocia in modo implicito tutti i pool di nodi in tale cluster dai gruppi di prenotazioni di capacità associati.

Prerequisiti per l'uso di gruppi di prenotazioni di capacità con i pool di nodi di AKS.

  • È necessaria l'interfaccia della riga di comando di Azure versione 2.56 o successiva installata e configurata. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
  • È necessario un gruppo di prenotazioni di capacità esistente con almeno una prenotazione di capacità. In caso contrario, il pool di nodi viene aggiunto al cluster con un avviso e nessun gruppo di prenotazione della capacità viene associato.
  • È necessario creare un'identità gestita assegnata dall'utente con il ruolo Contributor per il gruppo di risorse che contiene il gruppo di prenotazioni di capacità e assegnare l'identità al cluster AKS. Le identità gestite assegnate dal sistema non funzionano per questa funzionalità.

Creare un'identità gestita assegnata dall'utente e assegnarla a un cluster AKS

  1. Creare un'identità gestita assegnata dall'utente usando il comando az identity create.

    az identity create --name <identity-name> --resource-group <resource-group-name> --location <location>
    
  2. Ottenere l'ID dell'identità gestita assegnata dall'utente usando il az identity show comando e impostarlo su una variabile di ambiente.

    IDENTITY_ID=$(az identity show --name <identity-name> --resource-group <resource-group-name> --query identity.id -o tsv)
    
  3. Assegnare il ruolo Contributor all'identità assegnata dall'utente utilizzando il comando az role assignment create.

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

    La propagazione dell'assegnazione di ruolo può richiedere fino a 60 minuti .

  4. Assegnare l'identità gestita dall'utente a un nuovo o esistente cluster AKS utilizzando lo --assign-identity flag tramite i comandi az aks create o 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         
    

Ottenere l'ID di un gruppo di prenotazioni di capacità esistente

Ottenere l'ID di un gruppo di prenotazioni di capacità esistente usando il az capacity reservation group show comando e impostarlo su una variabile di ambiente.

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

Associare un gruppo di prenotazione della capacità esistente a un nuovo pool di nodi

Associare un gruppo di prenotazione della capacità esistente a un nuovo pool di nodi tramite il comando az aks nodepool add con il flag --crg-id. Nell'esempio seguente, si presuppone che sia presente un CRG denominato "myCRG".

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

Associare un gruppo di prenotazione di capacità esistente a un pool di nodi esistente (Anteprima)

Associare un gruppo di prenotazione di capacità esistente a un pool di nodi esistente usando il comando az aks nodepool update con il flag --crg-id.

  • Per i pool di nodi di zona, questa operazione avvia un aggiornamento in sequenza del pool di nodi di destinazione. Il processo di aggiornamento prevede l'esecuzione in sequenza della disattivazione e dello svuotamento di tutti i nodi, seguiti da un riavvio per applicare la modifica.
  • Per i pool di nodi non di zona (regionali), durante la fase di anteprima, ridimensionare prima il pool a zero, quindi applicare il gruppo di prenotazione della capacità.

Prerequisites

  • Installare la versione aks-preview dell'estensione 20.0.0b7 interfaccia della riga di comando di Azure o versioni successive prima di eseguire questo comando.

  • Assicurati che il gruppo di prenotazione della capacità disponga della capacità necessaria per la strategia di aggiornamento del pool di nodi. Quando maxSurge > 0, riservare capacità aggiuntiva per il valore picco massimo. Ad esempio, un pool di 10 nodi con maxSurge impostato su 2 può arrivare fino a 12 nodi nel corso di un aggiornamento. Questa capacità aggiuntiva non è necessaria solo per le implementazioni maxUnavailable o percorsi con scalabilità orizzontale a zero a livello di area.

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

Associare un gruppo di prenotazioni di capacità esistente a un pool di nodi di sistema

Per associare un gruppo di prenotazioni di capacità esistente a un pool di nodi di sistema, è necessario assegnare al cluster il ruolo Contributor utilizzando l'identità gestita assegnata dall'utente durante la creazione del cluster. È quindi possibile usare il --crg-id flag per associare il gruppo di prenotazioni di capacità al pool di nodi di sistema.

  • Creare un nuovo cluster AKS con l'identità gestita assegnata dall'utente e associarlo al gruppo di riserva della capacità usando i flag --assign-identity, --crg-id e il comando 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
    

Passaggi successivi: Gestire i pool di nodi in AKS

Per altre informazioni sulla gestione dei pool di nodi nel servizio Azure Kubernetes, vedere Gestire i pool di nodi nel servizio Azure Kubernetes.