Systeemknooppuntgroepen beheren in Azure Kubernetes Service (AKS)

In Azure Kubernetes Service (AKS) worden knooppunten van dezelfde configuratie gegroepeerd in nodegroepen. Knooppuntgroepen bevatten de onderliggende virtuele machines (VM) waarop uw toepassingen worden uitgevoerd. Systeemknooppuntgroepen en gebruikersknooppuntgroepen zijn twee verschillende modi voor knooppuntgroepen voor uw AKS-clusters. In dit artikel wordt uitgelegd hoe u systeemknooppuntgroepen beheert in AKS. Zie Knooppuntgroepen maken voor meer informatie over het gebruik van meerdere knooppuntgroepen.

  • Systeemknooppuntgroepen: het primaire doel is het hosten van kritieke systeempods zoals CoreDNS en metrics-server. Systeemknooppuntgroepen mogen niet worden gebruikt om uw toepassing uit te voeren. Systeemknooppuntgroepen maken gebruik van Ubuntu Linux of Azure Linux.
  • Gebruikersknooppuntgroepen: het primaire doel is om uw toepassingspods te hosten en toepassingen te isoleren van de systeemknooppuntgroep. Deze isolatie voorkomt dat een toepassing instabiliteit veroorzaakt met de systeemknooppuntgroep van uw cluster. Gebruikersknooppuntgroepen kunnen Ubuntu Linux, Azure Linux of Windows gebruiken.

Een AKS-productiecluster met één systeemknooppuntgroep moet ten minste twee knooppunten bevatten. De aanbeveling voor een AKS-productiecluster met één systeemknooppuntgroep is om ten minste drie knooppunten te hebben voor verbeterde fouttolerantie en beschikbaarheidszones. Het standaardaantal knooppunten van az aks create command is bijvoorbeeld drie en maakt een nieuw cluster met één Linux-systeemknooppuntgroep en drie Linux-knooppunten.

Het is mogelijk, maar niet aanbevolen, om toepassingspods in een systeemknooppuntgroep te plannen als u slechts één knooppuntgroep in uw AKS-cluster hebt. Een betere oplossing is het maken van een gebruikersknooppuntgroep voor uw toepassing.

Voordat u begint

Je hebt Azure CLI versie 2.3.1 of hoger nodig, geïnstalleerd en geconfigureerd. Voer de az --version opdracht uit om de versie te vinden. Zie Install Azure CLI als u de Azure CLI wilt installeren of upgraden.

Je hebt de Azure PowerShell Versie 7.5.0 of hoger geïnstalleerd en geconfigureerd. Voer de Get-InstalledModule -Name Az opdracht uit om de versie te vinden. Raadpleeg Install Azure PowerShell als u moet installeren of upgraden.

Voordat u begint, zorg ervoor dat u over de volgende vereisten beschikt:

  • Een actieve Azure-abonnement.
  • Terraform lokaal geïnstalleerd.
  • Azure CLI is geïnstalleerd en aangemeld.
  • Machtigingen voor het maken en beheren van AKS-resources.

Uw abonnement instellen:

az account set --subscription <subscription-id>

Beperkingen

De volgende beperkingen gelden wanneer u AKS-clusters maakt en beheert die ondersteuning bieden voor systeemknooppuntgroepen.

  • Zie Quota, VM-groottebeperkingen en beschikbaarheid van regio's in AKS.
  • Er moet een API-versie van 2020-03-01 of hoger worden gebruikt om een knooppuntgroepmodus in te stellen. Clusters die zijn gemaakt op API-versies die ouder zijn dan 2020-03-01 alleen gebruikersknooppuntgroepen bevatten, maar kunnen worden gemigreerd om systeemknooppuntgroepen te bevatten door de stappen voor de updategroepmodus te volgen.
  • De naam van een knooppuntgroep mag alleen alfanumerieke tekens in kleine letters bevatten en moet beginnen met een kleine letter. Voor Linux-knooppuntgroepen moet de lengte tussen 1 en 12 tekens lang zijn. Voor Windows knooppuntgroepen moet de lengte tussen één en zes tekens zijn.
  • De modus van een knooppuntgroep is een vereiste eigenschap en moet expliciet worden ingesteld bij het gebruik van ARM-sjablonen of directe API-aanroepen.

Systeem- en gebruikersknooppuntgroepen

