Gestire i pool di nodi di sistema in Servizio Azure Kubernetes (AKS)

In Servizio Azure Kubernetes (AKS) i nodi della stessa configurazione vengono raggruppati in pool node. I pool di nodi contengono le macchine virtuali sottostanti che eseguono le applicazioni. I pool di nodi di sistema e i pool di nodi utente sono due diverse modalità di pool di nodi per i cluster del servizio Azure Kubernetes. Questo articolo spiega come gestire i pool di nodi di sistema in AKS. Per informazioni su come usare più pool di nodi, vedere Creare pool di nodi.

  • Pool di nodi di sistema: lo scopo principale è ospitare pod di sistema critici come CoreDNS e metrics-server. I pool di nodi di sistema non devono essere usati per eseguire l'applicazione. I pool di nodi di sistema usano Ubuntu Linux o Azure Linux.
  • Pool di nodi utente: lo scopo principale è ospitare i pod dell'applicazione e isolare le applicazioni dal pool di nodi di sistema. Questo isolamento impedisce a un'applicazione di causare instabilità con il pool di nodi di sistema del cluster. I pool di nodi utente possono usare Ubuntu Linux, Azure Linux o Windows.

Un cluster di produzione AKS con un singolo pool di nodi di sistema deve contenere almeno due nodi. La raccomandazione per un cluster del servizio Azure Kubernetes di produzione con un singolo pool di nodi di sistema prevede almeno tre nodi per migliorare la tolleranza di errore e le zone di disponibilità. Ad esempio, il numero di nodi predefinito del comando az aks create è tre e crea un nuovo cluster con un singolo pool di nodi di sistema Linux e tre nodi Linux.

È possibile, ma non consigliabile, pianificare i pod dell'applicazione in un pool di nodi di sistema se nel tuo cluster AKS è presente un solo pool di nodi. Una soluzione migliore consiste nel creare un pool di nodi utente per l'applicazione.

Operazioni preliminari

È necessaria la interfaccia della riga di comando di Azure versione 2.3.1 o successiva installata e configurata. Per trovare la versione, eseguire il comando az --version. Se è necessario installare o aggiornare, vedere Installare interfaccia della riga di comando di Azure.

È necessaria la Azure PowerShell versione 7.5.0 o successiva installata e configurata. Per trovare la versione, eseguire il comando Get-InstalledModule -Name Az. Se è necessario installare o aggiornare, vedere Installare Azure PowerShell.

Prima di iniziare, verificare di aver soddisfatto i prerequisiti seguenti:

  • Una sottoscrizione di Azure attiva.
  • Terraform installato localmente.
  • CLI di Azure installata ed è stato effettuato l'accesso.
  • Autorizzazioni per creare e gestire le risorse AKS.

Impostare la sottoscrizione:

az account set --subscription <subscription-id>

Limiti

Quando si creano e si gestiscono cluster AKS che supportano pool di nodi di sistema, si applicano le limitazioni seguenti:

  • Consulta Quote, restrizioni relative alle dimensioni delle macchine virtuali e disponibilità delle regioni in AKS.
  • Per impostare una modalità pool di nodi, è necessario usare una versione API di 2020-03-01 o versione successiva. I cluster creati nelle versioni dell'API precedenti a 2020-03-01 contengono solo pool di nodi utente, ma possono essere migrati per contenere pool di nodi di sistema seguendo i passaggi della modalità di aggiornamento del pool.
  • Il nome di un pool di nodi può contenere solo caratteri alfanumerici minuscoli e deve iniziare con una lettera minuscola. Per i pool di nodi Linux, la lunghezza deve essere compresa tra 1 e 12 caratteri. Per i pool di nodi Windows, la lunghezza deve essere tra uno e sei caratteri.
  • La modalità di un pool di nodi è una proprietà obbligatoria e deve essere impostata in modo esplicito quando si usano modelli di Azure Resource Manager o chiamate API dirette.

Pool di nodi utente e di sistema

Per un pool di nodi di sistema, AKS assegna automaticamente l'etichetta kubernetes.azure.com/mode: system ai relativi nodi. In questo modo, AKS preferisce allocare i pod di sistema nei pool di nodi che contengono questa etichetta. Questa etichetta non impedisce di pianificare i pod dell'applicazione nei pool di nodi di sistema. È tuttavia consigliabile isolare i pod di sistema critici dai pod dell'applicazione per evitare che i pod dell'applicazione non configurati correttamente o non autorizzati eliminino accidentalmente i pod di sistema.

