Kubernetes door de ogen van Level27: Deel 1

    Roald Lenaerts
    by Roald Lenaerts
Kubernetes door de ogen van Level27

Kubernetes is een container orkestratie systeem dat steeds meer aan populariteit wint, wie heeft daar nu nog niet van gehoord? Maar weet je ook hoe het tot stand is gekomen? En wanneer heb je Kubernetes nu precies nodig? Maak in deze blogreeks kennis met de visie rond Kubernetes als ‘hipster’-technologie door de ogen van Level27. Een no-nonsense kijk op iets wat makkelijk lijkt van ver, maar moeilijk is van dichtbij. 

Containers vs Virtuele Machines

De basis van Kubernetes is natuurlijk containers, maar wat is het verschil met virtuele machines? Een container is een volledig afgezonderd proces dat op zichzelf kan draaien met behulp van een hostsysteem. Dit kan je vergelijken met alsof we virtuele machines op een systeem of hypervisor zouden draaien.

Het verschil tussen zo’n container en een virtuele machine is niet zo eenvoudig van elkaar te onderscheiden. Om een lang verhaal kort te maken, wordt bij een virtuele machine de volledige server gevirtualiseerd aan de hand van hypervisor technologie. Hardware wordt geëmuleerd en er draait een bepaald besturingssysteem op die de virtuele hardware aanspreekt. Bij een container wordt daarentegen container technologie gebruikt, en de meest bekende is Docker. Docker maakt dan gebruik van een bepaalde container runtime zoals containerd. Er gebeurt hier geen emulatie zoals we bij virtuele machines zien, maar de kernel wordt gedeeld met het host systeem.

Hierdoor heb je in essentie minder overhead, want je verliest geen resources door de virtualisatie van je hardware. Deze lijn is niet altijd zo duidelijk te trekken want er zijn verschillende technologieën die zich tussen een virtuele machine en een container bevinden. Zo heb je bijvoorbeeld ook nog paravirtualisatie en PCI passthrough waar de virtuele machine de hardware rechtstreeks aanspreekt van het host systeem.

De use case van containers en van virtuele machines is wel duidelijk. Een container heeft in essentie geen persistente data. Zet je de container uit dan ben je alles kwijt wat er op draait, tenzij je met bepaalde mounts werkt. Je vertrekt altijd van een bepaalde container image die je vooraf gebouwd hebt. Die image bevat alle software die je nodig hebt om je proces te doen draaien. Een container is daarnaast veel kleiner op vlak van storage, CPU en memory. Je kan vrij eenvoudig een kleine 100-tal containers draaien op je lokaal systeem terwijl dat met virtuele machines nagenoeg onmogelijk is.

Lees meer over dit topic in ons tweede deel over Kubernetes!

Hotline27: Kubernetes

Bij Level27 hebben we onze eigen podcast 'hotline27'. In aflevering 7 gingen we dieper in op een van de populairste technologieën van het moment, namelijk Kubernetes. Een mooie aanvulling op bovenstaand artikel.

 

 

Vragen of opmerkingen?

Laat het ons zeker weten via onze chatbox!
We helpen je graag verder.

Deel deze blog via