Voor een systeemknooppuntgroep wijst AKS het label kubernetes.azure.com/mode: system automatisch toe aan de knooppunten. Dit zorgt ervoor dat AKS liever systeempods plant in knooppuntgroepen die dit label bevatten. Dit label voorkomt niet dat u toepassingspods plant in systeemknooppuntgroepen. Maar we raden u aan kritieke systeempods te isoleren van uw toepassingspods om te voorkomen dat onjuist geconfigureerde of frauduleuze toepassingspods per ongeluk systeempods verwijderen.

U kunt dit gedrag afdwingen door een toegewezen systeemknooppuntgroep te maken. Gebruik de CriticalAddonsOnly=true:NoSchedule taint om te voorkomen dat toepassingspods worden gepland in systeemknooppuntgroepen.

Systeemknooppuntgroepen hebben de volgende beperkingen:

  • Systeemknooppuntgroepen moeten ten minste 30 pods ondersteunen, zoals beschreven door de formule voor de minimum- en maximumwaarde voor pods.
  • Systeemgroepen osType moeten Linux zijn.
  • Gebruikersknooppuntgroepen osType kunnen Linux of Windows zijn.
  • Systeemgroepen moeten ten minste twee knooppunten bevatten, maar de aanbeveling is drie knooppunten. Gebruikersknooppuntgroepen kunnen nul of meer knooppunten bevatten.
  • Voor systeemknooppuntgroepen is een VM-SKU van ten minste 4 vCPU's en 4 GB geheugen vereist.
  • VM's uit de B-serie worden niet ondersteund voor systeemknooppuntgroepen.
  • Minimaal drie knooppunten van 8 vCPU's of twee knooppunten van ten minste 16 vCPU's wordt aanbevolen (bijvoorbeeld Standard_DS4_v2), met name voor grote clusters (Meerdere CoreDNS Pod-replica's, 3-4+ invoegtoepassingen, enzovoort).
  • Spot-nodegroepen hebben gebruikersnodegroepen nodig.
  • Door een andere systeemknooppuntgroep toe te voegen of te wijzigen welke knooppuntgroep een systeemknooppuntgroep is, worden systeempods niet automatisch verplaatst. Systeempods kunnen blijven draaien in dezelfde knooppool, zelfs als u deze wijzigt naar een gebruikersknooppool. Als u een knooppuntgroep verwijdert of verlaagt waarop systeempods draaien die eerder tot een systeemknooppuntgroep behoorden, worden deze systeempods met voorkeursplanning opnieuw hersteld in de nieuwe systeemknooppuntgroep.

U kunt de volgende bewerkingen uitvoeren met knooppuntgroepen:

  • Een toegewezen systeemknooppuntgroep maken (de voorkeur geven aan het plannen van systeempods naar knooppuntgroepen van mode:system)
  • Wijzig een systeemknooppuntgroep in een gebruikersknooppuntgroep, mits u een andere systeemknooppuntgroep hebt om deze in het AKS-cluster te plaatsen.
  • Wijzig een gebruikersknooppuntgroep in een systeemknooppuntgroep.
  • Verwijder gebruikersknooppuntgroepen.
  • U kunt systeemknooppuntgroepen verwijderen, mits u een andere systeemknooppuntgroep hebt die in het AKS-cluster moet worden geplaatst.
  • Een AKS-cluster kan meerdere systeemknooppuntgroepen hebben en vereist ten minste één systeemknooppuntgroep.
  • Als u verschillende onveranderbare instellingen voor bestaande knooppuntgroepen wilt wijzigen, kunt u nieuwe knooppuntgroepen maken om deze te vervangen. Een voorbeeld is het toevoegen van een nieuwe knooppuntgroep met een nieuwe maxPods instelling en het verwijderen van de oude knooppuntgroep.
  • Gebruik knooppuntaffiniteit om te vereisen of de voorkeur te geven aan welke knooppunten kunnen worden ingepland op basis van knooppuntlabels. U kunt key instellen op kubernetes.azure.com, operator op In, en values van user of system op uw YAML toepassen met behulp van kubectl apply -f yourYAML.yaml.

Een nieuw AKS-cluster maken met een systeemknooppuntgroep

Wanneer u een nieuw AKS-cluster maakt, wordt de eerste knooppuntgroep standaard ingesteld op een modus van het type System. Wanneer u nieuwe knooppuntgroepen maakt met az aks nodepool add, dan zijn deze knooppunten standaard gebruikersknooppunten, tenzij u expliciet de modusparameter opgeeft.

Maak variabelen voor de resourcegroep, clusternaam en locatie voor opdrachten die in dit artikel worden gebruikt. In dit artikel worden waarden opgegeven of kunt u uw eigen waarden gebruiken.

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

In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt in de regio eastus.

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

Gebruik de opdracht az aks create om een AKS-cluster te maken. In het volgende voorbeeld wordt een cluster met de naam myAKSCluster gemaakt met één toegewezen systeemgroep die twee knooppunten bevat. Voor uw productieworkloads moet u ervoor zorgen dat u systeemknooppuntgroepen met ten minste drie knooppunten gebruikt. Deze bewerking duurt enkele minuten.

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

Wanneer u een nieuw AKS-cluster maakt, wordt de eerste knooppuntgroep standaard ingesteld op een modus van het type system. Wanneer u nieuwe node-pools maakt, zijn dit gebruikersknooppuntgroepen met New-AzAksNodePool. De modus van een knooppuntgroep kan op elk gewenst moment worden bijgewerkt.

Maak variabelen voor de resourcegroep, clusternaam en locatie voor opdrachten die in dit artikel worden gebruikt. In dit artikel worden waarden opgegeven of kunt u uw eigen waarden gebruiken.

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

In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt in de regio eastus.

New-AzResourceGroup -ResourceGroupName $ResourceGroup -Location $Location

Gebruik de cmdlet New-AzAksCluster om een AKS-cluster te maken. In het volgende voorbeeld wordt een cluster met de naam myAKSCluster gemaakt met één toegewezen systeemgroep die twee knooppunten bevat. Voor uw productieworkloads moet u ervoor zorgen dat u systeemknooppuntgroepen met ten minste drie knooppunten gebruikt. Het duurt enkele minuten voordat de bewerking is voltooid.

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

Gebruik de volgende Terraform-configuratie om een AKS-cluster te maken met een systeemknooppuntgroep.

Het Terraform-configuratiebestand maken

Maak een bestand met de naam main.tfen voeg de volgende gedeelde configuratie toe:

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

Een brongroep maken

Voeg de volgende resourcegroepconfiguratie toe:

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

Een resourcegroep wordt gebruikt om Azure resources te organiseren en te beheren.

Een nieuw AKS-cluster maken

Voeg de volgende configuratie toe om een AKS-cluster te maken. De eerste knooppuntgroep wordt gemaakt als een systeemknooppuntgroep en is vereist voor clusterbewerking.

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"
 }
}

