Beräkna klusterstorlek – Noder
Nu måste du bestämma vilken typ av vm-noder du behöver och hur många noder du behöver köra.
Vilken storlek behöver du för virtuella datorer?
I Azure Kubernetes Service (AKS) är varje nod i klustret en virtuell Azure-dator. Virtuella datorer finns i olika specifikationer för att stödja kraven från olika typer av program. Vissa program kan behöva mer bearbetningskraft eller minne eller snabbare lagring. Du måste välja en vm-kategori och instans som uppfyller programmets behov.
Du vill se till att typen har tillräckligt med minne och processorkraft för ditt program. Tänk på att inte allt minne och all processorkraft är tillgänglig för ditt program. En del av den här kraften behövs för operativsystemet och för Kubernetes-systemkomponenter. AKS reserverar automatiskt en viss mängd minne och bearbetningskraft för att säkerställa att dessa kritiska systemkomponenter kan fungera efter behov.
Standardtypen för virtuell dator som distribueras som en del av ett AKS-kluster är den virtuella datorn D2 v3 för generell användning, en virtuell dator med två kärnor med 8 gigabyte minne. AKS reserverar 100 millicores processor och 3,55 GiB minne, vilket lämnar 1 900 millicores (1,9 kärnor) och 5,45Gi minne ledigt för ditt program.
Dricks
Mängden reserverad processor och minne varierar beroende på vilken typ av virtuell dator du väljer. Det här beloppet blir proportionellt mindre när storleken på den virtuella datorn ökar.
Ett annat övervägande är strandsatta resurser. Anta att du distribuerar tre program till en D2 v3-nod. Vart och ett av dessa program kräver 600 millicores processor och 500Mi minne. När du har distribuerat dessa program finns 100 millicores processor kvar och det finns cirka 2,05 GiB oanvänt minne. Om du distribuerade en fjärde instans av programmet skulle du behöva skicka den till en ny nod eftersom de återstående 100 millicoresna inte räcker. Det lämnar dock 2 GiB minne på noden som inte kan användas. Minnesresursen kallas för strandad.
Ett idealiskt vm-val är ett med tillräckligt med kapacitet för att köra dina arbetsbelastningar utan att lämna resurser strandsatta. Om arbetsbelastningar skalas upp och ned dynamiskt vill du ha tillräckligt med resurser för att täcka vanliga användningsscenarier, men flexibiliteten att skala upp när det behövs.
Hur många noder behöver du?
Ditt program ska alltid vara tillgängligt och kunna hantera fel för de underliggande noderna. Du kan ge motståndskraft med flera repliker av programmet spridda över flera noder.
AKS har nodpooler, som är grupper av virtuella datorer av samma typ. Du kan ha flera nodpooler. Du kan till exempel ha en nodpool som innehåller allmänna virtuella datorer, en nodpool med minnesoptimerade virtuella datorer och en nodpool med GPU-utrustade virtuella datorer. Du kan sedan använda den interna kubernetes-schemaläggningsfunktionen för att säkerställa att dina arbetsbelastningar distribueras till rätt nodpool och VM-typ.
Nodpooler kan ha stöd för något av två lägen: System eller Användare. Systemnodpooler kör kritiska systempoddar som är viktiga för driften av kubernetes-klustret, inklusive tjänster som lagringsdrivrutiner, DNS eller måttservrar. Användarnodpooler kör dina program.
I en standardkonfiguration innehåller ett AKS-kluster en enda systemnodpool som används för att köra allt. Om du vill kan du lägga till extra system- eller användarnodpooler och konfigurera dina programpoddar så att de endast körs i användarnodpoolerna. Kritiska systempoddar körs endast i systemnodpoolerna. Användning av system- och användarnodpooler kan förhindra att felaktigt konfigurerade program påverkar driften av kritiska systemtjänster och kan orsaka att klustret misslyckas.
Kubernetes kan också lägga till eller ta bort noder vid behov. Om du planerar att använda den här funktionen måste du definiera en övre gräns för det maximala antalet noder som Kubernetes kan skala upp till. Planera sedan nätverksdesignen kring det maximala antalet. Tänk på att du måste ta hänsyn till minst en extra nod per kluster för att uppdateringsprocessen ska kunna köras korrekt.
Dricks
Du kan konfigurera antalet noder som uppdateras vid en viss tidpunkt, där en är standardvärdet. Om du uppgraderar mer än en nod i taget kan du minska den totala tiden det tar att uppgradera ett kluster. Du måste ta hänsyn till extra noder som en del av planeringen.
Hur många noder ska du köra?
För att fastställa antalet noder som ska köras måste du förstå programmets processor- och minneskrav. Utvecklingsteamet gav dig resultatet av deras prestandatestning med information om hur mycket processor och minne tjänsterna behöver. Resultaten inkluderar baslinjekraven tillsammans med de maximala beloppen för mer omfattande perioder:
Tjänst | Processor min/max | Minne min/max |
---|---|---|
Webbplatsens klientdel | 250 m/1 000 m | 250 Mi / 1 Gi |
Identity API | 100 m/500 m | 250 Mi / 500 Mi |
Katalog-API | 500 m - 1 000 m | 1 Gi / 1 Gi |
API för beställningar | 100 m - 1 000 m | 100 Mi / 1 Gi |
Hjälp om beställningar | 100 m - 1 000 m | 100 Mi / 1 Gi |
Korg-API | 100 m - 1 000 m | 500 Mi / 500 Mi |
Marknadsförings-API | 250 m - 750 m | 500 Mi / 1 Gi |
Plats-API | 100 m - 500 m | 100 Mi / 500 Mi |
Dricks
- Kubernetes mäter processoranvändning i millicores eller tusendelar av en kärna. Därför motsvarar 100m en tiondel av en kärna, och 1000m motsvarar en enda processorkärna.
- Du kan mäta minne på flera olika sätt. Exemplen i resultatdiagrammet för prestandatestning använder Mi och Gi, som är kraften i två motsvarigheter till Megabyte och Gigabyte. 500Mi kallas vanligtvis 500 Megabyte och 1Gi kallas vanligtvis 1 Gigabyte.
Ändra storlek på noderna
Du har fastställt det minsta antalet repliker som varje tjänst ska köra och det minsta antalet processorkärnor och minne som varje tjänst kräver. Den här beräkningen ger dig en bild på 1,5 kärnor och 2,8Gi minne som utgångspunkt. När programmet skalar upp till sitt maximala antal repliker och använder sitt maximala antal processorkärnor och mängden minne behöver det 53 kärnor och 50 GB minne.
I det här scenariot är arbetsbelastningarna processorintensiva. Om du använder standarddatorn D2 v3 för generell användning behöver du ett stort antal av dem för att uppfylla arbetsbelastningens processorkrav. Den här konfigurationen skulle resultera i en stor mängd oanvänt minne på de virtuella datorerna. Nu ska vi överväga en vm-typ som är avsedd för beräkningsintensiva arbetsbelastningar. Till exempel skulle något från Fsv2-serien behöva färre virtuella datorer för att uppfylla processorkraven och skulle ha en lägre mängd oanvänt minne.
Den virtuella F8s v2-typen har 8 kärnor och 16 GB minne. Med AKS-resursreservationer har du 7820 millicores och 12,65Gi för varje nod. När du kör i maximal skala behöver du sju virtuella datorer för att hantera arbetsbelastningarna.
Nu måste du ta en titt på nätverket.