Använda nodpooler för virtuella datorer i Azure Kubernetes Service (AKS)

I den här artikeln får du lära dig mer om den nya nodpooltypen virtual machines för AKS.

Med nodpooler för virtuella datorer hanterar AKS direkt etablering och start av varje enskild nod. För nodpooler för vm-skalningsuppsättningar hanterar AKS modellen för vm-skalningsuppsättningar och använder den för att uppnå konsekvens mellan alla noder i nodpoolen. Med nodpooler för virtuella datorer kan du orkestrera klustret med virtuella datorer som passar dina enskilda arbetsbelastningar bäst.

Översikt

Så här fungerar det

En nodpool består av en uppsättning virtuella datorer (VM), där olika storlekar på virtuella datorer är avsedda att stödja olika typer av arbetsbelastningar. Dessa storlekar på virtuella datorer, som kallas SKU:er, kategoriseras i olika familjer som är optimerade för specifika ändamål. Mer information finns i VM-SKU:er. Med nodpooler för virtuella datorer kan du utföra manuell skalning med flera SKU:er eller automatisk SKU-skalning.

För att aktivera skalning av flera storlekar på virtuella datorer använder nodpooltypen Virtuella datorer en ScaleProfile som innehåller konfigurationer som anger hur nodpoolen kan skalas, särskilt den önskade listan över storleken på virtuella datorer och antalet för varje storlek. A ManualScaleProfile är en skalningsprofil som anger en önskad storlek på den virtuella datorn och det totala antalet av den typen i nodpoolen. Endast en virtuell datorstorlek tillåts i en ManualScaleProfile. Du måste skapa en separat ManualScaleProfile för varje virtuell datorstorlek i nodpoolen. När du skapar en ny nodpool för virtuella maskiner lägger du till en inledande manuell skalningsprofil för en virtuell maskinstorlek, med hjälp av vm-size-fältet och som inkluderar en node-count. Du kan också lägga till fler manuella skalningsprofiler genom att följa anvisningarna för att lägga till manuella skalningsprofiler.

Nodpooler för virtuella datorer stöder också Auto-läge, vilket innebär att nodpoolen kan använda kluster-autoskalering. Alla vm-nodpooler i Auto läge kan bara använda en storlek på en virtuell dator i taget.

Anmärkning

När du skapar en ny nodpool för virtuella datorer kan du ha flera skalningsprofiler och du behöver minst en manuell skalningsprofil i nodpoolen. När du aktiverar autoskalning av kluster med nodpooler för virtuella datorer måste du ta bort alla skalningsprofiler utom en som nodpoolen använder för skalningsåtgärden.

Fördelar

Fördelarna med nodpooltypen Virtual Machines är:

  • Flexibilitet: Nodspecifikationer kan uppdateras för att anpassas efter din aktuella arbetsbelastning och dina behov.
  • Finjusterad kontroll: Med kontroller på enskild nodnivå kan du ange och blanda noder i olika specifikationer för att lyfta begränsningar från en enda modell och förbättra konsekvensen.
  • Effektivitet: Du kan minska nodens fotavtryck för klustret, vilket förenklar dina driftskrav.

Nodpooler för virtuella datorer ger en bättre upplevelse för dynamiska arbetsbelastningar och krav på hög tillgänglighet. Med nodpooler för virtuella datorer kan du konfigurera flera virtuella datorer med liknande familj i en nodpool. Din arbetsbelastning schemaläggs automatiskt för de tillgängliga resurser som du konfigurerar.

Jämför funktioner

I följande tabell visas hur nodpooler för virtuella datorer jämförs med standardnodpooler för skalningsuppsättningar .

Typ av nodpool Förmågor
Nodpool för virtuella datorer Du kan lägga till, ta bort eller uppdatera noder i en nodpool. Typer av virtuella datorer kan vara valfri virtuell dator av samma familjetyp (till exempel D-serien, A-serien osv.). Nodpooler för virtuella datorer möjliggör även manuell skalning med flera SKU:er.
Virtuell Maskinskalningsuppsättnings-baserad nodpool Du kan addera eller ta bort noder av samma storlek och typ i en nodpool. Om du lägger till en ny storlek på den virtuella datorn i klustret måste du skapa en ny nodpool.

Vilken beräkningsskalningsupplevelse ska jag välja på AKS?

