Meerdere knooppunten configureren en schalen naar nul inschakelen met behulp van AKS

Voltooid

Met Azure Kubernetes Service kunt u verschillende knooppuntgroepen maken die overeenkomen met specifieke workloads voor de knooppunten die in elke knooppuntgroep worden uitgevoerd. Met het proces van het koppelen van workloads aan knooppunten kunt u het rekenverbruik plannen en de kosten optimaliseren.

De dronetraceringsoplossing van uw bedrijf is in Azure Kubernetes Service (AKS) geïmplementeerd als een groot aantal containertoepassingen en -services. Uw team heeft een nieuwe voorspellende modelleringsservice ontwikkeld waarmee vliegroutegegevens in extreme weersomstandigheden worden verwerkt en optimale vliegroutes worden gemaakt. Voor deze service is ondersteuning vereist van op GPU gebaseerde virtuele machines (VM's). De service wordt alleen op bepaalde dagen van de week uitgevoerd.

U wilt een clusterknooppuntgroep configureren die is toegewezen aan de verwerking van vliegroutegegevens. Het proces wordt slechts een paar uur per dag uitgevoerd en u wilt een op GPU gebaseerde knooppuntgroep gebruiken. U wilt echter alleen voor de knooppunten betalen wanneer u deze gebruikt.

Laten we eens kijken hoe knooppuntgroepen en hoe AKS knooppunten gebruikt en hoe u vervolgens het aantal knooppunten in een knooppuntgroep kunt schalen.

Wat is een knooppuntgroep?

Een knooppuntgroep beschrijft een groep knooppunten in een AKS-cluster die dezelfde configuratie hebben. Deze knooppunten bevatten de onderliggende virtuele machines waarop uw toepassingen worden uitgevoerd. U kunt op een met AKS beheerd Kubernetes-cluster twee typen knooppuntgroepen maken:

  • Systeemknooppuntgroepen

  • Gebruikersknooppuntgroepen

Systeemknooppuntgroepen

Systeemknooppuntgroepen hosten kritieke systeempods waaruit het besturingsvlak van uw cluster bestaat. Een systeemknooppuntgroep staat alleen het gebruik van Linux als knooppuntbesturingssysteem toe en voert alleen op Linux gebaseerde werkbelastingen uit. Knooppunten in een systeemknooppuntgroep zijn gereserveerd voor systeemwerkbelastingen en worden normaal gesproken niet gebruikt om aangepaste werkbelastingen uit te voeren. Elk AKS-cluster moet ten minste één systeemknooppuntgroep met ten minste één knooppunt bevatten en u moet de grootte van de onderliggende VM's voor knooppunten definiëren.

Gebruikersknooppuntgroepen

Gebruikersknooppuntgroepen ondersteunen uw workloads en bieden u de mogelijkheid om Windows of Linux op te geven als het besturingssysteem van het knooppunt. U kunt ook de grootte van de onderliggende VM's voor knooppunten definiëren en specifieke werkbelastingen uitvoeren. Uw oplossing voor het traceren van drones heeft bijvoorbeeld een batchverwerkingsservice die u implementeert in een knooppuntgroep met een configuratie voor vm's voor algemeen gebruik. Voor de nieuwe voorspellende modelleringsservice zijn op GPU gebaseerde VM's met hogere capaciteit vereist. U besluit om een afzonderlijke knooppuntgroep te configureren en deze te configureren voor het gebruik van GPU-knooppunten.

Aantal knooppunten in een knooppuntgroep

U kunt maximaal 100 knooppunten configureren in een knooppuntgroep. Het aantal knooppunten dat u gaat configureren, is echter afhankelijk van het aantal pods dat per knooppunt wordt uitgevoerd.

In een systeemknooppuntgroep is het bijvoorbeeld essentieel dat het maximale aantal pods dat op één knooppunt wordt uitgevoerd, is ingesteld op 30. Deze waarde garandeert dat er voldoende ruimte beschikbaar is om de systeempods uit te voeren die essentieel zijn voor de clusterstatus. Wanneer het aantal pods deze minimumwaarde overschrijdt, zijn nieuwe knooppunten in de pool vereist om extra workloads te plannen. Daarom heeft een systeemknooppuntgroep ten minste één knooppunt in de groep nodig. Voor productieomgevingen is het aanbevolen aantal knooppunten voor een systeemknooppuntgroep minimaal drie knooppunten.

Gebruikersknooppuntgroepen zijn ontworpen om aangepaste werkbelastingen uit te voeren en hebben niet de vereiste van 30 pods. Met gebruikersknooppuntgroepen kunt u het aantal knooppunten voor een groep instellen op nul.

Toepassingsvraag in een AKS-cluster beheren

Wanneer u in AKS de hoeveelheid rekenresources in een Kubernetes-cluster verhoogt of verlaagt, schaalt u. U kunt het aantal workloadexemplaren schalen dat moet worden uitgevoerd of het aantal knooppunten waarop deze workloads worden uitgevoerd. U kunt workloads op een door AKS beheerd cluster op twee manieren schalen. De eerste optie is om de pods of knooppunten handmatig naar behoefte te schalen. De tweede optie is via automatisering, waar u de horizontale automatische schaalaanpassing van pods kunt gebruiken om pods en de automatische schaalaanpassing van clusters te schalen om knooppunten te schalen.

Een knooppuntgroep handmatig schalen

Als u workloads uitvoert die worden uitgevoerd voor een specifieke duur met specifieke bekende intervallen, is het handmatig schalen van de grootte van de knooppuntgroep een goede manier om de kosten van knooppunten te beheren.

Stel dat voor de voorspellende modelleringsservice een op GPU gebaseerde knooppuntgroep is vereist en dat deze elke dag om de middag een uur wordt uitgevoerd. U kunt de knooppuntgroep configureren met specifieke op GPU gebaseerde knooppunten en de knooppuntgroep schalen naar nul knooppunten wanneer u het cluster niet gebruikt.

Hier volgt een voorbeeld van de opdracht az aks node pool add waarmee u de knooppuntgroep kunt maken. Let op de parameter --node-vm-size, die de Standard_NC6 op GPU gebaseerde VM-grootte voor de knooppunten in de groep aangeeft.

az aks nodepool add \
    --resource-group resourceGroup \
    --cluster-name aksCluster \
    --name gpunodepool \
    --node-count 1 \
    --node-vm-size Standard_NC6 \
    --no-wait

Als de groep klaar is, kunt u de opdracht az aks nodepool scale gebruiken om de knooppuntgroep te schalen naar nul knooppunten. Merk op dat de parameter --node-count is ingesteld op nul. Hier volgt een voorbeeld van de opdracht:

az aks nodepool scale \
    --resource-group resourceGroup \
    --cluster-name aksCluster \
    --name gpunodepool \
    --node-count 0

Een cluster automatisch schalen

Diagram that shows how the cluster autoscaler adds nodes and how the horizontal pod autoscaler adds pods.

AKS maakt gebruik van de automatische schaalaanpassing van Kubernetes-clusters om werkbelastingen automatisch te schalen. Het cluster kan worden geschaald met behulp van twee opties:

  • De horizontale automatische schaalaanpassing van pods

  • De automatische schaalaanpassing van clusters

We gaan beide opties bekijken, te beginnen met de horizontale automatische schaalaanpassing van pods.

Horizontale automatische schaalaanpassing van pods

Gebruik de horizontale schaalaanpassing van Kubernetes voor het bewaken van de vraag naar resources in een cluster en het automatisch schalen van het aantal werkbelastingsreplica's.

De server voor metrische Kubernetes-gegevens verzamelt metrische geheugen- en processorgegevens van controllers, knooppunten en containers die worden uitgevoerd in het AKS-cluster. Eén manier om toegang te krijgen tot deze gegevens is met behulp van de API van metrische gegevens. De horizontale automatische schaalaanpassing van pods controleert elke 30 seconden de Api voor metrische gegevens om te bepalen of uw toepassing meer exemplaren nodig heeft om te voldoen aan de vereiste vraag.

Stel dat uw bedrijf ook een batchverwerkingsservice heeft waarmee vluchtroutes van drones worden gepland. U ziet dat de service wordt overspoeld met aanvragen en een achterstand van leveringen opstelt, wat vertragingen en frustraties voor klanten veroorzaakt. Het verhogen van het aantal batchverwerkingsservicereplica's kan de tijdige verwerking van orders mogelijk maken.

Om het probleem op te lossen, configureert u de horizontale automatische schaalaanpassing van pods om het aantal servicereplica's te verhogen wanneer dat nodig is. Wanneer het aantal batchaanvragen afneemt, wordt het aantal servicereplica's verlaagd.

Met de horizontale schaalaanpassing van pods worden echter alleen pods op beschikbare knooppunten in de geconfigureerde knooppuntgroepen van het cluster geschaald.

Automatische schaalaanpassing van clusters

Een resourcebeperking wordt geactiveerd wanneer de horizontale automatische schaalaanpassing van pods geen andere pod kan plannen op de bestaande knooppunten in een knooppuntgroep. U moet de automatische schaalaanpassing van clusters gebruiken om het aantal knooppunten in de knooppuntgroepen van een cluster te schalen in tijden van beperkingen. De automatische schaalaanpassing van clusters controleert de gedefinieerde metrische gegevens en schaalt het aantal knooppunten op basis van de vereiste computingresources.

De automatische schaalaanpassing van clusters wordt naast de automatische horizontale schaalaanpassing van pods gebruikt.

De automatische schaalaanpassing van clusters wordt voor zowel omhoog als omlaag schalen gebruikt. Hiermee kan het Kubernetes-cluster het aantal knooppunten in een knooppuntgroep wijzigen als de vraag naar resources verandert.

U configureert elke knooppuntgroep met andere schaalregels. U wilt bijvoorbeeld slechts één knooppuntgroep configureren om automatisch schalen toe te staan, of u kunt een knooppuntgroep zodanig configureren dat deze alleen wordt geschaald naar een bepaald aantal knooppunten.

Belangrijk

U verliest de mogelijkheid om het aantal knooppunten naar nul te schalen wanneer u de automatische schaalaanpassing van clusters voor een knooppuntgroep inschakelt. In plaats daarvan kunt u het minimumaantal instellen op nul om te besparen op clusterbronnen.

Test uw kennis

1.

Stel dat uw softwareoplossing drie essentiële onderdelen bevat. Het eerste onderdeel is een webtoepassing. Het tweede is een service waarmee onlinebestellingen worden verwerkt. Het derde is een videoweergave- en analyseservice die alleen wordt uitgevoerd als dat nodig is en waarvoor op GPU gebaseerde VM's zijn vereist. Hoeveel knooppuntgroepen zou u in een AKS-clusters (Azure Kubernetes Service) implementeren om de oplossing te beheren en kosten te optimaliseren?

2.

Bekijk de volgende uitspraak. De automatische schaalaanpassing van Kubernetes-clusters schaalt...