Kubernetes als heilige graal of zijn we de hype voorbij? 

Kubernetes heeft alles in huis om van een applicatie een geoliede machine te maken, als je over het juiste product beschikt en voldoende in-house kennis hebt.  

Kubernetes is een platform voor de uitrol en het beheer van containers op grote schaal. De laatste jaren is het een hip concept geworden en wagen alsmaar meer bedrijven de overstap van traditionele hosting naar containers. Al zijn er ook enkele kanttekeningen bij te maken en zal dit niet voor elk bedrijf even interessant zijn. Voordat we de voor- en nadelen van Kubernetes uitlichten, zetten we eerst een kleine stap terug om meer duiding te geven bij het concept containers en Kubernetes. 

In plaats van één grote applicatie te hebben die al het werk verricht, wordt de applicatie opgedeeld in verschillende componenten of containers, bijvoorbeeld één component voor stockbeheer en een ander component voor mailverkeer. Die componenten hebben alles in huis om hun eigen onderdeel te beheren, maar werken ook naadloos samen. Kubernetes vormt de controle- of managementlaag boven op dat containersysteem.  

Schaalbare efficiëntie

Bij traditionele machines wordt de website in een virtuele computer gestoken die zich voordoet als fysieke computer, zodat het lijkt alsof de website op een echt systeem draait. Een virtuele machine is een software die de hardware omtovert tot meerdere virtuele servers. Elk van die servers bestaat uit een volledige kopie van het besturingssysteem en de applicatie. Dit vergt bijgevolg veel rekenkracht wanneer voor ieder onderdeel de hele server in gang wordt gezet. Op gebied van schaalbaarheid zijn virtuele machines dus geen efficiënte keuze, integendeel.  

“In tegenstelling tot traditionele virtuele machines, waar heel wat rekenkracht verloren gaat, heb je met Kubernetes de mogelijkheid om individuele componenten meer of minder te laten draaien, zonder dat dit een impact heeft op jouw infrastructuur”, zegt Johnny Bouckaert, Teamlead Site reliability engineering (SRE) bij Combell. “Dit spaart niet alleen heel wat energie en kosten uit, het zorgt er ook voor dat er geen downtime van de website is. Het is bovendien mogelijk om de nieuwe container pas op actief te zetten, wanneer alle onderdelen bij downtime opnieuw correct werken.” 

Je kan virtuele machines en containers vergelijken met boksers. Een virtuele machine is een zwaargewicht bokser die heel hard kan uithalen, maar niet erg wendbaar is. De container daarentegen is een middengewicht die nog steeds veel kracht heeft, maar vlotter door de ring kan bewegen. Containers bieden dus een betere mix tussen rekenkracht en flexibiliteit. 

Je kan componenten updaten zonder dat er downtime van de website is

Johnny Bouckaert, Teamlead SRE bij Combell 

Kapitein van het schip

Naast de schaalbare efficiëntie is er volgens Bouckaert nog een ander niet te onderschatten voordeel verbonden aan Kubernetes, namelijk het self-healing-karakter. Dit is een eigenschap van Kubernetes waarmee, zoals de term het al verklapt, het zichzelf kan herstellen. Stel je voor dat één van je applicaties opeens crasht. Bij traditionele, virtuele machines bel je in allerijl je IT-collega uit bed die vervolgens ’s nachts aan het werk moet, een nachtelijke uitstap maakt op zoek naar het probleem en de oplossing. Kubernetes doet dit voor jou en analyseert automatisch malafide componenten om ze nadien zelf te herstellen. Dit creëert een gemoedsrust voor de IT-specialisten en spaart hen slapeloze nachten uit. 

Kubernetes heeft ook alles in huis om te automatiseren, net zoals bij klassieke systemen. Alleen beschikt Kubernetes over een ingebouwde API dat meer aanleunt bij automatisatie. “Deze automatiseringen zorgen er op lange termijn voor dat bedrijven kosten winnen doordat deployments automatisch verlopen en één druk op de knop volstaat om het proces in gang te zetten. Bovendien biedt Kubernetes meer inzicht en controle over al je individuele componenten. Zo kan je bijvoorbeeld duidelijk zien hoeveel een bepaalde component aan CPU verbruikt of hoeveel traffic er is”, aldus Bouckaert. 

Uit de startblokken geraken

