Knooppuntgroepen maken voor een cluster in Azure Kubernetes Service (AKS)

In Azure Kubernetes Service (AKS) worden knooppunten van dezelfde configuratie gegroepeerd in knooppuntgroepen. Deze knooppuntgroepen bevatten de onderliggende VM's waarop uw toepassingen worden uitgevoerd. Wanneer u een AKS-cluster maakt, definieert u het eerste aantal knooppunten en de bijbehorende grootte (SKU), waarmee een systeemknooppuntgroep wordt gemaakt.

Ter ondersteuning van toepassingen met verschillende reken- of opslagvereisten kunt u gebruikersknooppuntgroepen maken. Systeemknooppuntgroepen dienen het primaire doel van het hosten van kritieke systeempods, zoals CoreDNS en konnectivity. Gebruikersknooppuntgroepen dienen het primaire doel van het hosten van uw toepassingspods. Gebruik bijvoorbeeld meer gebruikersknooppuntgroepen om GPU's te bieden voor rekenintensieve toepassingen of toegang tot SSD-opslag met hoge prestaties. Als u echter slechts één pool in uw AKS-cluster wilt hebben, kunt u toepassingspods plannen voor systeemknooppuntgroepen.

Notitie

Met deze functie hebt u meer controle over het maken en beheren van meerdere knooppuntgroepen en zijn afzonderlijke opdrachten vereist voor CRUD-bewerkingen (create/update/delete ). Voorheen waren clusterbewerkingen via az aks create of az aks update gebruikte de managedCluster-API de enige opties om uw besturingsvlak en één knooppuntgroep te wijzigen. Deze functie maakt een afzonderlijke bewerkingsset beschikbaar voor agentpools via de agentPool-API en vereist het gebruik van de opdrachtenset voor het az aks nodepool uitvoeren van bewerkingen in een afzonderlijke knooppuntgroep.

In dit artikel leest u hoe u een of meer knooppuntgroepen in een AKS-cluster maakt.

Voordat u begint

Beperkingen

De volgende beperkingen gelden wanneer u AKS-clusters maakt die ondersteuning bieden voor meerdere knooppuntgroepen:

  • Zie Quota, beperkingen voor grootte van virtuele machines en beschikbaarheid van regio's in Azure Kubernetes Service (AKS).
  • U kunt systeemknooppuntgroepen verwijderen als u een andere systeemknooppuntgroep hebt om plaats te vinden in het AKS-cluster. Anders kunt u de systeemknooppuntgroep niet verwijderen.
  • Systeemgroepen moeten ten minste één knooppunt bevatten en gebruikersknooppuntgroepen kunnen nul of meer knooppunten bevatten.
  • Het AKS-cluster moet de Load Balancer standard SKU gebruiken om meerdere knooppuntgroepen te gebruiken. Deze functie wordt niet ondersteund met Basic SKU-load balancers.
  • Het AKS-cluster moet virtuele-machineschaalsets voor de knooppunten gebruiken.
  • 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 1 en 6 tekens lang zijn.
  • Alle knooppuntgroepen moeten zich in hetzelfde virtuele netwerk bevinden.
  • Wanneer u tijdens het maken van clusters meerdere knooppuntgroepen maakt, moeten de Kubernetes-versies voor de knooppuntgroepen overeenkomen met de versie die is ingesteld voor het besturingsvlak.

Een AKS-cluster maken

Belangrijk

Als u één systeemknooppuntgroep uitvoert voor uw AKS-cluster in een productieomgeving, raden we u aan ten minste drie knooppunten voor de knooppuntgroep te gebruiken. Als één knooppunt uitvalt, verliest u resources van het besturingsvlak en is redundantie aangetast. U kunt dit risico beperken door meer besturingsvlakknooppunten te hebben.

  1. Maak een Azure-resourcegroep met behulp van de az group create opdracht.

    az group create --name myResourceGroup --location eastus
    
  2. Maak een AKS-cluster met één knooppuntgroep met behulp van de az aks create opdracht.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --vm-set-type VirtualMachineScaleSets \
        --node-count 2 \
        --generate-ssh-keys \
        --load-balancer-sku standard
    

    Het duurt een paar minuten om het cluster te maken.

  3. Wanneer het cluster klaar is, haalt u de clusterreferenties op met behulp van de az aks get-credentials opdracht.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Een knooppuntgroep toevoegen