Een toegewezen systeemknooppuntgroep toevoegen aan een bestaand AKS-cluster

U kunt een of meer systeemknooppuntgroepen toevoegen aan bestaande AKS-clusters. De aanbeveling is om uw toepassingspods in gebruikersknooppuntgroepen te plannen en systeemknooppuntgroepen toe te voegen aan alleen kritieke systeempods. Deze scheiding voorkomt dat malafide toepassingspods per ongeluk systeempods verwijderen. Dwing dit gedrag af met de CriticalAddonsOnly=true:NoScheduletaint voor uw systeemknooppuntgroepen.

Met de volgende opdracht wordt een toegewezen knooppuntgroep van het modustype System toegevoegd met drie knooppunten. Met de az aks nodepool add opdracht worden standaard drie knooppunten toegevoegd, maar u gebruikt de --node-count parameter om het gewenste aantal knooppunten op te geven.

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

U kunt een of meer systeemknooppuntgroepen toevoegen aan bestaande AKS-clusters. De aanbeveling is om uw toepassingspods in gebruikersknooppuntgroepen te plannen en systeemknooppuntgroepen toe te voegen aan alleen kritieke systeempods. Door extra systeemnode pools toe te voegen, voorkomt u dat ongewenste toepassingspods per ongeluk systeempods verwijderen. Dwing het gedrag af met de CriticalAddonsOnly=true:NoScheduletaint voor uw systeemknooppuntgroepen.

Met de volgende opdracht wordt een toegewezen knooppuntgroep van het modustype System toegevoegd met drie knooppunten.

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

New-AzAksNodePool @systempoolparams

Voeg een tweede knooppuntgroep toe die is geconfigureerd als een systeemknooppuntgroep om kritieke systeemworkloads te isoleren.

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"
 ]
}

Deze configuratie past de CriticalAddonsOnly=true:NoSchedule taint toe, zodat toepassingsworkloads niet worden gepland in de toegewezen systeemknooppuntgroep.

Een gebruikersknooppuntgroep toevoegen