È possibile applicare questo comportamento creando un pool di nodi di sistema dedicato. Usare il taint CriticalAddonsOnly=true:NoSchedule per impedire che i pod dell'applicazione vengano schedulati nei pool di nodi di sistema.

I pool di nodi di sistema hanno le restrizioni seguenti:

  • I pool di nodi di sistema devono supportare almeno 30 pod come descritto dalla formula di valore minimo e massimo per i pod.
  • I pool osType di sistema devono essere Linux.
  • I pool di nodi utente osType possono essere Linux o Windows.
  • I pool di sistema devono contenere almeno due nodi, ma la raccomandazione è di tre nodi. I pool di nodi utente possono contenere zero o più nodi.
  • I pool di nodi di sistema richiedono uno SKU di vm di almeno 4 vCPU e 4 GB di memoria.
  • Le macchine virtuali serie B non sono supportate per i pool di nodi di sistema.
  • È consigliabile prevedere almeno tre nodi di 8 vCPU o due nodi di almeno 16 vCPU (ad esempio, Standard_DS4_v2), soprattutto per cluster di grandi dimensioni (repliche multiple del pod coreDNS, componenti aggiuntivi 3-4+ e così via).
  • I pool di nodi spot richiedono i pool di nodi degli utenti.
  • L'aggiunta di un altro pool di nodi di sistema o la modifica di quale pool di nodi è un pool di nodi di sistema non sposta automaticamente i pod di sistema. I pod di sistema possono continuare a essere eseguiti nello stesso pool di nodi, anche se lo si modifica in un pool di nodi utente. Se si elimina o si ridimensiona un pool di nodi che esegue pod di sistema che in precedenza erano un pool di nodi di sistema, questi pod di sistema vengono distribuiti nuovamente con una pianificazione preferenziale nel nuovo pool di nodi di sistema.

È possibile eseguire le operazioni seguenti con i pool di nodi:

  • Creare un pool di nodi di sistema dedicato (è preferibile pianificare i pod di sistema nei pool di nodi di mode:system)
  • Modificare un pool di nodi di sistema in modo che sia un pool di nodi utente, purché vi sia un altro pool di nodi di sistema che possa sostituirlo nel cluster del servizio Azure Kubernetes.
  • Modificare un pool di nodi utente in modo che sia un pool di nodi di sistema.
  • Eliminare i pool di nodi utente.
  • È possibile eliminare i pool di nodi di sistema, purché nel cluster AKS sia presente un altro pool di nodi di sistema.
  • Un cluster AKS può contenere più pool di nodi di sistema e richiede almeno un pool di nodi di sistema.
  • Se si desidera modificare varie impostazioni non modificabili nei pool di nodi esistenti, è possibile creare nuovi pool di nodi per sostituirli. Un esempio consiste nell'aggiungere un nuovo pool di nodi con una nuova maxPods impostazione ed eliminare il pool di nodi precedente.
  • Usare l'affinità dei nodi per richiedere o stabilire quali nodi pianificare in base alle etichette dei nodi. È possibile impostare da key akubernetes.azure.com, da operator a Ine values di user o system su YAML, applicando questa definizione usando kubectl apply -f yourYAML.yaml.

Creare un nuovo cluster AKS con un pool di nodi di sistema

Quando si crea un nuovo cluster del servizio Azure Kubernetes, per impostazione predefinita il pool di nodi iniziale viene impostato su una modalità di tipo System. Quando si creano nuovi pool di nodi con az aks nodepool add, tali pool di nodi sono pool di nodi utente, a meno che non si specifichi esplicitamente il parametro modalità.

Creare variabili per il gruppo di risorse, il nome del cluster e la posizione per i comandi usati in questo articolo. Questo articolo specifica i valori oppure è possibile usare valori personalizzati.

export RESOURCE_GROUP="myResourceGroup"
export CLUSTER_NAME="myAKSCluster"
export LOCATION="eastus"
export NEW_SYSTEM_NP="systempool"
export NEW_NODE_POOL="mynodepool"

L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nell'area eastus.

az group create --name $RESOURCE_GROUP --location $LOCATION

Usare il comando az aks create per creare un cluster del servizio Azure Kubernetes. L'esempio seguente crea un cluster denominato myAKSCluster con un pool di sistema dedicato contenente due nodi. Per i carichi di lavoro di produzione, assicurarsi di usare pool di nodi di sistema con almeno tre nodi. Il completamento di questa operazione richiede alcuni minuti.

