Kubernetes for dummies

Je hebt vast al eens gehoord van Kubernetes en containertechnologie. Steeds meer organisaties maken er namelijk gebruik van. Sterker, met oog op de ontwikkelsnelheid en het beheer van applicaties kun je eigenlijk niet om deze sterke twee-eenheid heen.

Maar wat is Kubernetes precies? Waar gebruik je het voor? In welke situaties komt Kubernetes goed van pas? En wat zijn de belangrijkste voor- en nadelen van het platform? We vertellen het je in dit blogartikel.

Wat zijn containers?

Om beter te begrijpen wat Kubernetes precies is en doet, is het verstandig om eerst kort in te zoomen op het fenomeen containertechnologie. Beknopt gesteld kun je containers zien als compactere en lichtere versies van virtual machines (VM’s). VM’s werken als complete minicomputers. Ze herbergen allemaal een volledige kopie van het besturingssysteem, de applicatie en alle bijbehorende binaries en libraries, terwijl containers delen van het besturingssysteem van het hostapparaat gebruiken.

Het grote voordeel hiervan? Je kunt veel meer containers dan VM’s draaien op hetzelfde stukje hardware. Containers gebruiken namelijk minder resources, rekenkracht en opslagruimte dan VM’s. Ze bevatten alleen de onderdelen die nodig zijn om een applicatie goed te laten draaien.

Wat is Kubernetes?

Bij het aanmaken en beheren van containers komt Kubernetes (Grieks voor stuurman) om de hoek kijken. Kubernetes is namelijk een oorspronkelijk door Google ontwikkeld orkestratieplatform (open source) dat speciaal ontwikkeld is voor het op grote schaal beheren van containers. Je kunt het zien als een soort besturingssysteem voor de cloud. Duizenden bedrijven maken inmiddels gebruik van Kubernetes, waaronder ruim de helft van de bedrijven uit de Fortune 100.

Kubernetes bestaat uit diverse componenten. Dit zijn:

  • De Kubernetes API-server. Deze levert de programmeerinterface voor het besturen van het platform.
  • De Kubernetes Scheduler. Hiermee vergelijk je nieuwe met bestaande pods.
  • De etcd-database. Deze creëert een single point of truth waar het cluster zijn gehele staat in opslaat.
  • De Kubernetes-controllermanager. Die zorgt ervoor dat de ‘desired state’ gehandhaafd blijft.
  • De cloud-controllermanager zorgt voor de integratie met de platformen van publieke cloudproviders.
  • De Kubelet is een agent waarmee je pods creëert, registreert, controleert, updatet en eventueel vernietigt.

Andere belangrijke basisbegrippen en -elementen binnen Kubernetes zijn:

  • De nodes. Dit zijn entiteiten waarmee je pods op kunt starten en die samen een cluster vormen. Elk cluster bevat een hoofdnode en meerdere workernodes.
  • Een cluster is een verzameling nodes. Je gebruikt een cluster voor het uitvoeren van containerapplicaties die je in Kubernetes beheert.
  • Een container is een installatiekopie die bestaat uit software en alle bijbehorende afhankelijkheden.
  • Een pod is een container of een set containers die je uitvoert in jouw Kubernetes-cluster.

Waarom en waarvoor gebruiken we Kubernetes?

Maar waarvoor en waarom gebruiken we Kubernetes? Wat kun je er allemaal mee en welke voordelen levert dat op? Een overzicht.

1. Automatisch schalen

Met Kubernetes kun je automatisch het aantal containers schalen. Afhankelijk van jouw actuele behoeften, kun je containers bijschalen of juist weghalen. Dat is enorm handig in de cloud. In rustige tijden kun je namelijk makkelijk minder resources gebruiken om kosten te besparen. En in piekperioden waarin meer bandbreedte of rekenkracht is vereist, schaal je juist razendsnel op.

2. Versies beheren

Kubernetes stelt je in staat om verschillende versies van containers te beheren. Het is mogelijk om een gedeelte van de draaiende pods te upgraden naar een nieuwe versie en daar het resultaat van te bekijken, alvorens je alle pods die jouw product verkopen van een upgrade voorziet. Releases uitrollen over al jouw servers kan met één commando. Kubernetes vervangt dan over al jouw servers de oude containers door nieuwe, zonder dat je daarbij last hebt van downtime.

3. Containers spreiden voor een hogere uptime

Kubernetes helpt ook met het spreiden van de digitale werklast. Het is mogelijk om containers automatisch over jouw hele cluster te spreiden voor een hogere uptime. Bovendien kun je pods specifiek toekennen aan enkele nodes die beschikken over geschikte hardware. Meerdere servers aan elkaar knopen voor applicaties die een hoge beschikbaarheid vereisen, is ook prima mogelijk.

4. Controleren van de performance

Kubernetes heeft functionaliteiten waarmee je automatisch controleert of al jouw containers nog goed werken. Dit geautomatiseerde controlemechanisme bespaart je veel handmatig werk en maakt het mogelijk om snel in te grijpen als containers het laten afweten.

Wanneer zet je Kubernetes in?