Als u toepassingsworkloads van systeemonderdelen wilt scheiden, voegt u een gebruikersknooppuntgroep toe.

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
}

Gebruikersknooppuntgroepen bieden een toegewezen omgeving voor toepassingspods.

Laatste controle vóór implementatie

Uw main.tf moet het volgende bevatten:

  • Terraform- en provider-configuratie
  • Bronnengroep
  • AKS-cluster met de standaardsysteemknooppuntgroep
  • Toegewezen systeemknooppuntgroep
  • Optionele gebruikersknooppuntgroep, indien nodig

Een voltooide configuratie ziet er ongeveer als volgt uit:

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
}

De configuratie valideren

Voer de volgende opdrachten uit om de configuratie op te maken, te initialiseren en te valideren:

terraform fmt
terraform init
terraform validate

Het uitvoeringsplan controleren

Voer de volgende opdracht uit om het uitvoeringsplan vóór de implementatie te controleren:

terraform plan

De configuratie toepassen

Voer de volgende opdracht uit om het AKS-cluster en de knooppuntgroepen te maken:

terraform apply

De implementatie controleren

Controleer de configuratie van de toegewezen systeemknooppuntgroep:

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

Controleer de uitvoer en controleer of de knooppuntgroep is geconfigureerd met mode ingesteld op System. Maak verbinding met het cluster en vermeld de knooppunten:

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

kubectl get nodes

Details weergeven voor uw knooppuntgroep

U kunt de details van uw knooppuntgroep controleren met de volgende opdracht.

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}"

Er wordt een modus van het type Systeem gedefinieerd voor systeemknooppuntgroepen en een modus van het type Gebruiker wordt gedefinieerd voor gebruikersknooppuntgroepen. Voor een systeemgroep controleert u of de nodeTaints eigenschap is ingesteld op CriticalAddonsOnly=true:NoSchedule, waardoor toepassingspods niet kunnen worden gepland in deze knooppuntgroep.

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

U kunt de details van uw knooppuntgroep controleren met de volgende opdracht.

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

Er wordt een modus van het type Systeem gedefinieerd voor systeemknooppuntgroepen en een modus van het type Gebruiker wordt gedefinieerd voor gebruikersknooppuntgroepen. Controleer voor een systeemgroep of de taint is ingesteld op CriticalAddonsOnly=true:NoSchedule, waardoor toepassingspods niet kunnen worden gepland in deze knooppuntgroep.

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

Deze stap is opgenomen in de implementatiestap Controleren in de vorige sectie.

Er wordt een modus van het type Systeem gedefinieerd voor systeemknooppuntgroepen en een modus van het type Gebruiker wordt gedefinieerd voor gebruikersknooppuntgroepen. Voor een systeemgroep controleert u of de nodeTaints eigenschap is ingesteld op CriticalAddonsOnly=true:NoSchedule, waardoor toepassingspods niet kunnen worden gepland in deze knooppuntgroep.

Bestaande clustersysteem- en gebruikersknooppuntgroepen bijwerken

Notitie

Er moet een API-versie van 2020-03-01 of hoger worden gebruikt om een systeemknooppuntgroepmodus in te stellen. Clusters die zijn gemaakt in API-versies die ouder zijn dan 2020-03-01, bevatten daardoor alleen gebruikersknooppuntgroepen. Werk de modus van bestaande knooppuntgroepen bij met de volgende opdrachten in de nieuwste Azure CLI versie om functionaliteit en voordelen van systeemknooppuntgroepen te ontvangen voor oudere clusters.

U kunt modi wijzigen voor zowel systeemknooppuntgroepen als gebruikersknooppuntgroepen. U kunt een systeemknooppuntgroep alleen wijzigen in een gebruikersknooppuntgroep als er al een andere systeemknooppuntgroep bestaat in het AKS-cluster.

Voer deze opdracht uit om een nieuwe knooppuntgroep voor de systeemmodus te maken.

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

U kunt de modus controleren met de volgende opdracht.

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

Voer deze opdracht uit om een systeemknooppuntgroep te wijzigen in een gebruikersknooppuntgroep.

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

U kunt controleren of de modus is gewijzigd met de volgende opdracht.

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

Notitie

Er moet een API-versie van 2020-03-01 of hoger worden gebruikt om een systeemknooppuntgroepmodus in te stellen. Clusters die zijn gemaakt in API-versies die ouder zijn dan 2020-03-01, bevatten daardoor alleen gebruikersknooppuntgroepen. Werk de modus van bestaande knooppuntgroepen bij met de volgende opdrachten in de nieuwste Azure PowerShell versie om functionaliteit en voordelen van systeemknooppuntgroepen te ontvangen voor oudere clusters.