Het cluster dat in de vorige stap is gemaakt, heeft één knooppuntgroep. In deze sectie voegen we een tweede knooppuntgroep toe aan het cluster.

  1. Maak een nieuwe knooppuntgroep met behulp van de az aks nodepool add opdracht. In het volgende voorbeeld wordt een knooppuntgroep met de naam mynodepool gemaakt waarop drie knooppunten worden uitgevoerd:

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name mynodepool \
        --node-count 3
    
  2. Controleer de status van uw knooppuntgroepen met behulp van de az aks node pool list opdracht en geef de resourcegroep en clusternaam op.

    az aks nodepool list --resource-group myResourceGroup --cluster-name myAKSCluster
    

    In de volgende voorbeelduitvoer ziet u dat mynodepool is gemaakt met drie knooppunten. Toen het AKS-cluster in de vorige stap is gemaakt, is er een standaardknooppuntpool1 gemaakt met een aantal knooppunten van 2.

    [
      {
        ...
        "count": 3,
        ...
        "name": "mynodepool",
        "orchestratorVersion": "1.15.7",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      },
      {
        ...
        "count": 2,
        ...
        "name": "nodepool1",
        "orchestratorVersion": "1.15.7",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      }
    ]
    

ARM64-knooppuntgroepen

De ARM64-processor biedt lage rekenkracht voor uw Kubernetes-workloads. Als u een ARM64-knooppuntgroep wilt maken, moet u een virtuele machine uit de Dpsv5-, Dplsv5 - of Epsv5-serie kiezen.

Beperkingen

  • ARM64-knooppuntgroepen worden niet ondersteund in clusters met Defender.
  • FIPS-knooppuntgroepen worden niet ondersteund met ARM64-SKU's.

Een ARM64-knooppuntgroep toevoegen

  • Voeg een ARM64-knooppuntgroep toe aan uw bestaande cluster met behulp van de az aks nodepool add.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name armpool \
        --node-count 3 \
        --node-vm-size Standard_D2pds_v5
    

Azure Linux-knooppuntgroepen

De Azure Linux-containerhost voor AKS is een opensource Linux-distributie die beschikbaar is als AKS-containerhost. Het biedt hoge betrouwbaarheid, beveiliging en consistentie. Het omvat alleen de minimale set pakketten die nodig zijn voor het uitvoeren van containerworkloads, waardoor opstarttijden en algehele prestaties worden verbeterd.

Een Azure Linux-knooppuntgroep toevoegen

  • Voeg een Azure Linux-knooppuntgroep toe aan uw bestaande cluster met behulp van de az aks nodepool add opdracht en geef deze op --os-sku AzureLinux.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name azlinuxpool \
        --os-sku AzureLinux
    

Ubuntu-knooppunten migreren naar Azure Linux-knooppunten

U kunt uw bestaande Ubuntu-knooppunten migreren naar Azure Linux met behulp van een van de volgende methoden:

Knooppuntgroepen met unieke subnetten

Voor een workload moeten clusterknooppunten mogelijk worden gesplitst in afzonderlijke pools voor logische isolatie. Afzonderlijke subnetten die zijn toegewezen aan elke knooppuntgroep in het cluster, kunnen deze isolatie ondersteunen, waardoor vereisten kunnen worden aangepakt, zoals het hebben van niet-aaneengesloten adresruimte voor het virtuele netwerk om te splitsen tussen knooppuntgroepen.

Notitie

Zorg ervoor dat u de Azure CLI-versie 2.35.0 of hoger gebruikt.

Beperkingen

  • Alle subnetten die aan knooppuntgroepen zijn toegewezen, moeten deel uitmaken van hetzelfde virtuele netwerk.
  • Systeempods moeten toegang hebben tot alle knooppunten en pods in het cluster om essentiële functionaliteit te bieden, zoals DNS-resolutie en tunneling kubectl logs/exec/port-forward proxy.
  • Als u uw VNET uitvouwt nadat u het cluster hebt gemaakt, moet u het cluster bijwerken voordat u een subnet buiten het oorspronkelijke CIDR-blok toevoegt. Hoewel AKS-fouten in de agentgroep toevoegen, biedt de aks-preview Azure CLI-extensie (versie 0.5.66 en hoger) nu ondersteuning voor het uitvoeren az aks update van opdrachten met alleen de vereiste -g <resourceGroup> -n <clusterName> argumenten. Met deze opdracht wordt een updatebewerking uitgevoerd zonder wijzigingen aan te brengen, waardoor een cluster kan worden hersteld dat is vastgelopen in een mislukte status.
  • In clusters met Kubernetes-versie kleiner dan 1.23.3, kan kube-proxy-SNATs-verkeer van nieuwe subnetten, waardoor Azure Network Policy de pakketten kan verwijderen.
  • Windows-knooppunten SNAT-verkeer naar de nieuwe subnetten totdat de installatiekopie van de knooppuntgroep opnieuw is gemaakt.
  • Interne load balancers zijn standaard ingesteld op een van de subnetten van de knooppuntgroep.

Een knooppuntgroep met een uniek subnet toevoegen

  • Voeg een knooppuntgroep met een uniek subnet toe aan uw bestaande cluster met behulp van de az aks nodepool add opdracht en geef de --vnet-subnet-id.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name mynodepool \
        --node-count 3 \
        --vnet-subnet-id <YOUR_SUBNET_RESOURCE_ID>
    

