Dela via


Skapa nodpooler för ett kluster i Azure Kubernetes Service (AKS)

Den här artikeln visar hur du skapar en eller flera nodpooler i ett AKS-kluster.

Anmärkning

Den här funktionen ger mer kontroll över att skapa och hantera flera nodpooler och kräver separata kommandon för crud-åtgärder ( create/update/delete ). Tidigare användes klusteroperationer via az aks create eller az aks update managedCluster API:et och var de enda alternativen för att ändra ditt kontrollplan och en enda nodpool. Den här funktionen exponerar en separat åtgärdsuppsättning för agentpooler via agentPool-API:et och kräver användning av kommandouppsättningen az aks nodepool för att köra åtgärder på en enskild nodpool.

Viktigt!

Från och med den 30 november 2025 kommer AKS inte längre att stödja eller tillhandahålla säkerhetsuppdateringar för Azure Linux 2.0. Från och med den 31 mars 2026 tas nodbilder bort och du kan inte skala dina nodpooler. Migrera till en Azure Linux-version som stöds genom att uppgradera dina nodpooler till en Kubernetes-version som stöds eller migrera till osSku AzureLinux3. Mer information finns i Pensionering: Azure Linux 2.0-nodpooler i AKS.

Förutsättningar

  • Du behöver Azure CLI version 2.2.0 eller senare installerad och konfigurerad. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera, se Installera Azure CLI.
  • För att distribuera en ARM-mall behöver du skrivåtkomst till de resurser som du distribuerar och åtkomst till alla åtgärder i Microsoft.Resources/deployments resurstypen. Om du till exempel vill distribuera en virtuell dator (VM) behöver du Microsoft.Compute/virtualMachines/write och Microsoft.Resources/deployments/* behörigheter. Det finns en lista med roller och behörigheter i Inbyggda roller i Azure.

  • Granska följande krav för varje parameter:

    • osTYPE: Typ av operativsystem. Standardvärdet är Linux.
    • osSKU: Anger os-SKU:n som används av agentpoolen.
    • count: Antal agenter (virtuella datorer) som ska vara värdar för Docker-containrar. Tillåtna värden måste ligga mellan 0 och 1 000 (inklusive) för användarpooler och i intervallet 1 till 1 000 (inklusive) för systempooler. Standardvärdet är 1.
  • När du har distribuerat klustret med hjälp av en ARM-mall kan du använda Azure CLI eller Azure PowerShell för att ansluta till klustret och distribuera exempelprogrammet.

Begränsningar

Följande begränsningar gäller när du skapar AKS-kluster som stöder flera nodpooler:

  • Du kan ta bort systemnodpoolen om du har en annan systemnodpool som ska ta plats i AKS-klustret. Annars kan du inte ta bort systemnodpoolen.

  • Systempooler måste innehålla minst en nod. Användarnodpooler kan innehålla noll eller fler noder.

  • Om du skapar ett kluster med en enda nodpool måste operativsystemtypen vara Linux. OS-SKU:n kan vara valfri Linux-variant, till exempel Ubuntu eller AzureLinux. Du kan inte skapa ett kluster med en enda Windows-nodpool. Om du vill köra Windows-containrar måste du lägga till en Windows-nodpool i klustret när du har skapat den med en Linux-systemnodpool.

  • AKS-klustret måste använda standard-SKU-lastbalanseraren för att använda flera nodpooler. Den här funktionen stöds inte med Basic SKU-lastbalanserare.

  • AKS-klustret måste använda VM-skalningsuppsättningar för noderna.

  • Namnet på en nodpool får bara innehålla alfanumeriska gemener och måste börja med en gemen bokstav.

    • För Linux-nodpooler måste längden vara mellan 1 och 12 tecken.
    • För Windows-nodpooler måste längden vara mellan 1 och 6 tecken.
  • Alla nodpooler måste finnas i samma virtuella nätverk.

  • När du skapar flera nodpooler när klustret skapas måste Kubernetes-versionerna för nodpoolerna matcha versionuppsättningen för kontrollplanet.

Ange miljövariabler

  • Ange följande miljövariabler i gränssnittet för att förenkla kommandona i den här artikeln. Du kan ändra värdena till önskade namn.

    export RESOURCE_GROUP_NAME="my-aks-rg"
    export LOCATION="eastus"
    export CLUSTER_NAME="my-aks-cluster"
    export NODE_POOL_NAME="mynodepool"
    

Skapa en resursgrupp

  • Skapa en Azure-resursgrupp med kommandot az group create .

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

Skapa ett AKS-kluster med en enda nodpool med hjälp av Azure CLI

Om du bara vill ha en nodpool i AKS-klustret kan du schemalägga programpoddar i systemnodpooler. Om du kör en enda systemnodpool för ditt AKS-kluster i en produktionsmiljö rekommenderar vi att du använder minst tre noder för nodpoolen. Om en nod slutar fungera komprometteras redundansen. Du kan minska den här risken genom att ha fler noder i systemnodpoolen.

  1. Skapa ett kluster med en enda Ubuntu-nodpool med kommandot az aks create . Det här steget anger två noder i den enskilda nodpoolen.

    az aks create \
        --resource-group $RESOURCE_GROUP_NAME \
        --name $CLUSTER_NAME \
        --vm-set-type VirtualMachineScaleSets \
        --node-count 2 \
        --os-sku Ubuntu \
        --location $LOCATION \
        --load-balancer-sku standard \
        --generate-ssh-keys
    

    Det tar några minuter att skapa klustret.

  2. När klustret är klart hämtar du klustrets autentiseringsuppgifter med az aks get-credentials kommandot.

    az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME
    

Lägga till en andra nodpool med hjälp av Azure CLI

Klustret som skapades i föregående avsnitt har en enda nodpool. I det här avsnittet lägger vi till en andra nodpool i klustret. Den andra nodpoolen kan ha en operativsystemtyp Linux med en OS-SKU av Ubuntu eller AzureLinux, eller en operativsystemtyp av Windows.

Anmärkning

Om du vill lägga till en nodpool som använder tillfälliga OS-diskar i AKS-klustret kan du ange --node-osdisk-type flaggan till Ephemeral när du kör az aks nodepool add kommandot.

Med tillfälliga operativsystem kan du distribuera virtuella datorer och instansavbildningar upp till storleken på den virtuella datorns cacheminne. Standardkonfigurationen för nod-OS-disken i AKS använder 128 GB, vilket innebär att du behöver en VM-storlek som har en cache som är större än 128 GB. Standardvärdet Standard_DS2_v2 har en cachestorlek på 86 GB, vilket inte är tillräckligt stort. Den Standard_DS3_v2 virtuella datorns SKU har en cachestorlek på 172 GB, vilket är tillräckligt stort. Du kan också minska standardstorleken för OS-disken med hjälp av --node-osdisk-size, men tänk på att den minsta storleken för AKS-avbildningar är 30 GB.

Om du vill skapa nodpooler med nätverksanslutna OS-diskar kan du ange --node-osdisk-type flaggan till Managed när du kör az aks nodepool add kommandot.

Lägga till en Linux-nodpool

  • Skapa en ny nodpool med kommandot az aks nodepool add . I följande exempel skapas en Linux nodpool med os-SKU Ubuntu :n som kör tre noder. Om du inte anger en OS-SKU är AKS som standard Ubuntu.

    az aks nodepool add \
        --resource-group $RESOURCE_GROUP_NAME \
        --cluster-name $CLUSTER_NAME \
        --name $NODE_POOL_NAME \
        --node-vm-size Standard_DS2_v2 \
        --os-type Linux \
        --os-sku Ubuntu \
        --node-count 3
    

    Det tar några minuter att skapa nodpoolen.

Lägga till en Windows Server-nodpool

  • Skapa en ny nodpool med kommandot az aks nodepool add . I följande exempel skapas en Windows nodpool med os-SKU Windows2022 :n som kör tre noder.

    Mer information om Windows OS finns i Metodtips för Windows.

    az aks nodepool add \
        --resource-group $RESOURCE_GROUP_NAME \
        --cluster-name $CLUSTER_NAME \
        --name $NODE_POOL_NAME \
        --node-vm-size Standard_DS2_v2 \
        --os-type Windows \
        --os-sku Windows2022 \
        --node-count 3
    

Kontrollera statusen för dina nodpooler

  • Kontrollera statusen för dina nodpooler med kommandot az aks nodepool list och ange resursgruppen och klusternamnet.

    az aks nodepool list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
    

Ta bort en nodpool

Om du inte längre behöver en nodpool kan du ta bort den och ta bort de underliggande VM-noderna.

Försiktighet

När du tar bort en nodpool utför AKS inte avspärrning och tömning, och det finns inga återställningsalternativ för dataförlust som kan uppstå när du tar bort en nodpool. Om poddar inte kan schemaläggas i andra nodpooler blir dessa program otillgängliga. Se till att du inte tar bort en nodpool när program som används inte har säkerhetskopiering av data eller möjligheten att köras på andra nodpooler i klustret. För att minimera avbrotten när du omplanerar poddar som för närvarande körs i den nodpool du vill ta bort, utför en avspärrning och tömning av alla noder i nodpoolen innan du tar bort den.

  • Ta bort en nodpool med kommandot az aks nodepool delete och ange namnet på nodpoolen.

    az aks nodepool delete --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --no-wait
    

    Det tar några minuter att ta bort noderna och nodpoolen.

Skapa ett AKS-kluster med en enda nodpool med hjälp av en ARM-mall

Om du bara vill ha en nodpool i AKS-klustret kan du schemalägga programpoddar i systemnodpooler. Om du kör en enda systemnodpool för ditt AKS-kluster i en produktionsmiljö rekommenderar vi att du använder minst tre noder för nodpoolen. Om en nod slutar fungera komprometteras redundansen. Du kan minska den här risken genom att ha fler noder i systemnodpoolen.

Skapa en Microsoft.ContainerService/managedClusters resurs

  • Skapa en Microsoft.ContainerService/managedClusters resurs genom att lägga till den här JSON-filen i mallen.
  • Skapa en enda Ubuntu-nodpool i AKS-klustret genom att göra följande ändringar i ARM-mallen:

      "properties": {
        "agentPoolProfiles": [
        {
            "count": "1",
            "osSKU": "ubuntu",
            "osType": "linux"
         } 
         ],
    }
    

Lägga till en andra nodpool med hjälp av en ARM-mall

Klustret som skapades i föregående avsnitt har en enda nodpool. I det här avsnittet lägger vi till en andra nodpool i klustret. Den andra nodpoolen kan ha en operativsystemtyp Linux med en OS-SKU av Ubuntu eller AzureLinux, eller en operativsystemtyp av Windows.

Lägga till Linux-nodpooler

  • Skapa flera Ubuntu-nodpooler i ditt AKS-kluster genom att göra följande ändringar i ARM-mallen:

      "properties": {
        "agentPoolProfiles": [
        {
            "count": "3",
            "osSKU": "ubuntu",
            "osType": "linux"
         } 
         ],
    }
    

Lägga till Windows Server-nodpooler

  • Skapa flera Windows-nodpooler i ditt AKS-kluster genom att göra följande ändringar i ARM-mallen:

      "properties": {
        "agentPoolProfiles": [
        {
            "count": "3",
            "osSKU": "windows2022",
            "osType": "windows"
         } 
         ],
    }
    

Distribuera ARM-mallen

Nästa steg

I den här artikeln har du lärt dig hur du skapar nodpooler i ett AKS-kluster med hjälp av Azure CLI.