U kunt modi wijzigen voor zowel systeemknooppuntgroepen als gebruikersknooppuntgroepen. U kunt een systeemknooppuntgroep alleen wijzigen in een gebruikersknooppuntgroep als er al een andere systeemknooppuntgroep bestaat in het AKS-cluster.

Voer deze opdracht uit om een nieuwe knooppuntgroep voor de systeemmodus te maken.

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

New-AzAksNodePool @newpoolparams

U kunt de modus controleren met de volgende opdracht.

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

Voer deze opdracht uit om een systeemknooppuntgroep te wijzigen in een gebruikersknooppuntgroep.

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

Update-AzAksNodePool @updateuserpoolparams

U kunt de modus controleren met de volgende opdracht.

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

Als u de modus van een bestaande knooppuntgroep wilt wijzigen, werkt u de mode waarde in de Terraform-configuratie bij en past u de implementatie opnieuw toe.

Met de volgende configuratie wordt bijvoorbeeld de user_pool-knooppool gewijzigd in een systeemknooppool.

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
}

Voer na het bijwerken van de configuratie het volgende uit:

terraform plan
terraform apply

Als u de toegewezen systeemknooppuntgroep wilt wijzigen in een gebruikersknooppuntgroep, werkt u de waarde van mode naar User bij voor system_pool en past u de configuratie opnieuw toe.

Een systeemknooppuntgroep verwijderen

Notitie

Als u systeemknooppuntgroepen wilt gebruiken op AKS-clusters vóór de API-versie 2020-03-01, voegt u een nieuwe systeemknooppuntgroep toe en verwijdert u vervolgens de oorspronkelijke standaardknooppuntgroep.

U moet ten minste twee systeemknooppuntgroepen in uw AKS-cluster hebben voordat u er een kunt verwijderen.

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

Nadat u de systeemknooppuntgroep hebt verwijderd, moet u de oorspronkelijke systeemknooppuntgroep hebben die met het cluster is gemaakt, en de systeemknooppuntgroep die u hebt gemaakt in de sectie een toegewezen systeemknooppuntgroep toevoegen aan een bestaand AKS-cluster.

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

Notitie

Als u systeemknooppuntgroepen wilt gebruiken op AKS-clusters vóór de API-versie 2020-03-01, voegt u een nieuwe systeemknooppuntgroep toe en verwijdert u vervolgens de oorspronkelijke standaardknooppuntgroep.

U moet ten minste twee systeemknooppuntgroepen in uw AKS-cluster hebben voordat u er een kunt verwijderen.

De volgende opdracht vraagt u om bevestiging om de knooppuntgroep te verwijderen. Typ Y om te bevestigen.

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

Nadat u de systeemknooppuntgroep hebt verwijderd, moet u de oorspronkelijke systeemknooppuntgroep hebben die met het cluster is gemaakt, en de systeemknooppuntgroep die u hebt gemaakt in de sectie een toegewezen systeemknooppuntgroep toevoegen aan een bestaand AKS-cluster.

Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName

Een cluster moet altijd ten minste één systeemknooppuntgroep bevatten. Als het cluster meer dan één systeemknooppuntgroep heeft, kunt u er een verwijderen door het resourceblok te verwijderen uit de Terraform-configuratie en de wijziging toe te passen.

Verwijder bijvoorbeeld het system_pool resourceblok en voer het volgende uit:

terraform plan
terraform apply

Middelen opschonen

Wanneer u de resourcegroep van het AKS-cluster verwijdert, worden alle clusterresources en de gerelateerde knooppuntresourcegroep (MC_) verwijderd.

Als u het cluster wilt verwijderen, gebruikt u de opdracht az group delete om de AKS-resourcegroep te verwijderen:

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

Als u het cluster wilt verwijderen, gebruikt u de opdracht Remove-AzResourceGroup om de AKS-resourcegroep te verwijderen:

Remove-AzResourceGroup -Name $ResourceGroup -Force

Wanneer u klaar bent, verwijdert u de resources:

terraform destroy

Volgende stappen

In dit artikel hebt u geleerd hoe u systeemknooppuntgroepen in een AKS-cluster maakt en beheert. Zie AKS-knooppuntgroepen starten en stoppen voor informatie over het starten en stoppen van AKS-knooppuntgroepen.