Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo articolo, scoprirai il nuovo tipo di pool di nodi per macchine virtuali in AKS.
Con i pool di nodi delle Macchine Virtuali, AKS gestisce direttamente il provisioning e l'inizializzazione di ogni singolo nodo. Per i pool di nodi dei Virtual Machine Scale Sets, AKS gestisce il modello dei Virtual Machine Scale Sets e lo utilizza per ottenere la coerenza tra tutti i nodi del pool di nodi. Macchine virtuali pool di nodi consentono di orchestrare il cluster con macchine virtuali più adatte ai singoli carichi di lavoro.
Panoramica
Come funziona
Un pool di nodi è costituito da un set di macchine virtuali (VM), in cui sono designate dimensioni di macchina virtuale diverse per supportare diversi tipi di carichi di lavoro. Queste dimensioni delle macchine virtuali, denominate SKU, vengono classificate in famiglie diverse ottimizzate per scopi specifici. Per ulteriori informazioni, vedere SKU VM. Con i pool di nodi della macchina virtuale è possibile eseguire il ridimensionamento manuale di più SKU o la scalabilità automatica di singoli SKU.
Per abilitare il ridimensionamento di più dimensioni di macchine virtuali, il tipo di pool di nodi macchine virtuali utilizza un ScaleProfile oggetto che contiene configurazioni che indicano come il pool di nodi può essere ridimensionato, in particolare l'elenco desiderato di dimensioni delle macchine virtuali e la quantità di ciascuna dimensione. Un ManualScaleProfile è un profilo di scalabilità che specifica una dimensione della macchina virtuale desiderata e il conteggio totale di tale tipo nel pool di nodi. In un oggetto ManualScaleProfileè consentita una sola dimensione di macchina virtuale. È necessario creare un elemento separato ManualScaleProfile per ogni dimensione della macchina virtuale nel pool di nodi. Quando si crea un nuovo pool di nodi macchine virtuali, si aggiunge un profilo di scalabilità manuale iniziale per le dimensioni di una macchina virtuale usando il vm-size campo e includendo un oggetto node-count. È anche possibile aggiungere altri profili di scalabilità manuale seguendo le istruzioni per l'aggiunta di profili di scalabilità manuale.
I pool di nodi della macchina virtuale consentono la modalità Auto, il che significa che il pool di nodi può usare il ridimensionamento automatico del cluster. I pool di nodi di macchina virtuale in modalità Auto possono usare una sola dimensione di macchina virtuale alla volta.
Nota
Quando si crea un nuovo pool di nodi macchine virtuali, è possibile avere più profili di scalabilità ed è necessario almeno un profilo di scalabilità manuale nel pool di nodi. Quando si abilita il ridimensionamento automatico del cluster con pool di nodi di macchine virtuali, è necessario rimuovere tutti i profili di scalabilità usati dal pool di nodi per l'azione di ridimensionamento.
Vantaggi
I vantaggi del tipo di pool di nodi di macchine virtuali includono:
- Flessibilità: le specifiche del nodo possono essere aggiornate per adattarsi al carico di lavoro e alle esigenze correnti.
- Controllo ottimizzato: i controlli a livello di nodo singolo consentono di specificare e combinare nodi di specifiche diverse per sollevare le restrizioni da un singolo modello e migliorare la coerenza.
- Efficienza: è possibile ridurre il footprint del nodo per il cluster, semplificando i requisiti operativi.
Macchine virtuali pool di nodi offrono un'esperienza migliore per carichi di lavoro dinamici e requisiti di disponibilità elevata. I pool di nodi delle macchine virtuali consentono di configurare più macchine virtuali della stessa famiglia in un unico pool di nodi. Il carico di lavoro viene pianificato automaticamente sulle risorse disponibili configurate.
Confronto delle funzionalità
Nella tabella seguente viene illustrato come confrontare i pool di nodi Macchine virtuali con i pool di nodi del set di scalabilità standard.
| Tipo di pool di nodi | Funzionalità |
|---|---|
| pool di nodi macchine virtuali | È possibile aggiungere, rimuovere o aggiornare nodi in un pool di nodi. I tipi di macchina virtuale possono essere qualsiasi macchina virtuale dello stesso tipo di famiglia (ad esempio, serie D, serie A e così via). I pool di nodi delle macchine virtuali consentono anche il ridimensionamento manuale di più SKU. |
| Pool di nodi basato su set di scalabilità di macchine virtuali | È possibile aggiungere o rimuovere nodi della stessa dimensione e dello stesso tipo in un pool di nodi. Se si aggiungono nuove dimensioni della macchina virtuale al cluster, è necessario creare un nuovo pool di nodi. |
Quale opzione di scalabilità del calcolo dovrei scegliere su AKS?
A seconda delle esigenze del carico di lavoro, sono disponibili più esperienze di scalabilità di calcolo da considerare. Vedere i casi d'uso per ognuno di essi:
- Auto provisioning dei nodi: ideale per l'autoscaling di più SKU; pool di nodi di macchine virtuali: ideale per la scalabilità manuale multi-SKU e supporta l'autoscaling con SKU singolo.
- Set di scalabilità di macchine virtuali: supporta il ridimensionamento manuale per un singolo SKU e la scalabilità automatica per un singolo SKU.
Limiti
- Le dimensioni delle macchine virtuali specificate nel pool devono essere dello stesso tipo. Ad esempio, le macchine virtuali GPU e non GPU o x86 e ARM64 non possono trovarsi nello stesso pool di nodi.
- InifiniBand non è disponibile.
- Lo snapshot del node pool non è supportato.
- Tutte le dimensioni delle macchine virtuali selezionate in un pool di nodi devono essere appartenenti a una famiglia di macchine virtuali simile. Ad esempio, non è possibile combinare un tipo di macchina virtuale serie N con un tipo di macchina virtuale serie D nello stesso pool di nodi.
- I pool di nodi delle macchine virtuali consentono fino a cinque dimensioni diverse di macchine virtuali per ogni pool di nodi.
- Quando si usa il ridimensionamento automatico del cluster, è consentito un solo profilo di scalabilità. Per abilitare la scalabilità automatica del cluster in un pool di nodi di macchine virtuali con più profili di scalabilità, rimuovere tutti i profili di scalabilità tranne uno.
Prerequisiti
- Una sottoscrizione di Azure. Se non si ha un account, è possibile crearne uno gratuito.
- Azure CLI versione 2.73.0 o successiva installata e configurata. Per trovare la versione, eseguire
az --version. Per ulteriori informazioni sull'installazione o l'aggiornamento di Azure CLI, consulta Installare Azure CLI - Questa funzionalità richiede kubernetes versione 1.27 o successiva. Per aggiornare la versione di Kubernetes, consulta Aggiornare il cluster AKS
Importante
Requisito di rete virtuale personalizzata: se si distribuisce un pool di nodi di macchine virtuali in una rete virtuale personalizzata, il cluster deve usare un'identità gestita assegnata dall'utente con almeno le autorizzazioni Collaboratore rete nella subnet di destinazione. A differenza dei pool di nodi del set di scalabilità di macchine virtuali, i pool di nodi delle macchine virtuali si basano esclusivamente sull'identità del cluster per le operazioni di aggiunta alla subnet e non usano token di prima parte. I cluster che usano un'identità gestita assegnata dal sistema non riescono a eseguire la convalida preliminare durante la creazione o l'aggiornamento di un pool di nodi di macchine virtuali in una rete virtuale personalizzata, restituendo un InvalidParameter errore. Per altre informazioni sulla configurazione di un'identità gestita assegnata dall'utente per il cluster, vedere Usare un'identità gestita nel servizio Azure Kubernetes.
Creare un cluster AKS con pool di nodi di macchine virtuali
Nota
In un profilo di scalabilità è consentita una sola dimensione della macchina virtuale e il limite massimo è di cinque profili di scalabilità di macchine virtuali per un pool di nodi Macchine virtuali.
Creare un cluster AKS con pool di nodi di Macchine Virtuali usando il az aks create comando con il --vm-set-type flag impostato su "VirtualMachines".
L'esempio seguente crea un cluster denominato myAKSCluster con un pool di nodi macchine virtuali contenente due nodi, genera chiavi SSH, imposta lo SKU del servizio di bilanciamento del carico su standard e imposta la versione di Kubernetes su 1.31.0:
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--vm-set-type "VirtualMachines" \
--vm-sizes "Standard_D4s_v3"
--node-count 2 \
--kubernetes-version 1.31.0
Creare un cluster AKS (servizio Azure Kubernetes) con pool di nodi di macchine virtuali (Virtual Machines) in una rete virtuale personalizzata
Quando si distribuiscono pool di nodi di macchine virtuali in una rete virtuale personalizzata, prima di creare il cluster, è necessario creare un'identità gestita assegnata dall'utente e concedergli le autorizzazioni Collaboratore rete nella rete virtuale.
Creare una rete virtuale e una subnet.
az network vnet create \ --resource-group myResourceGroup \ --name myVnet \ --address-prefixes 10.1.0.0/16 \ --subnet-name mySubnet \ --subnet-prefix 10.1.0.0/24Ottenere l'ID risorsa della subnet.
SUBNET_ID=$(az network vnet subnet show \ --resource-group myResourceGroup \ --vnet-name myVnet \ --name mySubnet \ --query id \ --output tsv)Creare un'identità gestita assegnata dall'utente.
az identity create \ --name myAKSIdentity \ --resource-group myResourceGroupOttieni l'ID principale e l'ID risorsa dell'identità gestita.
IDENTITY_PRINCIPAL_ID=$(az identity show \ --name myAKSIdentity \ --resource-group myResourceGroup \ --query principalId \ --output tsv) IDENTITY_RESOURCE_ID=$(az identity show \ --name myAKSIdentity \ --resource-group myResourceGroup \ --query id \ --output tsv)Assegnare il ruolo di Collaboratore di Rete all'identità gestita sulla rete virtuale.
VNET_ID=$(az network vnet show \ --resource-group myResourceGroup \ --name myVnet \ --query id \ --output tsv) az role assignment create \ --assignee $IDENTITY_PRINCIPAL_ID \ --role "Network Contributor" \ --scope $VNET_IDLa propagazione delle autorizzazioni concesse all'identità gestita del cluster può richiedere fino a 60 minuti. Usare il comando seguente per controllare lo stato.
Crea il cluster AKS con pool di nodi di macchine virtuali nella tua rete virtuale personalizzata.
az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --vm-set-type "VirtualMachines" \ --vm-sizes "Standard_D4s_v3" \ --node-count 2 \ --vnet-subnet-id $SUBNET_ID \ --assign-identity $IDENTITY_RESOURCE_ID
Creare un cluster con Windows abilitato e un pool di nodi macchina virtuale Windows
I pool di nodi macchina virtuale sono disponibili nei cluster abilitati per Windows. L'esempio seguente crea un cluster denominato myAKSCluster con un pool di nodi macchine virtuali. Questi passaggi consentono di creare un pool di sistema Linux in un primo momento.
Creare un nome utente da usare come credenziali di amministratore per i nodi di Windows Server nel cluster. I comandi seguenti richiedono un nome utente e lo imposta su
WINDOWS_USERNAMEper l'uso in un comando successivo.echo "Please enter the username to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_USERNAMECreare una password per il nome utente amministratore creato nel passaggio precedente. La password deve avere un minimo di 14 caratteri e soddisfare i requisiti di complessità delle password di Windows Server.
echo "Please enter the password to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_PASSWORDCreare un cluster AKS con pool di nodi di tipo Macchine Virtuali abilitati per Windows usando il comando
az aks createcon il flag--vm-set-typeimpostato su"VirtualMachines".az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 2 \ --enable-addons monitoring \ --generate-ssh-keys \ --windows-admin-username $WINDOWS_USERNAME \ --windows-admin-password $WINDOWS_PASSWORD \ --vm-set-type "VirtualMachines" \ --network-plugin azureAggiungere un pool di nodi Macchine Virtuali a un cluster abilitato per Windows esistente usando il comando
az aks nodepool addcon il flag--vm-set-typeimpostato su"VirtualMachines". L'esempio seguente aggiunge un pool di nodi macchine virtuali denominato npwin al cluster myAKSCluster :az aks nodepool add --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --os-type Windows \ --name npwin \ --vm-sizes "Standard_D2s_V3" \ --node-count 1 --vm-set-type "VirtualMachines"
Aggiungere un pool di nodi Macchine virtuali a un cluster esistente
Aggiungi un pool di nodi di macchine virtuali a un cluster esistente utilizzando il comando az aks nodepool add con l'opzione --vm-set-type impostata su "VirtualMachines".
Nell'esempio seguente viene aggiunto un pool di nodi Macchine virtuali denominato myvmpool al cluster myAKSCluster. Il pool di nodi crea un ManualScaleProfile con --vm-sizes impostato su Standard_D4s_v3 e un --node-count di 3:
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myvmpool \
--vm-set-type "VirtualMachines" \
--vm-sizes "Standard_D4s_v3" \
--node-count 3
Aggiungere un profilo di scalabilità manuale a un pool di nodi
Aggiungere un profilo di scalabilità manuale a un pool di nodi usando az aks nodepool manual-scale add con il --vm-sizes flag impostato su "Standard_D2s_v3" e il node-count set su 2.
L'esempio seguente aggiunge un profilo di scalabilità manuale al pool di nodi myvmpool nel cluster myAKSCluster. Il pool di nodi include due nodi con uno SKU VM di Standard_D2s_v3:
az aks nodepool manual-scale add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myvmpool \
--vm-sizes "Standard_D2s_v3" \
--node-count 2
Aggiornare un profilo di scalabilità manuale esistente
Aggiornare un profilo di scalabilità manuale esistente in un pool di nodi usando il comando az aks nodepool manual-scale update con il flag --vm-sizes impostato su "Standard_D2s_v3".
Nota
Usare il --current-vm-sizes parametro per specificare le dimensioni del pool di nodi esistente da aggiornare. È possibile aggiornare --vm-sizes e/o --node-count. Quando si usano altri strumenti o API REST, è necessario passare un campo completo di agentPoolProfiles.virtualMachinesProfile.scale durante l'aggiornamento del profilo di scalabilità del pool di nodi.
L'esempio seguente aggiorna un profilo di scalabilità manuale per il pool di nodi myvmpool nel cluster myAKSCluster. Il comando aggiorna il numero di nodi a cinque e modifica lo SKU della macchina virtuale da Standard_D4s_v3 a Standard_D8s_v3:
az aks nodepool manual-scale update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myvmpool \
--current-vm-sizes "Standard_D4s_v3" \
--vm-sizes "Standard_D8s_v3" \
--node-count 5
Eliminare un profilo di scalabilità manuale
Eliminare un profilo di scalabilità manuale esistente usando il comando az aks nodepool manual-scale delete.
Nota
Il --current-vm-sizes parametro specifica le dimensioni del pool di nodi esistente da eliminare. Quando si usano altri strumenti o API REST per aggiornare il profilo di scala del pool di nodi, è necessario fornire un campo agentPoolProfiles.virtualMachinesProfile.scale completo.
Nell'esempio seguente viene eliminato il profilo di scalabilità manuale per lo SKU della Standard_D8s_v3 macchina virtuale nel pool di nodi myvmpool .
az aks nodepool manual-scale delete \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myvmpool \
--current-vm-sizes "Standard_D8s_v3"
Ridimensionamento automatico del cluster con pool di nodi di macchine virtuali (anteprima)
I pool di nodi delle macchine virtuali supportano il ridimensionamento automatico del cluster. Questa opzione può essere abilitata usando il flag --enable-cluster-autoscaler durante la creazione del cluster, aggiungendo un nuovo pool di nodi o aggiornando un pool di nodi manuale esistente.
Quando si usa il ridimensionamento automatico del cluster con i pool di nodi della macchina virtuale,
- Aumento delle prestazioni: il ridimensionamento automatico risponde alla pressione dei pod in sospeso e aumenta il numero di nodi di un pool di nodi con lo stesso tipo di SKU singolo in tale pool di nodi.
- Ridimensionamento: un nodo specifico viene scelto dall'autoscaler in base all'utilizzo del nodo. Puoi configurare
scale-down-utilization-thresholdper regolare quando l'autoscaling del cluster attiva un'azione di ridimensionamento. Per altre informazioni sulla configurazione della scalabilità automatica, vedere la documentazione del ridimensionamento automatico del cluster.
Limiti
- Questa funzionalità è disponibile solo nel cloud pubblico.
- I nodi GPU non sono attualmente supportati.
Requisiti
- Per abilitare la scalabilità automatica del cluster con pool di nodi di macchine virtuali, il pool di nodi deve usare una sola dimensione della macchina virtuale. Tutti gli altri profili di scalabilità manuale devono essere eliminati prima di abilitare il ridimensionamento automatico del cluster.
Installare l'estensione aks-preview
Importante
Le funzionalità di anteprima di AKS sono disponibili su base self-service, su scelta. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime del servizio Azure Kubernetes sono parzialmente coperte dal supporto clienti con la massima diligenza possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:
- Installare o aggiornare l'estensione dell'interfaccia a riga di comando di Azure utilizzando il comando
aks-previewoaz extension add:
# Install the aks-preview extension
az extension add --name aks-preview
# Update the aks-preview extension
az extension update --name aks-preview
Registrare il flag di funzionalità
Registrare il flag VMsAgentAutoscalePreview di funzionalità di anteprima usando il az feature register comando :
az feature register --namespace Microsoft.ContainerService --name VMsAgentPoolAutoscalePreview
Creare un cluster di AKS con pool di nodi di macchine virtuali e autoscaler del cluster abilitato
- Creare un cluster AKS con pool di nodi di macchine virtuali usando il comando
az aks createcon il flag--vm-set-typeimpostato su"VirtualMachines"e con il flag--enable-cluster-autoscaler.
L'esempio seguente crea un cluster denominato myAKSCluster con un pool di nodi macchine virtuali con dimensioni del pool di nodi "Standard_D4s_v3" numero minimo di nodi pari a 2, numero massimo di nodi pari a 5 e imposta la versione di Kubernetes su 1.32.5:
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--vm-set-type "VirtualMachines" \
--node-vm-size "Standard_D4s_v3"
--min-count 2 \
--max-count 5 \
--kubernetes-version 1.32.5
Aggiungere un pool di nodi di macchine virtuali a un cluster esistente con autoscaler del cluster abilitato.
- Creare un pool di nodi di Macchine virtuali usando il
az aks nodepool addcomando con il--vm-set-typeflag impostato su"VirtualMachines"e con il flag--enable-cluster-autoscaler.
L'esempio seguente aggiunge il pool di nodi delle macchine virtuali myvmpool con il ridimensionamento automatico del cluster abilitato a un cluster denominato myAKSCluster usando le dimensioni della macchina virtuale "Standard_D4s_v3" e un numero minimo di nodi pari a 2 e numero massimo di 5:
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myvmpool \
--vm-set-type "VirtualMachines" \
--node-vm-size "Standard_D4s_v3" \
--enable-cluster-autoscaler
--min-count 2 \
--max-count 5 \
Aggiornare le impostazioni di scalabilità automatica del cluster per un pool di nodi di macchine virtuali con scalabilità automatica del cluster abilitata
- Aggiornare le impostazioni della quantità di nodi dell'autoscaler del cluster per un pool di nodi di Macchine Virtuali utilizzando il comando
az aks nodepool updatecon il flag--vm-set-typeimpostato su"VirtualMachines"e con il flag--update-cluster-autoscaler.
L'esempio seguente aggiorna le impostazioni per il pool di nodi delle macchine virtuali myvmpool nel cluster denominato myAKSCluster usando le dimensioni della macchina virtuale "Standard_D4s_v3":
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myvmpool \
--update-cluster-autoscaler \
--node-vm-size "Standard_D4s_v3" \
--min-count 2 \
--max-count 5
Aggiornare un pool di nodi di Macchine virtuali dalla modalità manuale al ridimensionamento automatico del cluster abilitato
Nota
L'aggiornamento del pool di nodi di macchine virtuali dalla modalità manuale alla modalità automatica è consentito solo quando il pool di nodi ha un unico profilo di scalabilità manuale.
Se il pool di nodi macchina virtuale ha più profili di scalabilità manuale, è necessario rimuovere tutti i profili di scalabilità manuale, ad eccezione delle dimensioni selezionate desiderate per la scalabilità automatica. Ecco un esempio che elimina il profilo di scalabilità manuale nel pool di nodi "myvmpool" per la dimensione VM Standard_D8s_v3:
az aks nodepool manual-scale delete \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myvmpool \
--current-vm-sizes "Standard_D8s_v3"
L'esempio seguente aggiorna il pool di nodi delle macchine virtuali myvmpool nel cluster denominato myAKSCluster dalla Manual modalità alla Auto modalità:
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myvmpool \
--enable-cluster-autoscaler \
--min-count 2 \
--max-count 5
Disabilitare la scalabilità automatica del cluster nel pool di nodi delle macchine virtuali
È possibile disabilitare il ridimensionamento automatico del cluster o modificare il cluster dalla Auto modalità alla Manual modalità.
L'esempio seguente aggiorna il pool di nodi VIrtual Machines myvmpool nel cluster denominato myAKSCluster dalla Manual modalità alla Auto modalità:
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myvmpool \
--disable-cluster-autoscaler
Passaggi successivi
In questo articolo si è appreso come utilizzare i pool dei nodi delle macchine virtuali nel servizio Azure Kubernetes. Per ulteriori informazioni sui pool di nodi in AKS, vedere Creare pool di nodi.