In een ideaal scenario komen bedrijven eerst aankloppen bij Combell, hebben ze de juiste redenen gevonden om Kubernetes in te zetten in hun bedrijf en starten ze van nul met hun website. Vanaf dat punt wordt er samen met Combell een gericht plan van aanpak opgestart om met Kubernetes aan de slag te gaan. “Dat is de ideale wereld en komt helaas zelden voor”, voegt Bouckaert er lachend aan toe. 

Dat brengt ons bij het eerste struikelblok van Kubernetes. “De meeste bedrijven die met Kubernetes aan de slag willen gaan, beschikken al over een website. Vaak is deze website enkele jaren oud en is die in het beste geval doorheen de jaren up to date gehouden”, vertelt Bouckaert. “Om over te stappen naar een containersysteem, moeten bedrijven hun bestaande website op te delen in verschillende applicaties zodat ze als afzonderlijke delen kunnen functioneren. Deze stap moeten bedrijven zelf uitvoeren en wordt vaak onderschat.” 

Eenmaal de applicatie opgedeeld is in containers, moet het nog op Kubernetes gezet worden. “Het is niet omdat je Docker hebt draaien op je systeem, dat je je Kubernetes daar zomaar ergens kan zetten. Er is deployment nodig om objecten zoals bijvoorbeeld pods of ingresses te kunnen aanmaken”, weet Bouckaert. Als deze termen vraagtekens bij jou oproepen, geeft dat al een duidelijke indicatie van het volgende struikelbok. 

In de running blijven

Er is een keerzijde van de medaille. Hoewel Kubernetes de ideale oplossing biedt voor schaalbaarheid, efficiëntie en automatisatie, ligt de complexiteit ervan hoger in vergelijking met traditionele systemen. Concepten zoals pods, ingresses of nodes kunnen je maar beter bekend in de oren klinken voor je jezelf verliest in Kubernetes. Een goede kennis van de basisbeginselen is dus wenselijk, maar tegelijkertijd niet onoplosbaar. Daarnaast krijgt Kubernetes twee keer per jaar een update. Wil je niet achter de feiten aanlopen, kan je maar beter op de hoogte blijven van die updates.  

Combell als sidekick

Combell zou Combell niet zijn als het geen oplossingen in petto heeft voor bovenstaande struikelblokken. “We bieden niet zomaar Kubernetes aan: er zijn genoeg providers die dat doen”, vertelt Bouckaert. “We bieden een Service Level Agreement (SLA) aan”, gaat hij verder. “Om de complexiteit van het systeem te verlagen, helpen we klanten die de basiskennis nog niet op zak hebben op weg aan de hand van calls en voorbeelden. Duiken er toch problemen op die Kubernetes niet kan oplossen, dan zullen wij deze aanpakken.”  

Daarnaast biedt Combell verschillende tools aan om bijvoorbeeld de prestaties van individuele containers te meten en statistieken te verzamelen in dashboards. “Bedrijven sturen ons soms hun pipelines door om te vragen waar de fout zit”, vertelt Bouckaert. “Wij kijken vervolgens naar de gepaste oplossing, maar er is niet één uniform antwoord. Er moet altijd gekeken worden naar de specifieke use-case en hoe het bedrijf die wenst te gebruiken.”  

lees ook

Traditionele hosting of containers met Kubernetes? En moet dat dan bij een hyperscaler?

Deze diensteverlening vind je niet terug bij hyperscalers, maar heeft natuurlijk een prijskaartje. Met Kubernetes bespaar je enerzijds kosten uit doordat bepaalde processen geautomatiseerd worden en geen manueel werk van IT-medewerkers vereisen, anderzijds hangt er aan de integratie, zeker met ondersteuning, een prijskaartje vast.  

“We hebben nog maar één klant gehad die op Kubernetes zat en uiteindelijk besloot om terug over te schakelen op het klassieke systeem,” weet Bouckaert. De reden? “Ze hadden niet voldoende mensen in dienst om dat systeem in hun bedrijf te draaien. Niet alle applicaties zijn geschikt voor Kubernetes. Bedrijven moeten beschikken over de juiste producten en voldoende kennis,” stelt Bouckaert. Wanneer hier een match in gevonden is samen met de klant, stelt Kubernetes zelden teleur. Heel wat bedrijven omarmen het platform en dit zal in de toekomst niet snel veranderen.

nieuwsbrief

Abonneer je gratis op ITdaily !

  • This field is for validation purposes and should be left unchanged.