Wat zijn nu typische situaties waarin Kubernetes bijzonder waardevol is en bedrijven het platform graag en veelvuldig inzetten? Allereerst bij (seizoenale) piekbelasting, typisch momenten waarop bepaalde applicaties heel vaak worden aangeroepen. Kubernetes kan capaciteitstekorten opvangen op pod- of applicatieniveau en schakelt extra resources in als een applicatie tegen de grenzen van haar capaciteit aan dreigt te lopen. Daarnaast is Kubernetes ook uitermate geschikt voor het beheren van zeer complexe IT-landschappen met veel data, applicaties en koppelingen.

De 6 voordelen van Kubernetes

Als je het goed inricht, levert Kubernetes veel technische en praktische voordelen op. Een paar voorbeelden.

1. Snelheid

Kubernetes biedt de mogelijkheid om meerdere versies van een applicatie tegelijk te draaien. Het grote voordeel hiervan? Omdat software op een geautomatiseerde manier door verschillende test- en acceptatieomgevingen gaat, kun je applicaties sneller uitrollen en live zetten. Ontwikkelcycli worden zo aanzienlijk korter.

2. Standaardisatie

Kubernetes zorgt voor standaardisatie. Welke applicaties je ook draait, met Kubernetes is de inrichting en opbouw grotendeels hetzelfde. Kubernetes is geschikt voor een breed spectrum aan applicatietypen. Denk aan stateful en stateless applicaties, microservices, gerepliceerde applicaties en applicaties die op colocatie staan.

3. Meer controle en lagere kosten

Ook vanuit het oogpunt van controle en kostenbeheersing biedt Kubernetes voordelen. Jouw ontwikkelteams hebben zelf de controle over alle containers en afhankelijkheden binnen jouw cloudomgeving. Sneller en makkelijker ontwikkelen wordt de norm, wat ook een gunstige uitwerking heeft op het kostenplaatje.

4. Een veelzijdig ecosysteem

Door Kubernetes te gebruiken, profiteer je van een breed aanbod aan features en ondersteunende diensten. Er zijn al veel speciale tools voor en rondom Kubernetes, maar door het opensource-karakter van Kubernetes is er tevens ruimte voor maatwerk.

5. Een veilige omgeving voor beheer en ontwikkeling

Kubernetes maakt gebruik van role-based access control, netwerkencryptie en veiligheidscertificaten. Zo wijs je gebruikers probleemloos de juiste rollen en toegangsrechten toe. Dit zorgt ervoor dat het platform veilig te koppelen is aan elke cloudomgeving of bestaande AD of LDAP.

6. Toekomstbestendig

In een tijd waarin de technologie voortdurend reuzensprongen maakt en nieuwe innovaties aan de orde van de dag zijn, is toekomstbestendigheid een groot goed. Kubernetes levert precies dat. Groeit het aantal gebruikers of de hoeveelheid traffic in de toekomst? Met Kubernetes stem je applicaties razendsnel af op de nieuwe realiteit en ontwikkel je in no-time nieuwe oplossingen voor nieuwe behoeften.

De nadelen van Kubernetes

Maar heeft Kubernetes dan helemaal geen nadelen? Is het een tovertool die gelijk alle uitdagingen rondom applicatie- en cloudbeheer uit de weg ruimt? Helaas niet. Zo is het bijvoorbeeld geen sinecure om het platform helemaal in te richten naar de exacte behoeften en wensen van jouw organisatie.

Juist omdat Kubernetes zoveel mogelijkheden biedt, is het ‘aan elkaar knopen’ en inrichten van onderdelen als opslag, infrastructuur en load balancing vaak een complexe klus die behoorlijk wat expertise vergt. Voor betrekkelijk eenvoudige applicaties is het gebruiken van Kubernetes bovendien vaak ‘overkill’: de tijd en moeite die het kost om het platform goed in te richten, wegen in dat geval niet op tegen de voordelen die het gebruiken van Kubernetes oplevert.

Wil je wel profiteren van de voordelen van Kubernetes, maar heb je niet de tijd en/of technische kennis om zelf alles in te richten en te beheren? Dan is managed Kubernetes vaak een goede oplossing. Een gespecialiseerde partner neemt je dan de meest complexe taken uit handen zodat jij je helemaal kunt focussen op het produceren van nieuwe functies en applicaties.

Kubernetes en SUE

Wil je ook profiteren van de voordelen van Kubernetes en het beste halen uit containertechnologie? Ben je op zoek naar ontzorging op het vlak van beheer en inrichting? Dan ben je bij SUE aan het juiste adres. Onze experts containeriseren on-premise applicaties en migreren workloads naadloos naar de cloud. Daarnaast beschik je met het SUE Cloud Native Adoption Platform (SCNAP) binnen een half uurtje over een kant-en-klare, volledig werkende Kubernetesomgeving. Deze omgeving is geschikt voor elke cloudaanbieder en cloudoplossing. Bovendien integreert het platform naadloos met andere populaire opensourcetechnieken, zoals Gitlab en Elastic. Tot slot zitten onze specialisten niet stil en houden ze zich voortdurend bezig met het doorontwikkelen van het platform.

Meer weten over Kubernetes, containerisatie, SCNAP of onze andere cloud-native diensten? Neem dan gerust vrijblijvend contact op door te bellen naar +31 345 656 666 of te mailen naar info@sue.nl. Je kunt ook het contactformulier op onze website invullen.