Beroende på dina arbetsbelastningsbehov finns det flera beräkningsskalningsupplevelser att tänka på. Se användningsfallen för var och en:

Begränsningar

  • VM-storlekar som anges i poolen måste vara av samma typ. Till exempel kan virtuella GPU- och icke-GPU- eller x86- och ARM64-datorer inte finnas i samma nodpool.
  • InifiniBand är inte tillgängligt.
  • Nodpoolsögonblicksbild stöds inte.
  • Alla vm-storlekar som valts i en nodpool måste komma från en liknande virtuell datorfamilj. Du kan till exempel inte blanda en virtuell datortyp i N-serien med en virtuell datortyp i D-serien i samma nodpool.
  • Nodpooler för virtuella datorer tillåter upp till fem olika storlekar på virtuella datorer per nodpool.
  • När du använder autoskalning av kluster tillåts endast en skalningsprofil. Om du vill aktivera autoskalning av kluster i en nodpool för virtuella datorer med flera skalningsprofiler tar du bort alla skalningsprofiler utom en.

Förutsättningar

  • Ett Azure-abonnemang. Om du inte har någon, kan du skapa ett kostnadsfritt konto.
  • Azure CLI version 2.73.0 eller senare installerad och konfigurerad. Kör az --version för att hitta versionen. Mer information om hur du installerar eller uppgraderar Azure CLI finns i Installera Azure CLI
  • Den här funktionen kräver kubernetes version 1.27 eller senare. Information om hur du uppgraderar kubernetes-versionen finns i Uppgradera AKS-kluster

Viktigt!

Krav för anpassat virtuellt nätverk: Om du distribuerar en nodpool för virtuella datorer till ett anpassat virtuellt nätverk måste klustret använda en användartilldelad hanterad identitet med minst behörigheter för nätverksdeltagare i målundernätet. Till skillnad från skalningsuppsättningar för virtuella maskiners nodpooler förlitar sig nodpooler för virtuella maskiner enbart på klusteridentiteten för undernätskopplingsåtgärder och använder inte förstapartstokens. Kluster som använder en systemtilldelad hanterad identitet misslyckas med förhandsvalidering när en nodpool för virtuella datorer skapas eller uppdateras i ett anpassat virtuellt nätverk, vilket returnerar ett InvalidParameter fel. Mer information om hur du konfigurerar en användartilldelad hanterad identitet för klustret finns i Använda en hanterad identitet i AKS.

Skapa ett AKS-kluster med nodpooler för virtuella datorer

Anmärkning

Endast en VM-storlek tillåts i en skalningsprofil och den maximala gränsen är fem VM-skalningsprofiler totalt för en nodpool för virtuella datorer.

Skapa ett AKS-kluster med nodpooler för virtuella datorer med az aks create kommandot med --vm-set-type flaggan inställd på "VirtualMachines".

I följande exempel skapas ett kluster med namnet myAKSCluster med en nodpool för virtuella datorer som innehåller två noder, genererar SSH-nycklar, anger lastbalanserarens SKU till standard och anger Kubernetes-versionen till 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

Skapa ett AKS-kluster med nodpooler för virtuella datorer i ett anpassat virtuellt nätverk

När du distribuerar nodpooler för virtuella datorer till ett anpassat virtuellt nätverk måste du skapa en användartilldelad hanterad identitet och ge den behörighet som nätverksdeltagare i det virtuella nätverket innan du skapar klustret.

  1. Skapa ett virtuellt nätverk och undernät.

    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/24
    
  2. Hämta resurs-ID:t för undernätet.

    SUBNET_ID=$(az network vnet subnet show \
        --resource-group myResourceGroup \
        --vnet-name myVnet \
        --name mySubnet \
        --query id \
        --output tsv)
    
  3. Skapa en användartilldelad hanterad identitet.

    az identity create \
        --name myAKSIdentity \
        --resource-group myResourceGroup
    
  4. Hämta huvud-ID och resurs-ID för den hanterade identiteten.

    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)
    
  5. Tilldela rollen Nätverksdeltagare till den hanterade identiteten i det virtuella nätverket.

    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_ID
    

    Det kan ta upp till 60 minuter att sprida de behörigheter som beviljats till klustrets hanterade identitet. Använd följande kommando för att kontrollera statusen.

  6. Skapa AKS-klustret med nodpooler för virtuella datorer i ditt anpassade virtuella nätverk.

    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
    

