Kubernetes en KEDA-50.jpg
Balk-website.png
Event-driven scaling op het Kubernetes platform

Kubernetes & KEDA

KEDA is een component om applicaties en containers, gehost op een Kubernetes platform, dynamisch te schalen. KEDA stelt ontwikkelaars in staat om event gedreven schaling toe te passen. Het grote aantal verschillende triggers biedt de mogelijkheid om applicaties op een proactieve manier te schalen waar andere oplossingen vaak reactief zijn.

Eén van de zaken waarover nagedacht dient te worden bij het hosten van een applicatie is de te verwachte load. Immers, de verwachte load kan één van de redenen zijn om een applicatie meervoudig uit te voeren om daarmee de load aan te kunnen. Het voorbereiden op een verwachte load brengt uiteraard kosten met zich mee en dat is daarmee altijd een afweging. Wanneer de load van dynamische aard is, kan er voorbereid worden op de pieken, maar wanneer deze pieken van korte duur zijn, is dit niet altijd kostenefficiënt. Onderliggende resources, bijvoorbeeld hardware, virtual machines en nodes in het geval van Kubernetes welke permanent klaar staan om een mogelijke piek op te vangen, voegen niets toe op het moment dat de load laag is.

Dynamische schaling biedt uitkomst hierin. Applicaties kunnen opgeschaald worden wanneer er een hoge load is en kunnen weer afgeschaald worden wanneer de load laag is. In het geval van een microservice architectuur kunnen services geschaald worden daar waar de load in het systeem is. Hiermee kan specifiek geschaald worden naar de actuele behoefte. Wanneer er gebruik gemaakt wordt van een cloud provider zoals Azure, AWS, GCP etc. kunnen ook de benodigde onderliggende resources geschaald worden als de vraag groter wordt. Dit zorgt ervoor dat er kostenefficiënt ingespeeld kan worden op een veranderende load waarbij er onder een normale load geen onnodige resources stand-by staan.

Schaling op Kubernetes

Kubernetes beschikt standaard al over een horizontale schalingsoplossing middels de Horizontal Pod Autoscaler oftewel HPA. HPA stelt ontwikkelaars in staat om applicaties te laten schalen op basis van metrics. Standaard kan dit, wanneer er een metric server is gedeployed, op basis van resource metrics zoals CPU en memory gebruik. Het schalen op basis van de Horizontal Pod Autoscaler gebeurt, zoals de naam al doet vermoeden, horizontaal. Dit wil zeggen dat er meer instanties, oftewel pods, van dezelfde applicatie worden uitgerold om zo in de gevraagde load te kunnen voorzien. Het schalen gebeurt in dit geval reactief, wanneer de betreffende pod al een hoog resource verbruik van CPU en memory heeft.

KEDA plugt in op de eerder beschreven Horizontal Pod Autoscaler en stelt ontwikkelaars in staat om op meer dan de standaard resource metrics, CPU en memory verbruik, te schalen. KEDA wordt gehost op het Kubernetes platform en stelt een eigen metrics server beschikbaar. De HPA plugt hierop in om op basis van custom metrics te kunnen schalen. Hiermee wordt de toolbox van ontwikkelaars uitgebreid om onder andere te schalen op basis van events in een queue, het resultaat van een database query of metrics in Prometheus. KEDA heeft op dit moment meer dan 50 scalers beschikbaar welke gebruikt kunnen worden om applicaties te schalen.

Wil je jouw microservice, verantwoordelijk voor het afhandelen van betalingen, proactief schalen op basis van het aantal potentiële klanten, met een item in het winkelwagentje om zo een optimale klantervaring te bieden? Of is het wenselijk om aan het einde van de maand zo snel mogelijk alle financiële rapportages gegenereerd te hebben? KEDA kan in dit geval uitkomst bieden door proactief de benodigde applicaties te schalen en biedt op basis van de verschillende scalers vrijwel eindeloze mogelijkheden om te schalen.

Meer nieuwsitems!

De eerste groep alumni van Bright Minds Development Programma

Terugblik: workshop Docker voor beginners bij Bright Cubes

Bright Cubes Weekend 2024

Workshop Docker op 11 sept!