az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --node-count 2 --generate-ssh-keys

Quando si crea un nuovo cluster del servizio Azure Kubernetes, per impostazione predefinita il pool di nodi iniziale viene impostato su una modalità di tipo system. Quando si creano nuovi pool di nodi con New-AzAksNodePool, si stanno creando pool di nodi utente. La modalità di un pool di nodi può essere aggiornata in qualsiasi momento.

Creare variabili per il gruppo di risorse, il nome del cluster e la posizione per i comandi usati in questo articolo. Questo articolo specifica i valori oppure è possibile usare valori personalizzati.

$ResourceGroup="myResourceGroup"
$ClusterName="myAKSCluster"
$Location="eastus"
$NewSystemNP="systempool"
$NewNodePool="mynodepool"

L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nell'area eastus.

New-AzResourceGroup -ResourceGroupName $ResourceGroup -Location $Location

Usare il cmdlet New-AzAksCluster per creare un cluster AKS. L'esempio seguente crea un cluster denominato myAKSCluster con un pool di sistema dedicato contenente due nodi. Per i carichi di lavoro di produzione, assicurarsi di usare pool di nodi di sistema con almeno tre nodi. Il completamento dell'operazione richiede alcuni minuti.

New-AzAksCluster -ResourceGroupName $ResourceGroup -Name $ClusterName -NodeCount 2 -GenerateSshKey

Usare la seguente configurazione di Terraform per creare un cluster AKS con un pool di nodi di sistema.

Creare il file di configurazione terraform

Creare un file denominato main.tfe aggiungere la configurazione condivisa seguente:

terraform {
 required_version = ">= 1.0"
 required_providers {
   azurerm = {
     source  = "hashicorp/azurerm"
     version = "~> 4.0"
   }
 }
}
provider "azurerm" {
 features {}
}

Creare un gruppo di risorse

Aggiungere la configurazione del gruppo di risorse seguente:

resource "azurerm_resource_group" "rg" {
 name     = "aks-system-pool-rg"
 location = "East US"
}

Un gruppo di risorse viene usato per organizzare e gestire le risorse Azure.

Creare un nuovo cluster AKS

Aggiungere la seguente configurazione per creare un cluster di AKS. Il pool di nodi iniziale viene creato come pool di nodi di sistema ed è necessario per l'operazione del cluster.

resource "azurerm_kubernetes_cluster" "aks" {
 name                = "aks-system-pool-cluster"
 location            = azurerm_resource_group.rg.location
 resource_group_name = azurerm_resource_group.rg.name
 dns_prefix          = "akssystempool"
 default_node_pool {
   name                = "systemnp"
   vm_size             = "Standard_D4s_v5"
   node_count          = 2
   min_count           = 2
   max_count           = 3
   max_pods            = 30
   enable_auto_scaling = true
 }
 identity {
   type = "SystemAssigned"
 }
 network_profile {
   network_plugin    = "azure"
   load_balancer_sku = "standard"
 }
}

Aggiungere un pool di nodi di sistema dedicato a un cluster AKS esistente

È possibile aggiungere uno o più pool di nodi di sistema ai cluster AKS esistenti. È consigliabile pianificare i pod dell'applicazione nei pool di nodi utente e dedicare i pool di nodi di sistema solo ai pod di sistema critici. Questa separazione impedisce ai pod dell'applicazione non autorizzati di eliminare per errore i pod del sistema. Applicare questo comportamento con il CriticalAddonsOnly=true:NoScheduletaint per i pool di nodi di sistema.

Il comando seguente aggiunge un pool di nodi dedicato del tipo modalità System con tre nodi. Il az aks nodepool add comando aggiunge tre nodi per impostazione predefinita, ma si usa il --node-count parametro per specificare il numero di nodi desiderati.

az aks nodepool add \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_SYSTEM_NP \
  --node-count 3 \
  --node-taints CriticalAddonsOnly=true:NoSchedule \
  --mode System

È possibile aggiungere uno o più pool di nodi di sistema ai cluster AKS esistenti. È consigliabile pianificare i pod dell'applicazione nei pool di nodi utente e dedicare i pool di nodi di sistema solo ai pod di sistema critici. L'aggiunta di più pool di nodi di sistema impedisce ai pod applicativi malevoli di eliminare accidentalmente i pod di sistema. Applicare questo comportamento con il CriticalAddonsOnly=true:NoScheduletaint per i pool di nodi di sistema.

