Clustergrootte schatten - Knooppunten
U moet nu bepalen welk type VM-knooppunten (virtuele machine) u nodig hebt en hoeveel knooppunten u moet uitvoeren.
Welke grootte hebt u nodig voor virtuele machines?
In Azure Kubernetes Service (AKS) is elk knooppunt in uw cluster een Azure-VM. VM's zijn voorzien van verschillende specificaties om de eisen van verschillende soorten toepassingen te ondersteunen. Sommige toepassingen hebben mogelijk meer verwerkingskracht of geheugen nodig, of snellere opslag. U moet een VM-categorie en -instantie selecteren die voldoet aan de behoeften van uw toepassing.
U wilt ervoor zorgen dat het type voldoende geheugen en verwerkingskracht heeft voor uw toepassing. Houd er rekening mee dat niet alle geheugen- en verwerkingskracht beschikbaar is voor uw toepassing. Een deel van deze stroom is nodig voor het besturingssysteem en voor Kubernetes-systeemonderdelen. AKS reserveert automatisch een bepaalde hoeveelheid geheugen en verwerkingskracht om ervoor te zorgen dat deze essentiële systeemonderdelen naar behoefte kunnen functioneren.
Het standaard-VM-type dat is geïmplementeerd als onderdeel van een AKS-cluster, is de virtuele machine voor algemeen gebruik D2 v3, een virtuele machine met twee kerngeheugens met 8 gb geheugen. AKS reserveert 100 millicores processor en 3,55 GiB geheugen, waardoor 1.900 millicores (1,9 kernen) en 5,45Gi geheugen vrij zijn voor uw toepassing.
Tip
De hoeveelheid gereserveerde processor en het geheugen is afhankelijk van het type VM dat u selecteert. Dit bedrag wordt proportioneel kleiner naarmate de VM-grootte toeneemt.
Een andere overweging is gestrande resources. Stel dat u drie toepassingen implementeert op een D2 v3-knooppunt. Elk van deze toepassingen vereist 600 millicores processor en 500Mi geheugen. Zodra u deze toepassingen hebt geïmplementeerd, blijft er 100 millicores processor over en is er ongeveer 2,05 GiB aan ongebruikt geheugen. Als u een vierde exemplaar van de toepassing hebt geïmplementeerd, moet u deze verzenden naar een nieuw knooppunt omdat de resterende 100 millicores niet voldoende zijn. Dat laat echter 2 GiB aan geheugen over op het knooppunt dat niet kan worden gebruikt. Deze geheugenresource wordt aangeduid als gestrand.
Een ideale VM-keuze is een vm met voldoende capaciteit om uw workloads uit te voeren zonder dat resources gestrand blijven. Als workloads dynamisch omhoog en omlaag worden geschaald, wilt u voldoende resources gebruiken voor typische gebruiksscenario's, maar de flexibiliteit om op te schalen wanneer dat nodig is.
Hoeveel knooppunten hebt u nodig?
Uw toepassing moet altijd beschikbaar zijn en kan fouten van de onderliggende knooppunten afhandelen. U kunt tolerantie bieden met meerdere replica's van de toepassing, verspreid over meerdere knooppunten.
AKS heeft knooppuntgroepen, die groepen virtuele machines van hetzelfde type zijn. U kunt meerdere knooppuntgroepen hebben. U kunt bijvoorbeeld een knooppuntgroep hebben met vm's voor algemeen gebruik, een knooppuntgroep met vm's die zijn geoptimaliseerd voor geheugen en een knooppuntgroep met GPU-VM's. Vervolgens kunt u de systeemeigen Kubernetes-planningsfunctie gebruiken om ervoor te zorgen dat uw workloads worden geïmplementeerd in de juiste knooppuntgroep en het VM-type.
Knooppuntgroepen kunnen een van de volgende twee modi ondersteunen: Systeem of Gebruiker. Systeemknooppuntgroepen voeren kritieke systeempods uit die essentieel zijn voor de werking van uw Kubernetes-cluster, waaronder services zoals opslagstuurprogramma's, DNS of metrische servers. Gebruikersknooppuntgroepen voeren uw toepassingen uit.
In een standaardconfiguratie bevat een AKS-cluster één systeemknooppuntgroep, die wordt gebruikt om alles uit te voeren. Desgewenst kunt u extra systeem- of gebruikersknooppuntgroepen toevoegen en uw toepassingspods zo configureren dat deze uitsluitend worden uitgevoerd in de gebruikersknooppuntgroepen. Kritieke systeempods worden alleen uitgevoerd in de systeemknooppuntgroepen. Het gebruik van systeem- en gebruikersknooppuntgroepen kan voorkomen dat onjuist geconfigureerde toepassingen van invloed zijn op de werking van kritieke systeemservices en waardoor het cluster mogelijk mislukt.
Kubernetes kan indien nodig ook knooppunten toevoegen of verwijderen. Als u van plan bent deze functie te gebruiken, moet u een bovengrens definiëren voor het maximum aantal knooppunten waarnaar Kubernetes omhoog kan schalen. Plan vervolgens uw netwerkontwerp rond dat maximumaantal. Houd er rekening mee dat u rekening moet houden met ten minste één extra knooppunt per cluster, zodat het updateproces correct kan worden uitgevoerd.
Tip
U kunt het aantal bijgewerkte knooppunten op een bepaald moment configureren, waarbij één de standaardwaarde is. Het upgraden van meer dan één knooppunt tegelijk kan de totale tijd die nodig is om een cluster bij te werken verminderen. U moet rekening houden met extra knooppunten als onderdeel van uw planning.
Hoeveel knooppunten moet u uitvoeren?
Als u wilt bepalen hoeveel knooppunten moeten worden uitgevoerd, moet u de processor- en geheugenvereisten van de toepassing begrijpen. Het ontwikkelteam heeft u de resultaten van hun prestatietests gegeven met details over hoeveel processor en geheugen de services nodig hebben. De resultaten omvatten de basislijnvereisten, samen met de maximumbedragen voor drukkere perioden:
Service | Processor min/max | Geheugen min/max |
---|---|---|
Front-end van website | 250 m / 1000 m | 250 Mi / 1 Gi |
Identiteits-API | 100 m / 500 m | 250 Mi / 500 Mi |
Catalog API | 500 m - 1000 m | 1 Gi / 1 Gi |
Orders-API | 100 m - 1000 m | 100 Mi / 1 Gi |
Helper voor orders | 100 m - 1000 m | 100 Mi / 1 Gi |
Basket-API | 100 m - 1000 m | 500 Mi / 500 Mi |
Marketing-API | 250 m - 750 m | 500 Mi / 1 Gi |
Locaties-API | 100 m - 500 m | 100 Mi / 500 Mi |
Tip
- Kubernetes meet het processorgebruik in millicores of duizendde van een kern. Daarom is 100 m gelijk aan een tiende van een kern en 1000 m gelijk aan één processorkern.
- U kunt het geheugen op verschillende manieren meten. De voorbeelden in de grafiek met resultaten van prestatietests maken gebruik van Mi en Gi, die de kracht zijn van twee equivalenten van Megabyte en Gigabyte. 500Mi wordt over het algemeen aangeduid als 500 Megabytes en 1Gi wordt meestal aangeduid als 1 Gigabyte.
De grootte van uw knooppunten aanpassen
U hebt bepaald hoeveel replica's elke service moet uitvoeren en het minimale aantal processorkernen en het geheugen dat elke service nodig heeft. Deze berekening geeft u een afbeelding van 1,5 kernen en 2,8Gi geheugen als uitgangspunt. Wanneer de toepassing omhoog wordt geschaald tot het maximum aantal replica's en het maximale aantal processorkernen en de hoeveelheid geheugen gebruikt, heeft deze 53 kernen en 50 GB geheugen nodig.
In dit scenario zijn de workloads CPU-intensief. Als u met de standaard-VM voor algemeen gebruik van D2 v3 gaat, hebt u een groot aantal nodig om te voldoen aan de processorvereisten van de workload. Deze configuratie zou resulteren in een grote hoeveelheid ongebruikt geheugen op de VM's. Laten we eens kijken naar een VM-type dat is bedoeld voor rekenintensieve workloads. Zo heeft iets uit de Fsv2-serie minder VM's nodig om te voldoen aan de processorvereisten en zou een lagere hoeveelheid ongebruikt geheugen hebben.
Het VM-type F8s v2 heeft 8 kernen en 16 GB geheugen. Met de AKS-resourcereserveringen hebt u 7820 millicores en 12.65Gi voor elk knooppunt. Wanneer u op maximale schaal wordt uitgevoerd, hebt u zeven VM's nodig om de workloads te verwerken.
Nu moet u het netwerk bekijken.