FIPS-knooppuntgroepen

Zie Federal Information Process Standard (FIPS) inschakelen voor uw AKS-cluster voor meer informatie over het inschakelen van Federal Information Process Standard (FIPS) voor AKS-knooppuntgroepen (Azure Kubernetes Service).

Windows Server-knooppuntgroepen met containerd

Vanaf Kubernetes versie 1.20 en hoger kunt u opgeven containerd als containerruntime voor Windows Server 2019-knooppuntgroepen. Vanaf Kubernetes 1.23 containerd is dit de standaard en enige containerruntime voor Windows.

Belangrijk

Bij gebruik containerd met Windows Server 2019-knooppuntgroepen:

  • Zowel het besturingsvlak als windows Server 2019-knooppuntgroepen moeten Kubernetes versie 1.20 of hoger gebruiken.
  • Wanneer u een knooppuntgroep maakt of bijwerkt om Windows Server-containers uit te voeren, is de standaardwaarde --node-vm-size voor Standard_D2s_v3. Dit is een minimale aanbevolen grootte voor Windows Server 2019-knooppuntgroepen vóór Kubernetes versie 1.20. De minimale aanbevolen grootte voor Windows Server 2019-knooppuntgroepen die worden gebruikt containerd , is Standard_D4s_v3. Wanneer u de --node-vm-size parameter instelt, controleert u de lijst met beperkte VM-grootten.
  • We raden u aan taints of labels te gebruiken met uw Windows Server 2019-knooppuntgroepen die worden uitgevoerd containerd en toleranties of knooppuntselectors met uw implementaties om ervoor te zorgen dat uw workloads correct worden gepland.

Een Windows Server-knooppuntgroep toevoegen met containerd

  • Voeg een Windows Server-knooppuntgroep toe aan containerd uw bestaande cluster met behulp van de az aks nodepool add.

    Notitie

    Als u de WindowsContainerRuntime=containerd aangepaste header niet opgeeft, wordt de knooppuntgroep standaard nog steeds gebruikt containerd als containerruntime.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --os-type Windows \
        --name npwcd \
        --node-vm-size Standard_D4s_v3 \
        --kubernetes-version 1.20.5 \
        --aks-custom-headers WindowsContainerRuntime=containerd \
        --node-count 1
    

Een specifieke bestaande Windows Server-knooppuntgroep upgraden naar containerd

  • Voer een upgrade uit van een specifieke knooppuntgroep van Docker naar containerd de az aks nodepool upgrade opdracht.

    az aks nodepool upgrade \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name npwd \
        --kubernetes-version 1.20.7 \
        --aks-custom-headers WindowsContainerRuntime=containerd
    

Alle bestaande Windows Server-knooppuntgroepen upgraden naar containerd

  • Upgrade alle knooppuntgroepen van Docker naar containerd het gebruik van de az aks nodepool upgrade opdracht.

    az aks nodepool upgrade \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --kubernetes-version 1.20.7 \
        --aks-custom-headers WindowsContainerRuntime=containerd
    

Een knooppuntgroep verwijderen

Als u een knooppuntgroep niet meer nodig hebt, kunt u deze verwijderen en de onderliggende VM-knooppunten verwijderen.

Let op

Wanneer u een knooppuntgroep verwijdert, voert AKS geen cordon en drain uit en zijn er geen herstelopties voor gegevensverlies die kunnen optreden wanneer u een knooppuntgroep verwijdert. Als pods niet kunnen worden gepland in andere knooppuntgroepen, zijn deze toepassingen niet meer beschikbaar. Zorg ervoor dat u een knooppuntgroep niet verwijdert wanneer toepassingen die in gebruik zijn geen gegevensback-ups hebben of de mogelijkheid hebben om uit te voeren op andere knooppuntgroepen in uw cluster. Als u de onderbreking van het opnieuw plannen van pods die momenteel worden uitgevoerd op de knooppuntgroep die u wilt verwijderen wilt minimaliseren, moet u een cordon uitvoeren en leegmaken op alle knooppunten in de knooppuntgroep voordat u deze verwijdert.

  • Verwijder een knooppuntgroep met behulp van de az aks nodepool delete opdracht en geef de naam van de knooppuntgroep op.

    az aks nodepool delete -g myResourceGroup --cluster-name myAKSCluster --name mynodepool --no-wait
    

    Het duurt enkele minuten om de knooppunten en de knooppuntgroep te verwijderen.

Volgende stappen

In dit artikel hebt u geleerd hoe u meerdere knooppuntgroepen maakt in een AKS-cluster. Zie Meerdere knooppuntgroepen beheren voor een cluster in Azure Kubernetes Service (AKS) voor meer informatie over het beheren van meerdere knooppuntgroepen.