Il comando seguente aggiunge un pool di nodi dedicato del tipo modalità System con tre nodi.

$systempoolparams = @{
  ResourceGroupName = $ResourceGroup
  ClusterName = $ClusterName
  Name = $NewSystemNP
  Count = 3
  Mode = 'System'
  NodeTaint = 'CriticalAddonsOnly=true:NoSchedule'
}

New-AzAksNodePool @systempoolparams

Aggiungere un secondo pool di nodi configurato come pool di nodi di sistema per isolare i carichi di lavoro critici del sistema.

resource "azurerm_kubernetes_cluster_node_pool" "system_pool" {
 name                  = "systempool"
 kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
 vm_size               = "Standard_D4s_v5"
 node_count            = 3
 mode                  = "System"
 max_pods              = 30
 node_taints = [
   "CriticalAddonsOnly=true:NoSchedule"
 ]
}

Questa configurazione applica il CriticalAddonsOnly=true:NoSchedule taint in modo che i carichi di lavoro dell'applicazione non siano pianificati nel pool di nodi di sistema dedicato.

Aggiungere un pool di nodi utente

Per separare i carichi di lavoro dell'applicazione dai componenti di sistema, aggiungere un pool di nodi utente.

resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {
 name                  = "userpool"
 kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
 vm_size               = "Standard_D4s_v5"
 node_count            = 2
 mode                  = "User"
 max_pods              = 30
 enable_auto_scaling = true
 min_count           = 2
 max_count           = 4
}

I pool di nodi utente forniscono un ambiente dedicato per i pod dell'applicazione.

Controllo finale prima della distribuzione

Il tuo elemento main.tf deve includere:

  • Configurazione di Terraform e fornitori
  • Gruppo di risorse
  • Cluster AKS con il pool di nodi di sistema predefinito
  • Pool di nodi di sistema dedicato
  • Pool di nodi utente facoltativo, se necessario

Una configurazione completata è simile all'esempio seguente:

terraform {
 required_version = ">= 1.0"
 required_providers {
   azurerm = {
     source  = "hashicorp/azurerm"
     version = "~> 4.0"
   }
 }
}
provider "azurerm" {
 features {}
}
resource "azurerm_resource_group" "rg" {
 name     = "aks-system-pool-rg"
 location = "East US"
}
resource "azurerm_kubernetes_cluster" "aks" {
 name                = "aks-system-pool-cluster"
 location            = azurerm_resource_group.rg.location
 resource_group_name = azurerm_resource_group.rg.name
 dns_prefix          = "akssystempool"
 default_node_pool {
   name                = "systemnp"
   vm_size             = "Standard_D4s_v5"
   node_count          = 2
   min_count           = 2
   max_count           = 3
   max_pods            = 30
   enable_auto_scaling = true
 }
 identity {
   type = "SystemAssigned"
 }
 network_profile {
   network_plugin    = "azure"
   load_balancer_sku = "standard"
 }
}
resource "azurerm_kubernetes_cluster_node_pool" "system_pool" {
 name                  = "systempool"
 kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
 vm_size               = "Standard_D4s_v5"
 node_count            = 3
 mode                  = "System"
 max_pods              = 30
 node_taints = [
   "CriticalAddonsOnly=true:NoSchedule"
 ]
}
resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {
 name                  = "userpool"
 kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
 vm_size               = "Standard_D4s_v5"
 node_count            = 2
 mode                  = "User"
 max_pods              = 30
 enable_auto_scaling = true
 min_count           = 2
 max_count           = 4
}

Convalidare la configurazione

Eseguire i comandi seguenti per formattare, inizializzare e convalidare la configurazione:

terraform fmt
terraform init
terraform validate

Esaminare il piano di esecuzione

Eseguire il comando seguente per esaminare il piano di esecuzione prima della distribuzione:

terraform plan

Applicare la configurazione

Eseguire il comando seguente per creare il cluster e i pool di nodi di AKS (Azure Kubernetes Service):

terraform apply

Verificare la distribuzione

Controllare la configurazione del pool di nodi di sistema dedicato:

az aks nodepool show \
 --resource-group aks-system-pool-rg \
 --cluster-name aks-system-pool-cluster \
 --name systempool