Skapa ett kluster med Windows aktiverat och en Windows Virtual Machine-nodpool

Nodpooler för virtuella datorer är tillgängliga i Windows-aktiverade kluster. I följande exempel skapas ett kluster med namnet myAKSCluster med en nodpool för virtuella datorer. De här stegen skapar först en Linux-systempool.

  1. Skapa ett användarnamn som ska användas som administratörsautentiseringsuppgifter för Windows Server-noderna i klustret. Följande kommandon uppmanar dig att ange ett användarnamn och anger det till WINDOWS_USERNAME för användning i ett senare kommando.

    echo "Please enter the username to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_USERNAME
    
  2. Skapa ett lösenord för administratörsanvändarnamnet som du skapade i föregående steg. Lösenordet måste innehålla minst 14 tecken och uppfylla kraven på lösenordskomplexitet för Windows Server.

    echo "Please enter the password to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_PASSWORD
    
  3. Skapa ett AKS-kluster med Windows aktiverat och nodpooler med typen virtuella datorer med az aks create kommandot med --vm-set-type flaggan inställd på "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 azure
    
  4. Lägg till en nodpool för virtuella datorer i ett befintligt Windows-aktiverat kluster med az aks nodepool add kommandot med --vm-set-type flaggan inställd på "VirtualMachines". I följande exempel läggs en nodpool för virtuella datorer med namnet npwin till myAKSCluster-klustret :

    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"
    

Lägga till en nodpool för virtuella datorer i ett befintligt kluster

Lägg till en nodpool för virtuella datorer i ett befintligt kluster med az aks nodepool add kommandot med --vm-set-type flaggan inställd på "VirtualMachines".

I följande exempel läggs en nodpool för virtuella datorer med namnet myvmpool till myAKSCluster-klustret . Nodpoolen skapar en ManualScaleProfile med --vm-sizes inställd på Standard_D4s_v3 och en --node-count på 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

Lägga till en manuell skalningsprofil i en nodpool

Lägg till en manuell skalningsprofil till en nodpool genom att använda az aks nodepool manual-scale add med flaggan --vm-sizes inställd på "Standard_D2s_v3" och node-count inställd på 2.

I följande exempel läggs en manuell skalningsprofil till nodpoolen myvmpool i klustret myAKSCluster. Nodpoolen innehåller två noder med en VM-SKU för 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

Uppdatera en befintlig manuell skalningsprofil

Uppdatera en befintlig manuell skalningsprofil i en nodpool med az aks nodepool manual-scale update kommandot med --vm-sizes flaggan inställd på "Standard_D2s_v3".

Anmärkning

Använd parametern --current-vm-sizes för att ange storleken på den befintliga nodpool som du vill uppdatera. Du kan uppdatera --vm-sizes och/eller --node-count. När du använder andra verktyg eller REST-API:er måste du skicka ett fullständigt agentPoolProfiles.virtualMachinesProfile.scale fält när du uppdaterar skalningsprofilen för nodpoolen.

I följande exempel uppdateras en manuell skalningsprofil till nodpoolen myvmpool i myAKSCluster-klustret . Kommandot uppdaterar antalet noder till fem och ändrar den virtuella datorns SKU från Standard_D4s_v3 till 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

Ta bort en manuell skalningsprofil

Ta bort en befintlig manuell skalningsprofil med kommandot az aks nodepool manual-scale delete .

Anmärkning

Parametern --current-vm-sizes anger storleken på den befintliga nodpoolen som ska tas bort. När du använder andra verktyg eller REST-API:er för att uppdatera skalningsprofilen för nodpoolen skickar du ett fullständigt agentPoolProfiles.virtualMachinesProfile.scale fält.

I följande exempel tas den manuella skalningsprofilen bort för Standard_D8s_v3 VM-SKU:n i nodepoolen myvmpool.

az aks nodepool manual-scale delete \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-vm-sizes "Standard_D8s_v3"

Autoskalning av kluster med nodpooler för virtuella datorer (förhandsversion)

Nodpooler för virtuella datorer stöder autoskalning av kluster. Detta kan aktiveras med hjälp av flaggan --enable-cluster-autoscaler när klustret skapas, när du lägger till en ny nodpool eller vid uppdatering av en befintlig manuell nodpool.

