Använda närhetsplaceringsgrupper för att minska svarstiden för Azure Kubernetes Service-kluster (AKS)

Anteckning

När du använder närhetsplaceringsgrupper i AKS gäller samlokalisering endast för agentnoderna. Nod till nod och motsvarande värdbaserade podd-till-podd-svarstid har förbättrats. Samlokaliseringen påverkar inte placeringen av ett klusters kontrollplan.

När du distribuerar ditt program i Azure kan du skapa nätverksfördröjning genom att sprida vm-instanser mellan regioner eller tillgänglighetszoner, vilket kan påverka programmets övergripande prestanda. En närhetsplaceringsgrupp är en logisk gruppering som används för att se till att Azure-beräkningsresurser finns fysiskt nära varandra. Vissa program, till exempel spel, tekniska simuleringar och högfrekvent handel (HFT) kräver kort svarstid och uppgifter som kan slutföras snabbt. För liknande scenarier med databehandling med höga prestanda (HPC) bör du överväga att använda närhetsplaceringsgrupper (PPG) för klustrets nodpooler.

Innan du börjar

Den här artikeln kräver Azure CLI version 2.14 eller senare. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.

Begränsningar

  • En närhetsplaceringsgrupp kan bara mappas till en tillgänglighetszon.
  • En nodpool måste använda Virtual Machine Scale Sets för att associera en närhetsplaceringsgrupp.
  • En nodpool kan endast associera en närhetsplaceringsgrupp när nodpoolen skapas.

Nodpooler och närhetsplaceringsgrupper

Den första resursen som du distribuerar med en närhetsplaceringsgrupp kopplas till ett specifikt datacenter. Alla extra resurser som du distribuerar med samma närhetsplaceringsgrupp samplaceras i samma datacenter. När alla resurser som använder närhetsplaceringsgruppen har stoppats (frigjorts) eller tagits bort är de inte längre kopplade.

  • Du kan associera flera nodpooler med en enda närhetsplaceringsgrupp.
  • Du kan bara associera en nodpool med en enda närhetsplaceringsgrupp.

Konfigurera närhetsplaceringsgrupper med tillgänglighetszoner

Anteckning

Även om närhetsplaceringsgrupper kräver att en nodpool endast använder en tillgänglighetszon, gäller fortfarande baslinjeavtalet för virtuella Azure-datorer på 99,9 % för virtuella datorer i en enda zon.

Närhetsplaceringsgrupper är ett nodpoolskoncept som associeras med varje enskild nodpool. Användning av en PPG-resurs påverkar inte tillgängligheten för AKS-kontrollplanet, vilket kan påverka hur du ska utforma klustret med zoner. För att säkerställa att ett kluster är utspritt över flera zoner rekommenderar vi att du använder följande design:

  • Etablera ett kluster med den första systempoolen med tre zoner och ingen associerad närhetsplaceringsgrupp för att säkerställa att systempoddarna hamnar i en dedikerad nodpool, som sprids över flera zoner.
  • Lägg till extra användarnodpooler med en unik zon och närhetsplaceringsgrupp som är associerad med varje pool. Ett exempel är nodepool1 i zon ett och PPG1, nodepool2 i zon två och PPG2 och nodepool3 i zon 3 med PPG3. Den här konfigurationen säkerställer att noder på klusternivå sprids över flera zoner och att varje enskild nodpool samplaceras i den avsedda zonen med en dedikerad PPG-resurs.

Skapa ett nytt AKS-kluster med en närhetsplaceringsgrupp

Accelererat nätverk ger avsevärt bättre nätverksprestanda för virtuella datorer. Vi rekommenderar att du använder närhetsplaceringsgrupper med accelererat nätverk. Som standard använder AKS accelererat nätverk på virtuella datorinstanser som stöds, vilket omfattar de flesta virtuella Azure-datorer med två eller flera virtuella processorer.

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

    az group create --name myResourceGroup --location centralus
    
  2. Skapa en närhetsplaceringsgrupp med kommandot az ppg create . Anteckna ID-värdet i utdata.

    az ppg create -n myPPG -g myResourceGroup -l centralus -t standard
    

    Kommandot genererar utdata som liknar följande exempelutdata, som innehåller det ID-värde som du behöver för kommande CLI-kommandon.

    {
      "availabilitySets": null,
      "colocationStatus": null,
      "id": "/subscriptions/yourSubscriptionID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myPPG",
      "location": "centralus",
      "name": "myPPG",
      "proximityPlacementGroupType": "Standard",
      "resourceGroup": "myResourceGroup",
      "tags": {},
      "type": "Microsoft.Compute/proximityPlacementGroups",
      "virtualMachineScaleSets": null,
      "virtualMachines": null
    }
    
  3. Skapa ett AKS-kluster med kommandot az aks create och ersätt värdet myPPGResourceID med resurs-ID:t för närhetsplaceringsgruppen från föregående steg.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --ppg myPPGResourceID
    

Lägga till en närhetsplaceringsgrupp i ett befintligt kluster

Du kan lägga till en närhetsplaceringsgrupp i ett befintligt kluster genom att skapa en ny nodpool. Du kan sedan migrera befintliga arbetsbelastningar till den nya nodpoolen och ta bort den ursprungliga nodpoolen.

Använd samma närhetsplaceringsgrupp som du skapade tidigare för att säkerställa att agentnoderna i båda nodpoolerna i AKS-klustret finns fysiskt i samma datacenter.

  • Skapa en ny nodpool med az aks nodepool add kommandot och ersätt värdet myPPGResourceID med resurs-ID:t för närhetsplaceringsgruppen.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name mynodepool \
        --node-count 1 \
        --ppg myPPGResourceID
    

Rensa

  • Ta bort Azure-resursgruppen tillsammans med dess resurser med kommandot az group delete .

    az group delete --name myResourceGroup --yes --no-wait
    

Nästa steg

Läs mer om närhetsplaceringsgrupper.