Alles over Kubernetes

Alles over Kubernetes

12 juni 2019

1. Wat is Kubernetes?

Kubernetes (korte benaming: K8S) is een draagbaar, uitbreidbaar open-sourceplatform voor het beheer van workloads in containers en services, dat zowel configuratie als automatisering mogelijk maakt. Het heeft een groot, snel groeiend ecosysteem. De services, support en tools van Kubernetes zijn overal beschikbaar.

Google heeft het Kubernetes-project in 2014 opengesteld. Kubernetes bouwt voort op meer dan 10 jaar ervaring die Google heeft met het op grote schaal uitvoeren van productie-workloads, gecombineerd met de meest creatieve ideeën en werkwijzen van de community.

2. Eerst even de basis

Om te weten waarom Kubernetes de virtuele wereld aan het veroveren is, zijn er enkele zaken die je moet weten. Kubernetes is een complex geheel, bestemd voor mensen die knowhow hebben in een technische omgeving. Toch zal ik proberen dit zo eenvoudig mogelijk uit te leggen.

2.1 Meerdere Virtual Machines?

Wanneer je een applicatie op een server in de cloud wil draaien, plaats je een applicatie in een Virtual Machine (VM). Deze doet zich voor als een fysieke computer, zodat het voor de applicatie lijkt alsof het op een echt systeem draait. De VM focust zich op de hardware van een pc en draait daarbovenop een besturingssysteem, zoals Windows of Linux.

Maar om aan een grotere vraag tegemoet te komen, draaien we meerdere instanties van de app. Normaal doe je dit door nieuwe VM’s te creëren. Maar dit vraagt veel rekenwerk van de server en dus ook meer budget.

2.2 Containers zijn een betere oplossing

Er is een betere manier om een grotere applicatie op een server in de cloud te laten draaien: het gebruik van “Containers”. Containers zijn in feite slimme “light” VM’s die in plaats van een hele pc te draaien, alleen op de noodzakelijke onderdelen focussen. Op deze manier wordt de applicatie in een container geplaatst met enkel de hoogstnoodzakelijke functies, om zo performant mogelijk te presteren. Docker is het bekendste en wereldwijd meest gebruikte voorbeeld van containertechnologie.

2.3 Voordelen van containers

Voordelen van Containers:

  • Kan overal draaien: lokaal, staging, productie, ... zolang Docker is geïnstalleerd
  • Kleiner, lichter: makkelijk te verplaatsen van omgeving, neemt minder resources in beslag, efficiënter
  • Easy deployment: alles wat de applicatie nodig heeft, draait in de container dus je moet enkel nog je container opzetten
  • Makkelijk in beheer: draai meerdere technologieën heel makkelijk op één en dezelfde omgeving. Upgraden van versie is niet meer dan een nieuwe container doen draaien.
  • Schaalbaarheid: er kunnen makkelijk meerdere containers draaien van één en dezelfde applicatie, om de load te kunnen verdelen.

2.4 Nadelen van containers

Het beheren van containers is doenbaar, zelfs als we het er over tientallen hebben. Maar wanneer we het over 1000 of meer instanties van een applicatie hebben, is het pure overkill voor 1 IT-beheerder. En dat is net de keerzijde van de medaille.

2.4.1 Hoezo overkill?

Om kostenefficiënt te blijven bij het draaien van meer dan 1000 instanties, moeten alle workloads zo efficiënt mogelijk verdeeld worden over de beschikbare hardware. Bovendien moet dit systeem blijven draaien en daarom is een performante oplossing onontbeerlijk.

3. Kubernetes for the win!

Hier komt Kubernetes in beeld. Kubernetes is een Grieks woord en staat voor ‘Stuurman van het schip’. Het laat een administrator toe om heel eenvoudig containers uit te rollen en neemt het management van de uitgerolde containers in het datacenter op zich.

3.1 Waarom Kubernetes?

Met Kubernetes gunt een beheerder zichzelf enkele niet te missen voordelen:

  • autoscaling
  • gebruiksgemak 
  • totale automatisering
  • niet te missen, dagelijks gebruikte services
  • redundant by design
  • loadbalancing standaard ingebouwd 
  • rolling updates: zo wordt je applicatie aangepast zonder enige downtime

Kubernetes biedt een beheeromgeving waarin containers centraal staan. Het orkestreert computer-, netwerk- en opslaginfrastructuur ten dienste van gebruikersworkloads. Dit biedt veel van de eenvoud van Platform as a Service (PaaS) met de flexibiliteit van Infrastructure as a Service (IaaS) en maakt draagbaarheid over infrastructuuraanbieders mogelijk.

3.2 Hoe gaat Kubernetes met containers om? Pods!

Kubernetes werkt met ‘pods’. Een pod is een omhulsel voor één of meerdere containers. In één pod plaats je enkel containers die nauw met elkaar samenwerken en dezelfde systeembronnen zullen gebruiken. Geen meerdere instanties van dezelfde applicatie, maar eerder een bundeling van verschillende applicaties in containers, die samen deel uitmaken van een proces. Alles wat in een pod zit, draait steeds op hetzelfde systeem.

4. Allemaal goed en wel, maar wat doet Level27 met Kubernetes?

Zonder enige voorkennis aan Kubernetes beginnen, raden wij af. Er kunnen enkele gevaren om de hoek schuilen:

  • Failures zijn soms moeilijk te lokaliseren door het groot aantal containers;
  • Bij fout gebruik kan je snel tegen de lamp lopen (iedereen kan snel rijden, maar zonder de nodige behendigheid is een crash gauw gebeurd)

Zoals je misschien al wel weet, zijn we erg fan van Kubernetes bij Level27. We hadden al redelijk snel ingezien dat het een platform is met veel potentieel en hebben ons er daarom meteen in verdiept. Momenteel lopen er een paar projecten bij klanten. Deze projecten verlopen heel voorspoedig en dankzij vlotte communicatie, concrete afspraken en een dosis gezond verstand bereiken we heel mooie resultaten. Hoe we dat precies aanpakken bij onze klanten? Wel, per situatie bekijken we wat de ideale setup is en gaan we heel gedetailleerd te werk. We gaan na wat de specifieke wensen zijn en bieden hier een oplossing voor. Samen bekijken we hoe we de performantie en snelheid van de applicaties op een zo hoog mogelijk niveau kunnen plaatsen. Zo kunnen onze klanten ten volle van managed container hosting genieten, waarbij wij in tussentijd de omgeving 24/7 ondersteunen, monitoren en ingrijpen wanneer nodig.

5. Conclusie: Kubernetes is geen piece of cake!

Kubernetes is complex. Organisaties die de stap wagen, lopen al snel tegen verschillende complexiteiten aan, zoals het inrichten en beheren van infrastructuur, storage, load balancing en andere netwerkcomponenten. Level27 neemt de volledige verantwoordelijkheid over het inrichten, managen en 24/7 beschikbaar houden van je containerplatform. Via een uitgekiend SLA-document kan je alles te weten komen over je garanties over uptime, performantie en proactieve monitoring. Nog vragen? Aarzel niet om contact op te nemen, telefonisch of via het contactformulier hieronder.

Een opmerking of vraag?

Stuur ons een bericht en we koppelen zo snel mogelijk terug.

Deze vraag is om te controleren dat u een mens bent, om geautomatiseerde invoer (spam) te voorkomen.