När du använder autoskalning av kluster med nodpooler för virtuella datorer,

  • Skala upp: autoskalaren svarar på väntande pod-tryck och skalar upp antalet noder i en nodpool med en enskild SKU av samma typ.
  • Skala ned: en viss nod väljs av autoskalare baserat på nodens nyttjandegrad. du kan konfigurera scale-down-utilization-thresholdför att justera när automatisk skalning i klustret utlöser en skalningsåtgärd. Mer information om hur du konfigurerar autoskalning finns i dokumentationen för autoskalning av kluster .

Begränsningar

  • Den här funktionen är endast tillgänglig i det offentliga molnet.
  • GPU-noder stöds inte för närvarande.

Requirements

  • Om du vill aktivera autoskalning av kluster med nodpooler för virtuella datorer får nodpoolen bara använda en VM-storlek. Alla andra manuella skalningsprofiler måste tas bort innan du aktiverar autoskalning av kluster.

Installera aks-preview-tillägget

Viktigt!

AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och frivillig registrering. Förhandsversioner tillhandahålls "i befintligt skick" och "i mån av tillgång," och de är undantagna från servicenivåavtal och begränsad garanti. AKS-förhandsversioner stöds delvis av kundsupport efter bästa förmåga. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:

    # Install the aks-preview extension
    az extension add --name aks-preview
    
    # Update the aks-preview extension
    az extension update --name aks-preview

Registrera funktionsflagga

Registrera funktionsflaggan VMsAgentAutoscalePreviewaz feature register för förhandsversionen med kommandot :

    az feature register --namespace Microsoft.ContainerService --name VMsAgentPoolAutoscalePreview

Skapa ett AKS-kluster med nodpooler för virtuella datorer och kluster-autoskalning aktiverat

  • Skapa ett AKS-kluster med nodpooler för virtuell dator med az aks create-kommandot, där flaggan är inställd på --vm-set-type och med flaggan --enable-cluster-autoscaler.

I följande exempel skapas ett kluster med namnet myAKSCluster med en nodpool för virtuella datorer med en nodpoolsstorlek på "Standard_D4s_v3" minsta antal noder på 2, maximalt antal noder på 5 och anger Kubernetes-versionen till 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

Lägga till en nodpool för virtuella datorer med autoskalning av kluster aktiverat i ett befintligt kluster

  • Skapa en nodpool för virtuella datorer med az aks nodepool add kommandot med --vm-set-type flaggan inställd på "VirtualMachines" och med flaggan --enable-cluster-autoscaler.

I följande exempel läggs nodpoolen för virtuella maskiner, myvmpool, till med klusterautoskalning aktiverad i ett kluster med namnet myAKSCluster med storleken "Standard_D4s_v3" och ett lägsta antal noder på 2 och maximalt antal 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 \

Uppdatera autoskalningsinställningarna för kluster för en nodpool för virtuella datorer med autoskalning av kluster aktiverat

I följande exempel uppdateras inställningarna för nodpoolen myvmpool för virtuella datorer i klustret myAKSCluster med storleken "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

Uppdatera en nodpool för virtuella datorer från manuellt läge till autoskalning av kluster aktiverat

Anmärkning

Uppdatering av en manuell lägesnodpool för virtuella datorer till automatisk tillåts endast när nodpoolen bara har en manuell skalningsprofil.

Om nodpoolen för den virtuella datorn har flera manuella skalningsprofiler måste du ta bort alla manuella skalningsprofiler förutom den valda storlek som du vill använda för automatisk skalning. Se följande exempel som tar bort den manuella skalningsprofilen i nodpoolen "myvmpool" för VM-storlek Standard_D8s_v3:

az aks nodepool manual-scale delete \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-vm-sizes "Standard_D8s_v3"

I följande exempel uppdateras nodpoolen myvmpool för virtuella datorer i klustret med namnet myAKSCluster från Manual läge till Auto läge:

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --enable-cluster-autoscaler \
    --min-count 2 \
    --max-count 5

Inaktivera autoskalning av kluster i nodpoolen för virtuella datorer

Du kan inaktivera autoskalning av kluster eller ändra klustret från Auto läge till Manual läge.

I följande exempel uppdateras nodpoolen myvmpool för VIrtual Machines i klustret med namnet myAKSCluster från Manual läge till Auto läge:

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --disable-cluster-autoscaler

Nästa steg

I den här artikeln har du lärt dig hur du använder nodpooler för virtuella datorer i AKS. Mer information om nodpooler i AKS finns i Skapa nodpooler.