Esaminare l'output e verificare che il pool di nodi sia configurato con mode impostato su System. Connettersi al cluster ed elencare i nodi:

az aks get-credentials \
 --resource-group aks-system-pool-rg \
 --name aks-system-pool-cluster

kubectl get nodes

Visualizzare i dettagli per il pool di nodi

È possibile controllare i dettagli del pool di nodi con il comando seguente.

az aks nodepool show \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_SYSTEM_NP \
  --query "{Count:count, Mode:mode, NodePool:name, NodeTaint:nodeTaints, ResourceGroup:resourceGroup}"

Viene definita una modalità di tipo Sistema per i pool di nodi di sistema e una modalità di tipo Utente per i pool di nodi utente. Per il pool di sistema, verificare che la proprietà nodeTaints sia impostata su CriticalAddonsOnly=true:NoSchedule, così da impedire ai pod dell'applicazione di essere assegnati a questo pool di nodi.

{
  "Count": 3,
  "Mode": "System",
  "NodePool": "systempool",
  "NodeTaint": [
    "CriticalAddonsOnly=true:NoSchedule"
  ],
  "ResourceGroup": "myResourceGroup"
}

È possibile controllare i dettagli del pool di nodi con il comando seguente.

Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewSystemNP |
  Select-Object -Property Count, Mode, Name, NodeTaints

Viene definita una modalità di tipo Sistema per i pool di nodi di sistema e una modalità di tipo Utente per i pool di nodi utente. Per il pool di sistema, verificare che il taint sia impostato su CriticalAddonsOnly=true:NoSchedule, così da impedire ai pod dell'applicazione di essere assegnati a questo pool di nodi.

Count Mode   Name       NodeTaints
----- ----   ----       ----------
    3 System systempool {CriticalAddonsOnly=true:NoSchedule}

Questo passaggio è stato incluso nella sezione precedente Verificare il passaggio di distribuzione .

Viene definita una modalità di tipo Sistema per i pool di nodi di sistema e una modalità di tipo Utente per i pool di nodi utente. Per il pool di sistema, verificare che la proprietà nodeTaints sia impostata su CriticalAddonsOnly=true:NoSchedule, così da impedire ai pod dell'applicazione di essere assegnati a questo pool di nodi.

Aggiornare il sistema del cluster esistente e i pool di nodi utente

Nota

Per impostare una modalità pool di nodi di sistema, è necessario usare una versione API di 2020-03-01 o versione successiva. Di conseguenza, i cluster creati nelle versioni dell'API precedenti a 2020-03-01 contengono solo pool di nodi utente. Per ricevere funzionalità e vantaggi del pool di nodi di sistema nei cluster meno recenti, aggiornare la modalità dei pool di nodi esistenti con i comandi seguenti nella versione interfaccia della riga di comando di Azure più recente.

È possibile modificare le modalità sia per i pool di nodi di sistema che per i pool di nodi utente. È possibile modificare un pool di nodi di sistema in un pool di nodi utente solo se esiste già un altro pool di nodi di sistema nel cluster del servizio Azure Kubernetes.

Eseguire questo comando per creare un nuovo pool di nodi in modalità di sistema.

az aks nodepool add \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL \
  --node-count 3 \
  --mode System

È possibile verificare la modalità con il comando seguente.

az aks nodepool show \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL \
  --query mode --output tsv
System

Eseguire questo comando per modificare un pool di nodi di sistema in un pool di nodi utente.

az aks nodepool update \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL \
  --mode User

È possibile verificare la modalità modificata con il comando seguente.

az aks nodepool show \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL \
  --query mode --output tsv
User

Nota

Per impostare una modalità pool di nodi di sistema, è necessario usare una versione API di 2020-03-01 o versione successiva. Di conseguenza, i cluster creati nelle versioni dell'API precedenti a 2020-03-01 contengono solo pool di nodi utente. Per ricevere funzionalità e vantaggi del pool di nodi di sistema nei cluster meno recenti, aggiornare la modalità dei pool di nodi esistenti con i comandi seguenti nella versione Azure PowerShell più recente.

È possibile modificare le modalità sia per i pool di nodi di sistema che per i pool di nodi utente. È possibile modificare un pool di nodi di sistema in un pool di nodi utente solo se esiste già un altro pool di nodi di sistema nel cluster del servizio Azure Kubernetes.

Eseguire questo comando per creare un nuovo pool di nodi in modalità di sistema.

