Alan Zeichick | Senior Writer | 5 september 2025
Kubernetes is een opensourceplatform voor het beheer van zeer grote applicaties die een groot aantal containerservices bevatten. Kubernetes werd in 2014 ontwikkeld door Google-engineers en kort daarna uitgebracht als een opensourceplatform. Kubernetes is nu een succesvol ecosysteem dat wordt ondersteund door bijna elke cloudprovider. Kubernetes kan worden gebruikt voor het beheren van cloud-native applicaties die zijn gebouwd met microservices en traditionele applicaties die on-premises of in de cloud worden uitgevoerd.
Een deel van de kracht van Kubernetes is de automatisering, waardoor de workload voor het beheer van applicaties in een netwerk aanzienlijk kan worden verlaagd.
Kubernetes is een opensourcesysteem voor het implementeren, beheren en schalen van containerapplicaties, met name cloud-native applicaties die zijn geschreven met microservices. Met Kubernetes, dat wordt afgekort als K8s, kunnen beheerders containers groeperen in clusters zodat deze eenvoudiger kunnen worden beheerd.
Wat doet Kubernetes eigenlijk? Het begint met de implementatie van containers die een volledige applicatie of een component van een applicatie, vaak een service genoemd, bevatten. Deze containers worden geïmplementeerd op servers, die zich kunnen bevinden in een cloud, on-premises, verspreid over verschillende clouds in een multicloud-configuratie of in een hybride cloud-/on-premises configuratie.
Zodra containers zijn geïmplementeerd, biedt Kubernetes detectie, waardoor een applicatie of service de benodigde services kan vinden vanuit andere containers. Met Kubernetes wordt verkeer doorgestuurd naar de juiste resource onder het beheer van Kubernetes. Als op een systeem meerdere exemplaren van een containerapplicatie of -service worden uitgevoerd, gewoonlijk om aan de grote vraag te voldoen, wordt de last automatisch verdeeld in Kubernetes.
Een deel van de kracht van Kubernetes is dat hiermee containers zo kunnen worden gegroepeerd dat dit zinvol is voor de implementatie. Verschillende containers met dezelfde opslag en hetzelfde netwerk kunnen bijvoorbeeld worden gegroepeerd in een pod, een woord dat u vaak zult tegenkomen. U zult ook verwijzingen naar Kubernetes-nodes tegenkomen. Dit zijn afzonderlijke machines, fysieke services of traditionele virtuele machines, die containers bevatten. Een verzameling nodes waarop Kubernetes wordt uitgevoerd (dat wil zeggen een set fysieke of virtuele containers) wordt een cluster genoemd.
Voor alle containers, pods, nodes en clusters worden door Kubernetes opslagresources beheerd. Kubernetes detecteert en herstart mislukte containers, een proces dat 'herstel' wordt genoemd, en implementeert zelfs beveiligingsprotocollen in een gedistribueerde applicatie. Het kan worden geconfigureerd voor de afhandeling van wachtwoorden, beveiligingstokens en coderingssleutels, waardoor het eenvoudiger wordt om essentiële bedrijfsmiddelen te beschermen.
De ontwikkeling van het Kubernetes-platform wordt beheerd door de Cloud Native Computing Foundation (CNCF).
Containers vervangen vaak een ander model van cloudimplementatie: virtuele machines (VM's). Containers zijn lichter dan VM's omdat ze gebruikmaken van het onderliggende besturingssysteem en de apparaatdrivers van de hostserver. VM's zijn daarentegen groter en hiervoor zijn meer verwerkingsresources nodig omdat elke VM een eigen besturingssysteem bevat. Daarom kunnen op een server meer containers dan VM's worden uitgevoerd en, nog belangrijker, er kunnen meer processor- en geheugenresources worden toegewezen aan actieve applicaties in plaats van dat meerdere besturingssysteeminstances, één voor elke VM, moeten worden onderhouden. Hoewel er specifieke gevallen zijn waarin VM's vereist zijn, bieden containers een veel efficiënter model voor de meeste implementaties van cloudapplicaties.
Hoewel Kubernetes en containers verwant zijn, kunnen ze het best worden beschouwd als complementaire technologieën. Kubernetes is een beheerplatform voor containers dat vaak wordt gebruikt voor grootschalige implementaties met nummering in de honderden of duizenden containers. Met containers zelf worden alle benodigde code en afhankelijkheden voor een functie, of het nu een microservice of een complete applicatie is, in één uitvoerbare indeling gezet.
Kubernetes is een tool voor het beheren van veel containers tegelijk, meestal in de cloud. Met Kubernetes, dat soms wordt aangeduid als het besturingssysteem voor de cloud, kunnen organisaties containers op schaal beheren.
Voornaamste conclusies
Kubernetes is een platform waarmee de implementatie, het schalen en beheer van containers wordt geautomatiseerd. Kubernetes bevat ook functies voor het herstellen van containers, dat wil zeggen dat wordt gedetecteerd wanneer ze niet goed werken en dat ze vervolgens worden gerepareerd. Bij Kubernetes draait alles om orkestratie: net als een orkestdirigent die muzikanten dirigeert, weet Kubernetes wat er moet gebeuren, zorgt voor het onderhoud en de juiste werking van alle containers en onderneemt actie als er iets misgaat.
En net zoals een orkestdirigent werkt vanuit een muziekpartituur met piano, violen, een paar cello's en een sectie met blazers, bevat Kubernetes een document met uitleg over de gewenste status van de containers van een applicatie. In dit document, een configuratiebestand genaamd, worden de functies beschreven die nodig zijn om de applicatie te laten werken en hierin wordt aangegeven welke containers deze functies kunnen leveren. Het configuratiebestand bevat ook de servers, opslagapparaten, netwerken en andere fysieke machines die beschikbaar zijn voor de containers van de applicatie.
Wanneer een applicatie wordt gestart, laadt Kubernetes de benodigde containers op de beschikbare servers in overeenstemming met het configuratiebestand en start vervolgens met het uitvoeren van de software binnen die containers. Het resourcegebruik van elke server (of node) wordt gemonitord en er wordt voor gezorgd dat de systemen niet worden overbelast. Als dat wel het geval is, worden containers door Kubernetes verplaatst naar een minder belaste server door een nieuwe container op te starten en vervolgens de oude te stoppen. Als een container zelf overbelast is, wordt door Kubernetes een identiek exemplaar van die container op een andere server gestart en wordt automatisch een lastverdeler geconfigureerd om de workload ertussen te verdelen. Naarmate de vraag toeneemt, wordt een derde container gestart, enzovoort. Als de workload later afneemt, worden onnodige containers door Kubernetes afgesloten om de kosten te verlagen en serverresources vrij te maken voor andere taken.
Wanneer een container uitvalt, wordt door Kubernetes snel een nieuwe container opgestart op een andere server en wordt het netwerkverkeer weggeleid van het probleemgebied, waardoor een snelle failover mogelijk is.
Stelt u zich eens voor dat u een applicatie hebt die honderden of duizenden containers vereist, die elk de services leveren die de applicatie nodig heeft. Systeembeheerders kunnen de containers handmatig implementeren en beheren, mogelijk met behulp van automatiseringstools voor specifieke taken zoals load balancing of detectie van fouten. Er zijn zelfs tools voor het beheren van containers in kleinschalige implementaties. Deze worden meestal gebruikt door softwareontwikkelaars en DevOps-teams bij het bouwen en testen van software in containers.
Maar zonder een meer allesomvattend orkestratiesysteem wordt de belasting voor systeembeheer uiteindelijk overweldigend.
Het mooie van Kubernetes is dat het één platform is voor de afhandeling van automatiseringstaken, van de implementatie van containers tot het schalen van containers en het oplossen van fouten. Daarnaast is Kubernetes open source en wordt het algemeen ondersteund, ook door alle grote cloudproviders. Kortom, het is alomtegenwoordig. Dat maakt Kubernetes tot het voorkeurssysteem voor het beheer van een grote bedrijfsapplicatie in containers.
Wanneer een organisatie besluit om haar applicaties in containers te plaatsen, is de overstap naar Kubernetes om die containers te orkestreren logisch, zeker gezien de grote voordelen.
De Google-engineers die Kubernetes hebben gemaakt, hebben de naam gekozen op basis van een oud Grieks woord voor piloot of stuurman, de persoon die een schip bestuurt, omdat hiermee een vloot containers wordt verplaatst en beheerd. En net als een echt containerschip is Kubernetes afhankelijk van veel componenten die samenwerken om de datavracht naar de juiste plaats te krijgen. Hieronder staan de termen die u vaak tegenkomt als het gaat over containers en het Kubernetes-orkestratieplatform.
Kubernetes is niet alleen een containerbeheerplatform. Het is een geavanceerde orkestratietool waarmee de volledige levenscyclus, van ontwerp tot implementatie en productie, van applicaties wordt geautomatiseerd en vereenvoudigd. Dankzij de robuuste functieset kunnen complexe, gedistribueerde applicaties efficiënt worden beheerd. Hier volgen enkele van de belangrijkste functies van Kubernetes:
Hoewel Kubernetes al vele jaren wordt verbeterd, is er een steile leercurve. Toch is het nog steeds veel beter om de tijd te nemen om Kubernetes te leren kennen dan om andere methoden te gebruiken voor het beheer van grote, gedistribueerde applicaties. Hier zijn een paar uitdagingen waarmee rekening moet worden gehouden:
Ondernemingen gebruiken Kubernetes voor veel soorten applicaties. U vindt het in e-commerce, productie, onderzoek, finance, nutsbedrijven, in principe in elke sector. Veel grote gedistribueerde applicaties die gebruikmaken van containers, kunnen profiteren van Kubernetes-orkestratie en -automatisering. Hier zijn een paar van de meest voorkomende scenario's waar Kubernetes echt ideaal voor is.
Het snijvlak van Kubernetes en AI kan transformatief zijn voor een bedrijf omdat Kubernetes een cruciale rol kan spelen bij het beheren en orkestreren van AI-workloads in de cloud. Kubernetes biedt met name een robuust en flexibel platform voor AI-training en -implementatie, met verschillende voordelen:
De brede acceptatie van Kubernetes in het afgelopen decennium heeft geleid tot de opkomst van een bloeiend ecosysteem van tools, services en ondersteunende technologieën. Dankzij dit ecosysteem worden de mogelijkheden van Kubernetes verder uitgebreid waardoor organisaties diverse opties hebben om hun infrastructuur en ontwikkelingspraktijken aan te passen. De belangrijkste categorieën in dit ecosysteem zijn:
Als het over het Kubernetes-ecosysteem gaat, zou het onvolledig zijn niets te vermelden over KubeCon, de jaarlijkse conferentie voor Kubernetes-ontwikkelaars en -gebruikers die wordt gehost door de Cloud Native Computing Foundation (CNCF). Het evenement is aanzienlijk gegroeid sinds de eerste KubeCon in 2015 plaatsvond met 500 aanwezigen. In 2024 trok de Salt Lake City-conferentie meer dan 9.000 ontwikkelaars en engineers.
Er kan een boek worden gevuld met de best practices voor Kubernetes, en er zijn er zelfs al veel geschreven. Vergis je niet: Kubernetes is complex. Aan de hand van deze best practices kunnen bedrijven met succes gebruikmaken van dit platform.
OCI Kubernetes Engine (OKE) is een door Oracle beheerde service voor containerorkestratie waarmee kan worden bespaard op de tijd en kosten voor het bouwen van moderne cloud-native applicaties. OKE helpt bij het vereenvoudigen van bewerkingen van Kubernetes op schaal doordat u eenvoudig resource-intensieve workloads, zoals AI, kunt implementeren en beheren met automatisch schalen, patchen en upgrades. OKE biedt het volgende:
Het Kubernetes-platform biedt de mogelijkheid om de implementatie en het beheer van applicaties te orkestreren waardoor een revolutie teweeg is gebracht in de manier waarop applicaties worden uitgevoerd in het cloud-native tijdperk. Naarmate Kubernetes zich blijft ontwikkelen en aan populariteit wint, wordt het nog belangrijker. Bedrijven die Kubernetes gaan gebruiken, kunnen een duidelijk concurrentievoordeel behalen. Inzicht in deze technologie is dus essentieel voor zowel ontwikkelaars als zakelijk leiders.
Kubernetes is belangrijk voor cloud-native ontwikkeling, wat de sleutel vormt voor meer veerkrachtige, schaalbare en flexibele applicaties, of ze nu in de cloud, on-premises of in een hybride of multicloud-model worden uitgevoerd.
Waarom vormt Kubernetes een cruciaal onderdeel van de cloudstrategie voor ondernemingen?
Kubernetes is essentieel omdat ondernemingen hiervan gebruikmaken om hun gedistribueerde applicaties te implementeren, schalen en beheren, met name de applicaties die in de cloud draaien. Met automatisering van Kubernetes wordt de betrouwbaarheid van applicaties beter en wordt het gebruik van resources geoptimaliseerd, waardoor de kosten laag blijven.
Met welke belangrijke factoren moeten ondernemingen rekening houden bij grootschalige implementatie van Kubernetes?
Er zijn twee belangrijke factoren om rekening mee te houden. De eerste is organisatorische gereedheid: zijn uw engineers en ontwikkelaars klaar voor dit model voor applicatieontwikkeling en -implementatie? De andere is een technische factor: hebt u de juiste architectuurbenadering voor het ontwerpen en implementeren van Kubernetes en containers en is deze veilig, stabiel en in overeenstemming met de governancevereisten?
Wat zijn de belangrijkste kostenoverwegingen voor ondernemingen die Kubernetes op schaal uitvoeren?
Met Kubernetes kunnen de kosten worden verlaagd door het gebruik van cloudresources te maximaliseren en door resources zoals servers en opslag stop te zetten wanneer deze niet nodig zijn. Er zijn echter kosten verbonden aan het trainen, bewerken en optimaliseren van uw netwerk- en applicatiemodellen om optimaal gebruik te kunnen maken van de beschikbare resources.
Hoe kunnen ondernemingen zorgen voor een soepele overgang van de traditionele infrastructuur naar Kubernetes?
Het is een grote overgang. Begin dus met de introductie van Kubernetes voor een kleine applicatie die mogelijk al in één container of een relatief klein aantal containers wordt uitgevoerd. Begin bijvoorbeeld met een Kubernetes-cloudservice waarmee de datalaag namens u wordt beheerd in plaats van dat u zelf probeert om alle verschillende elementen te leren, implementeren en uit te voeren. Experimenteer onder andere met upgrades, terugdraaiacties, monitoring en opzettelijke fouten zodat uw team de benodigde ervaring kan opdoen om grotere projecten aan te pakken, zoals refactoring van een monolithische applicatie naar een applicatie op basis van microservices.