Meerdere knooppunten configureren en schalen naar nul inschakelen met behulp van AKS
Met Azure Kubernetes Service kunt u verschillende knooppuntgroepen maken om specifieke workloads te koppelen aan 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 oplossing voor het traceren van drones van uw bedrijf wordt geïmplementeerd in Azure Kubernetes Service (AKS) als vele gecontaineriseerde toepassingen en services. Uw team heeft een nieuwe voorspellende modelleringsservice ontwikkeld die vluchtweginformatie in extreme weersomstandigheden verwerkt en optimale vluchtroutes creëert. Deze service vereist ondersteuning voor virtuele machines (VM's) op basis van GPU en wordt alleen uitgevoerd op specifieke dagen in de week.
U wilt een clusterknooppuntgroep configureren die is toegewezen aan het verwerken van informatie over het vluchtpad. Het proces wordt slechts een paar uur per dag uitgevoerd en u wilt een op GPU gebaseerde knooppuntgroep gebruiken. U wilt echter alleen betalen voor de knooppunten wanneer u ze 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 met dezelfde configuratie in een AKS-cluster. Deze knooppunten bevatten de onderliggende VM's waarop uw toepassingen worden uitgevoerd. U kunt twee typen knooppuntgroepen maken op een Door AKS beheerd Kubernetes-cluster:
Systeemknooppuntgroepen
Gebruikersknooppuntgroepen
Systeemknooppuntgroepen
Systeemknooppuntgroepen hosten kritieke systeempods waaruit het besturingsvlak van uw cluster bestaat. Een systeemknooppuntgroep staat het gebruik van Linux alleen toe als het knooppuntbesturingssysteem en voert alleen op Linux gebaseerde workloads uit. Knooppunten in een systeemknooppuntgroep zijn gereserveerd voor systeemworkloads en worden normaal gesproken niet gebruikt om aangepaste workloads uit te voeren. Elk AKS-cluster moet ten minste één systeemknooppuntgroep met ten minste één knooppunt bevatten en u moet de onderliggende VM-grootten voor knooppunten definiëren.
Gebruikersknooppuntgroepen
Gebruikersknooppuntgroepen ondersteunen uw workloads en u kunt Windows of Linux opgeven als het knooppuntbesturingssysteem. U kunt ook de onderliggende VM-grootten voor knooppunten definiëren en specifieke workloads 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 een hogere capaciteit vereist. U besluit 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 in een knooppuntgroep configureren. Het aantal knooppunten dat u wilt configureren, is echter afhankelijk van het aantal pods dat per knooppunt wordt uitgevoerd.
In een systeempool voor knooppunten is het bijvoorbeeld essentieel om het maximale aantal pods dat op één knooppunt wordt uitgevoerd, op 30 in te stellen. Deze waarde garandeert dat er voldoende ruimte beschikbaar is om de systeempods uit te voeren die essentieel zijn voor de gezondheid van de cluster. 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 pool nodig. Voor productieomgevingen is het aanbevolen aantal knooppunten voor een systeemknooppuntgroep minimaal drie knooppunten.
Gebruikersnode-pools zijn ontworpen om aangepaste workloads te draaien en hebben niet de vereiste van 30 pods. Met gebruikersknooppuntgroepen kunt u het aantal knooppunten voor een pool instellen op nul.
Toepassingsvraag beheren in een AKS-cluster
Wanneer u in AKS de hoeveelheid rekenresources in een Kubernetes-cluster verhoogt of verlaagt, uschalen. U kunt ofwel het aantal workload-instanties 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 indien nodig handmatig te schalen. De tweede optie is via automatisering, waarbij u de horizontale automatische schaalaanpassing kunt gebruiken om pods te schalen en de automatische schaalaanpassing van clusters 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 GPU-knooppunten en de knooppuntgroep schalen naar nul knooppunten wanneer u het cluster niet gebruikt.
Hier volgt een voorbeeld van de az aks node pool add
opdracht die u kunt gebruiken om de knooppuntgroep te maken. Let op de --node-vm-size
parameter, waarmee de Standard_NC6
VM-grootte op basis van GPU wordt opgegeven voor de knooppunten in de pool.
az aks nodepool add \
--resource-group resourceGroup \
--cluster-name aksCluster \
--name gpunodepool \
--node-count 1 \
--node-vm-size Standard_NC6 \
--no-wait
Wanneer de pool klaar is, kunt u de opdracht az aks nodepool scale
gebruiken om de knooppuntgroep te schalen naar nul knooppunten. U ziet 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
AKS maakt gebruik van de automatische schaalaanpassing van Kubernetes-clusters om workloads automatisch te schalen. Het cluster kan worden geschaald met behulp van twee opties:
De horizontale automatische schaalaanpassing van pods
Cluster-autoscaler
Laten we eens kijken naar elke optie, te beginnen met de horizontale pod autoscaler.
Horizontale automatische schaalaanpassing van pods
Gebruik de Kubernetes horizontale pod autoscaler om de vraag naar resources op een cluster te bewaken en het aantal workloadreplica's automatisch te schalen.
De Kubernetes Metrics Server verzamelt metrische geheugen- en processorgegevens van controllers, knooppunten en containers die worden uitgevoerd op het AKS-cluster. Een manier om toegang te krijgen tot deze informatie is door de Api voor metrische gegevens te gebruiken. De horizontale automatische schaalaanpassing van pods controleert de API voor metrieken elke 30 seconden om te bepalen of uw toepassing meer exemplaren nodig heeft om te voldoen aan de 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 replica's van batchverwerkingsdiensten kan de tijdige verwerking van orders mogelijk maken.
Om het probleem op te lossen, configureert u de horizontale pod-autoscaler om het aantal servicereplica's te verhogen wanneer dat nodig is. Wanneer het aantal batchaanvragen afneemt, neemt het aantal servicereplica's af.
De horizontale podschaalaanpassing schaalt pods echter alleen op beschikbare knooppunten in de geconfigureerde knooppools van het cluster.
Automatische schaalaanpassing van clusters
Een resourcebeperking wordt geactiveerd wanneer de horizontale podschaalregelaar geen extra pod kan inplannen op de bestaande knooppunten in een knooppool. 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 omhoog of omlaag op basis van de vereiste rekenresources.
De cluster autoscaler wordt gebruikt naast de horizontale pod autoscaler.
De cluster autoscaler controleert op gebeurtenissen voor omhoog en omlaag schalen en stelt het Kubernetes-cluster in staat om het knooppuntaantal in een knooppuntgroep te wijzigen naarmate de vraag naar resources verandert.
U configureert elke knooppuntgroep met verschillende 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 in een knooppuntgroep inschakelt. In plaats daarvan kunt u het minimumaantal instellen op nul om te besparen op clusterbronnen.