$newpoolparams = @{
  ResourceGroupName = $ResourceGroup
  ClusterName = $ClusterName
  Name = $NewNodePool
  Count = 3
  Mode = 'System'
}

New-AzAksNodePool @newpoolparams

È possibile verificare la modalità con il comando seguente.

Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool |
  Select-Object -Property Mode
Mode
----
System

Eseguire questo comando per modificare un pool di nodi di sistema in un pool di nodi utente.

$updateuserpoolparams = @{
  ResourceGroupName = $ResourceGroup
  ClusterName = $ClusterName
  Name = $NewNodePool
  Mode = 'User'
}

Update-AzAksNodePool @updateuserpoolparams

È possibile verificare la modalità con il comando seguente.

Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool |
  Select-Object -Property Mode
Mode
----
User

Per modificare la modalità di un pool di nodi esistente, aggiornare il valore mode nella configurazione di Terraform e applicare nuovamente la distribuzione.

Ad esempio, la configurazione seguente modifica il user_pool pool di nodi in un pool di nodi di sistema:

resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {
 name                  = "userpool"
 kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
 vm_size               = "Standard_D4s_v5"
 node_count            = 2
 mode                  = "System"
 max_pods              = 30
 enable_auto_scaling = true
 min_count           = 2
 max_count           = 4
}

Dopo aver aggiornato la configurazione, eseguire:

terraform plan
terraform apply

Per modificare il pool di nodi di sistema dedicato in un pool di nodi utente, aggiornare il valore mode per system_pool a User e riapplicare la configurazione.

Eliminare un pool di nodi di sistema

Nota

Per usare i pool di nodi di sistema nei cluster di Azure Kubernetes Service (AKS) prima della versione 2020-03-01 dell'API, aggiungere un nuovo pool di nodi di sistema, quindi eliminare il pool di nodi predefinito originale.

È necessario disporre di almeno due pool di nodi di sistema nel cluster del servizio Azure Kubernetes prima di poterli eliminare.

az aks nodepool delete \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL

Dopo aver eliminato il pool di nodi di sistema, è necessario avere il pool di nodi di sistema originale creato con il cluster e il pool di nodi di sistema creato nella sezione aggiungere un pool di nodi di sistema dedicato a un cluster del servizio Azure Kubernetes esistente.

az aks nodepool list \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --query "[].{Name:name, Mode:mode}" --output table

Nota

Per usare i pool di nodi di sistema nei cluster di Azure Kubernetes Service (AKS) prima della versione 2020-03-01 dell'API, aggiungere un nuovo pool di nodi di sistema, quindi eliminare il pool di nodi predefinito originale.

È necessario disporre di almeno due pool di nodi di sistema nel cluster del servizio Azure Kubernetes prima di poterli eliminare.

Il comando seguente richiede di confermare l'eliminazione del pool di nodi. Digitare Y per confermare.

Remove-AzAksNodePool $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool

Dopo aver eliminato il pool di nodi di sistema, è necessario avere il pool di nodi di sistema originale creato con il cluster e il pool di nodi di sistema creato nella sezione aggiungere un pool di nodi di sistema dedicato a un cluster del servizio Azure Kubernetes esistente.

Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName

Un cluster deve contenere sempre almeno un pool di nodi di sistema. Se il cluster ha più di un pool di nodi di sistema, è possibile rimuoverlo eliminando il blocco di risorse dalla configurazione terraform e applicando la modifica.

Ad esempio, rimuovere il system_pool blocco di risorse e quindi eseguire:

terraform plan
terraform apply

Pulire le risorse

Quando si elimina il gruppo di risorse del cluster AKS (Azure Kubernetes Service), tutte le risorse del cluster e il gruppo di risorse correlato al nodo (MC_) vengono eliminate.

Per eliminare il cluster, usare il comando az group delete per eliminare il gruppo di risorse AKS.

az group delete --name $RESOURCE_GROUP --yes --no-wait

Per eliminare il cluster, utilizzare il comando Remove-AzResourceGroup per eliminare il gruppo di risorse AKS.

Remove-AzResourceGroup -Name $ResourceGroup -Force

Al termine, rimuovere le risorse:

terraform destroy

Passaggi successivi

In questo articolo hai imparato come creare e gestire pool di nodi di sistema in un cluster AKS. Per informazioni su come avviare e arrestare i pool di nodi del servizio Azure Kubernetes, vedere Avviare e arrestare i pool di nodi del servizio Azure Kubernetes.