Cursus
Kubernetes is uitgegroeid tot de standaardtechnologie voor het beheren van containerized applicaties in moderne cloudomgevingen. Nu organisaties overstappen op microservices en cloud-native architecturen, biedt Kubernetes alles wat ze nodig hebben om deployments te automatiseren, applicaties te schalen en hoge beschikbaarheid te garanderen.
Kubernetes is een open-source containerorchestrator die het complexe proces van het beheren van containers op schaal vereenvoudigt. Het abstraheert infrastructuurzorgen, zodat ontwikkelaars zich kunnen richten op het bouwen van applicaties in plaats van op de onderliggende servers.
Inzicht in de Kubernetes-architectuur is essentieel voor iedereen die schaalbare, veerkrachtige en production-grade applicaties wil deployen en beheren.
Vandaag wil ik een diepere inkijk geven in de Kubernetes-architectuur voor lezers op gemiddeld niveau die de basisconcepten van Kubernetes al kennen.
Wat is Kubernetes?
Kubernetes is een krachtig gedistribueerd systeem dat is ontworpen om containerized applicaties op schaal te orkestreren en te beheren. Het stelt organisaties in staat om workloads te deployen over meerdere fysieke of virtuele machines, zogeheten Nodes, zodat applicaties beschikbaar, schaalbaar en bestand tegen storingen blijven.
Een van de kernkwaliteiten van Kubernetes is het efficiënt omgaan met dynamische workloads. Door containers automatisch over nodes te verdelen, kan Kubernetes applicaties horizontaal schalen en workloads balanceren op basis van beschikbare resources. Als een node overbelast raakt, plant Kubernetes workloads opnieuw in op gezonde buur-nodes, zodat downtime minimaal blijft en prestaties behouden blijven.
Ben je nog beginner met deze technologie? Bekijk dan deze Introduction to Kubernetes-cursus om te beginnen.
Een korte geschiedenis van Kubernetes
Google ontwikkelde Kubernetes oorspronkelijk als open-source opvolger van Borg, hun interne systeem voor containermanagement. Sinds de release in 2014 groeide Kubernetes snel uit tot de industriestandaard voor containerorchestratie, ondersteund door een omvangrijk ecosysteem van tools en cloudproviders. Tegenwoordig wordt het beheerd door de Cloud Native Computing Foundation (CNCF) en breed ingezet in diverse sectoren voor het beheren van cloud-native applicaties.
Wat is de Kubernetes-architectuur?
Het volgende diagram geeft de Kubernetes-architectuur visueel weer:

Afbeelding door auteur. De Kubernetes-architectuur.
- De Control Plane-componenten beheren het cluster en zorgen dat de gewenste status behouden blijft.
- De Worker Nodes voeren workloads uit en draaien containers in Pods.
- De API-server fungeert als brug tussen gebruikersinteracties (via UI of CLI) en het cluster.
- Netwerk- en opslagadd-ons breiden de mogelijkheden van Kubernetes uit voor productieomgevingen.
Met deze basis kunnen we nu de gedetailleerde rollen van elke component in de Kubernetes-clusterarchitectuur verkennen.
Kerncomponenten van de Kubernetes-architectuur
Kubernetes bestaat uit twee hoofdlagen: de Control Plane en Node-componenten. Laten we ze één voor één bekijken:
Control Plane
Het Kubernetes Control Plane is de centrale beheerslaag die verantwoordelijk is voor het behouden van de gewenste clusterstatus, het inplannen van workloads en het afhandelen van automatisering. Het zorgt dat applicaties draaien zoals verwacht door de clustercondities continu te monitoren en waar nodig bij te sturen.

Afbeelding door auteur. Control Plane-componenten.
API-server (kube-apiserver)
De API-server is de toegangspoort tot het Kubernetes-cluster. Hij verwerkt alle beheerrequests, of die nu afkomstig zijn van de CLI (kubectl), UI-dashboards of automatiseringstools. Zonder draaiende API-server blijft het cluster functioneel, maar verliezen beheerders directe controle over deployments en configuraties.
Controller Manager (kube-controller-manager)
Kubernetes werkt volgens het controllerpattern, waarbij controllers de status van het systeem monitoren en corrigerende acties ondernemen. De Controller Manager houdt toezicht op deze controllers en waarborgt essentiële functies zoals:
- Workloads schalen op basis van vraag.
- Mislukte nodes beheren en workloads opnieuw inplannen.
- Gewenste status afdwingen (bijv. zorgen dat een Deployment altijd het opgegeven aantal replicas draait).
Scheduler (kube-scheduler)
De Scheduler wijst Pods toe aan worker nodes en houdt daarbij rekening met factoren zoals:
- Beschikbare resources (CPU, geheugen).
- Node-affinity- en anti-affinity-regels.
- Poddistrubutie om overbelasting te voorkomen.
Hij volgt een filter- en scoringsproces om voor elke nieuwe Pod de optimale node te kiezen en zo een gebalanceerd resourcegebruik te garanderen.
etcd (gedistribueerde key-value store)
etcd fungeert als de single source of truth van Kubernetes en slaat alle clusterdata op, waaronder:
- Configuratie-instellingen.
- Secrets en inloggegevens.
- Huidige en historische staten van workloads.
Omdat compromittering van etcd volledige controle over het cluster geeft, moet het goed beveiligd worden en voldoende hardwarebronnen krijgen om prestaties en betrouwbaarheid te waarborgen.
Cloud Controller Manager
Voor Kubernetes-deployments in de cloud integreert de Cloud Controller Manager het cluster met cloudaanbieders en regelt onder meer:
- Het inrichten van load balancers.
- Het toewijzen van persistente opslagvolumes.
- Het dynamisch schalen van infrastructuur (bijv. virtuele machines toevoegen als nodes)
Node-componenten
Worker Nodes vormen de rekenruggengraat van een Kubernetes-cluster en zijn verantwoordelijk voor het draaien van applicatieworkloads. Elke node werkt onafhankelijk, maar staat continu in contact met het control plane om de orkestratie soepel te laten verlopen.
Kubernetes plant Pods dynamisch in op worker nodes op basis van beschikbare resources en werkdruk. Nodes kunnen fysieke of virtuele machines zijn, en een production-ready cluster bestaat doorgaans uit meerdere nodes voor horizontale schaalbaarheid en hoge beschikbaarheid. Elke worker node bevat de volgende essentiële componenten:
Kubelet: de node-agent
Kubelet is de primaire agent op node-niveau die de uitvoering van containers beheert. Het:
- Communiceert continu met de API-server om instructies te ontvangen.
- Zorgt dat Pods draaien zoals gedefinieerd in hun specificaties.
- Haalt containerimages op en start de benodigde containers.
- Monitort de gezondheid van containers en start ze indien nodig opnieuw.
Zonder Kubelet zou de node losstaan van het cluster en zouden ingeplande workloads niet goed beheerd worden.
Kube-Proxy: netwerken en load balancing
Kube-Proxy beheert de netwerkcommunicatie tussen services die op verschillende nodes draaien. Het:
- Stelt netwerkregels in voor naadloze communicatie tussen Pods.
- Faciliteert service discovery en load balancing voor inter-Pod-netwerken.
- Zorgt dat verkeer correct wordt gerouteerd tussen nodes en externe clients.
Als Kube-Proxy uitvalt, kunnen Pods op de getroffen node onbereikbaar worden, wat het netwerkverkeer binnen het cluster verstoort.
Container runtime: containers draaien
De container runtime is de software die containerized applicaties binnen Pods uitvoert. Kubernetes ondersteunt meerdere runtime-opties, waaronder:
- containerd (meest gebruikt)
- CRI-O (lichtgewicht en Kubernetes-native)
- Docker Engine (legacy-ondersteuning via dockershim)
De runtime werkt samen met het besturingssysteem om workloads te isoleren met technieken zoals cgroups en namespaces, voor efficiënt resourcegebruik.
Hoe worker nodes met het control plane samenwerken
- Nodes treden toe tot het cluster met een token dat door het control plane wordt uitgegeven.
- Zodra een node geregistreerd is, wijst de scheduler workloads toe op basis van de beschikbare resources.
- Het control plane monitort continu de gezondheid van nodes en kan workloads herplannen als een node ongezond of overbelast raakt.
Door Kubelet, Kube-Proxy en een container runtime te combineren, vormen worker nodes een schaalbare en veerkrachtige executielaag die Kubernetes-applicaties aandrijft.
Kubernetes uitbreiden met add-ons
Kubernetes is ontworpen om zeer uitbreidbaar te zijn, zodat je de functionaliteit kunt aanpassen en verbeteren met add-ons. Terwijl het control plane en de worker nodes de kerninfrastructuur vormen, bieden add-ons netwerk-, opslag-, monitoring- en automatiseringsmogelijkheden die Kubernetes krachtiger en production-ready maken.
Netwerkoplossingen
Kubernetes-netwerken volgen een pluginbenadering en vereisen een Container Network Interface (CNI)-compatibele plugin om naadloze communicatie tussen Pods mogelijk te maken. Veelgebruikte netwerkoplossingen zijn onder andere:
- Calico: Veilige netwerkpolicies en high-performance routing.
- Cilium: eBPF-gebaseerde networking en security.
- Flannel: Lichtgewicht en eenvoudig te configureren overlaynetwerken.
De meeste managed Kubernetes-distributies worden vooraf geconfigureerd met een netwerkoplossing, maar bij zelfbeheer moet je handmatig een CNI-plugin installeren.
Opslagoplossingen
Kubernetes biedt dynamische opslagvoorziening via StorageClasses, waardoor workloads met diverse opslagbackends kunnen werken:
- Lokale opslag: Gebruikt het bestandssysteem van een node.
- Cloud block storage: Integreert met cloudproviders (bijv. AWS EBS, Azure Disk, GCP Persistent Disks).
- Gedistribueerde opslag: Oplossingen zoals Ceph, Longhorn en Rook bieden persistente, gerepliceerde opslag over nodes.
Omdat Kubernetes geen ingebouwde containerregistry bevat, moet je een externe registry gebruiken (bijv. Docker Hub, Harbor of Amazon ECR) om containerimages op te slaan en te distribueren.
Monitoring en observability
Effectieve monitoring en logging zijn essentieel voor het beheren van Kubernetes-workloads. Populaire oplossingen zijn:
- Prometheus: Metricsverzameling en alerting.
- Grafana: Visualisatiedashboards.
- ELK Stack (Elasticsearch, Logstash, Kibana): Logaggregatie en -analyse.
Deze tools helpen om de clustergezondheid te volgen, problemen te diagnosticeren en prestaties te optimaliseren.
Ingress controllers
Ingress controllers beheren externe toegang tot applicaties binnen het cluster en verwerken HTTP/HTTPS-verkeer en load balancing. Populaire opties zijn:
- NGINX Ingress Controller – Veelgebruikt voor het beheren van webverkeer.
- Traefik – Dynamische routing met ingebouwde Let’s Encrypt-ondersteuning.
- HAProxy Ingress – High-performance load balancing.
Aangepaste functionaliteit met CRD’s
Kubernetes laat gebruikers de API uitbreiden met Custom Resource Definitions (CRD’s), waarmee je aangepaste objecten en automatiseringsworkflows kunt creëren.
Operators en controllers kunnen complexe taken automatiseren, zoals:
- Databases inrichten wanneer een aangepast PostgresDatabaseConnection-object wordt toegevoegd.
- Beveiligingsbeleid dynamisch beheren.
- Applicaties schalen op basis van aangepaste metrics.
Door CRD’s te benutten kan Kubernetes worden omgevormd tot een volledig aanpasbaar platform dat zich aanpast aan specifieke bedrijfsbehoeften.
Kubernetes-clusterarchitectuur
Kubernetes introduceert meerdere abstractielagen om applicaties efficiënt te definiëren en te beheren. Deze abstracties vereenvoudigen deployment, schaalbaarheid en beheer in gedistribueerde omgevingen.
Master- en workernodes
Een Kubernetes-cluster bestaat uit twee hoofdtypen nodes:
- Master nodes (Control Plane): Verantwoordelijk voor het orkestreren en beheren van het cluster. Deze nodes draaien de API-server, Scheduler, Controller Manager en etcd om te zorgen dat workloads worden gedeployed en onderhouden zoals verwacht.
- Worker nodes (Data Plane): Voeren applicatieworkloads uit door pods te draaien met containers. Elke workernode wordt beheerd door de Kubelet, werkt voor netwerkverkeer samen met Kube-Proxy en draait een container runtime zoals Docker of containerd.
Samen vormen de master- en workernodes een zelfherstellende, schaalbare infrastructuur waarop applicaties naadloos kunnen draaien. Wil je containerization en virtualisatie verder begrijpen? Volg dan dit door experts samengestelde Containerization and Virtualization-track.
Pod-architectuur
De kern van Kubernetes is de Pod, de kleinste deploybare eenheid in het systeem. Een Pod omvat één of meerdere containers die opslag, netwerk en configuratie-instellingen delen.
- Single-container Pods: De meest voorkomende opzet, waarbij elke Pod één container bevat die een microservice draait.
- Multi-container Pods: Gebruikt wanneer nauw samenwerkende containers resources moeten delen en efficiënt moeten communiceren.
Pods zijn ephemeral, wat betekent dat ze opnieuw kunnen worden ingepland of herstart wanneer nodig. Kubernetes beheert Pods via Deployments, StatefulSets en DaemonSets en zorgt zo voor schaalbaarheid en beschikbaarheid.

Afbeelding door auteur. Pod-architectuur.
Namespace en segmentatie
Namespaces zorgen voor logische segmentatie binnen een Kubernetes-cluster. Ze helpen om:
- Workloads te isoleren voor verschillende teams, projecten of omgevingen (bijv. dev, staging, production).
- Role-based access control (RBAC) toe te passen om rechten te beperken.
- Resourcequota te beheren om overmatig verbruik te voorkomen.
Door workloads in namespaces te organiseren, biedt Kubernetes betere security, resourcemanagement en schaalbaarheid binnen één cluster.
Met deze basis kunnen we nu in de volgende sectie verkennen hoe de Kubernetes-architectuur microservices-deployments ondersteunt.
Kubernetes-microservicesarchitectuur
Kubernetes is ideaal voor microservices en biedt schaalbaarheid, veerkracht en automatisering voor gedistribueerde applicaties. Het maakt mogelijk:
- Automatisch schalen: Past resources aan op basis van vraag.
- Zelfherstel: Detecteert en vervangt mislukte containers.
- Service discovery en load balancing: Efficiënte communicatie tussen microservices.
- Portabiliteit: Draait in cloud- en on-premisesomgevingen.
- Declaratieve configuratie: Gebruikt YAML voor voorspelbare deployments.
Een veelvoorkomende vraag onder professionals is of je Kubernetes of Docker Compose moet gebruiken voor je microservices. Als dat bij jou speelt, raad ik de volgende gids aan Docker Compose vs Kubernetes om dit beter te begrijpen.
Best practices
Hieronder lichten we enkele best practices uit om te volgen:
- Namespaces voor workloadisolatie: Organiseer en isoleer workloads voor betere security en resourcemanagement.
- Kubernetes Services & Ingress voor verkeerbeheer: Maak efficiënte communicatie mogelijk tussen microservices en externe clients.
- Autoscaling & Rolling Updates voor soepele prestaties: Gebruik Horizontal Pod Autoscaler en rolling deployments om beschikbaarheid te behouden.
- ConfigMaps & Secrets voor veilige configuraties: Beheer gevoelige data en omgevingsinstellingen veilig.
- Monitoring & Logging met Prometheus en Grafana: Krijg inzicht en los problemen effectief op met robuuste observability-tools.
Door deze praktijken te volgen, stroomlijnt Kubernetes de deployment van microservices en borgt het flexibiliteit en hoge beschikbaarheid.
Use-cases van de Kubernetes-architectuur
Kubernetes wordt breed ingezet in uiteenlopende sectoren vanwege het vermogen om applicaties te schalen, hoge beschikbaarheid te garanderen en multi-cloudomgevingen te ondersteunen. De architectuur maakt naadloos workloadbeheer mogelijk en is daardoor een voorkeurskeuze voor moderne cloud-native applicaties.
Applicatieschaalbaarheid
Kubernetes maakt horizontale schaalbaarheid mogelijk, zodat applicaties efficiënt met wisselende workloads kunnen omgaan:
- Horizontal Pod Autoscaler (HPA) past het aantal Pods aan op basis van CPU, geheugen of aangepaste metrics.
- Cluster Autoscaler voegt dynamisch workernodes toe of verwijdert ze om aan de vraag te voldoen.
- Load balancing zorgt dat verkeer gelijkmatig over replicas wordt verdeeld.
Dit maakt Kubernetes ideaal voor applicaties met fluctuerend verkeer, zoals e-commerceplatforms, streamingdiensten en SaaS-applicaties.
Hoge beschikbaarheid en fouttolerantie
Kubernetes zorgt voor continue werking door:
- Workloads te repliceren over meerdere nodes om onderbrekingen te voorkomen.
- Zelfherstellende mechanismen die mislukte containers automatisch herstarten.
- Leader election in het control plane om stabiliteit te behouden bij storingen.
Deze features maken Kubernetes geschikt voor bedrijfskritische applicaties die vrijwel geen downtime mogen hebben.
Hybride en multi-cloud deployments
Kubernetes abstraheert infrastructuurcomplexiteit, waardoor het eenvoudiger wordt om workloads te deployen in on-premises, hybride en multi-cloudomgevingen:
- Consistent applicatiebeheer over AWS, Google Cloud, Azure en on-premises clusters.
- Verkeersroutering tussen cloudproviders voor optimale latency en kostenefficiëntie.
- Disasterrecoverystrategieën met cross-cloud failover-sets.
Conclusie
Kubernetes heeft containerorchestratie getransformeerd en is de industriestandaard geworden voor het deployen, beheren en schalen van applicaties in moderne cloudomgevingen. De architectuur maakt geautomatiseerde schaalbaarheid, hoge beschikbaarheid en cloudoverschrijdende compatibiliteit mogelijk, waardoor het een krachtig hulpmiddel is voor organisaties die microservices en cloud-native strategieën omarmen.
Door de Kubernetes-architectuur te begrijpen kunnen developers en IT-teams:
- De prestaties van applicaties optimaliseren via efficiënt inplannen en schalen.
- De veerkracht van systemen vergroten met zelfherstel en hoge beschikbaarheid.
- Naadloze multi-cloud- en hybride deployments realiseren en vendor lock-in vermijden.
Van control plane-management tot uitvoering op worker nodes en aanpasbare add-ons: Kubernetes biedt de flexibiliteit die nodig is om bedrijfskritische applicaties op schaal te draaien. Terwijl het cloudecosysteem zich ontwikkelt, blijft Kubernetes vooroplopen—en stelt het bedrijven in staat om met vertrouwen te innoveren.
Kubernetes is een krachtig hulpmiddel voor het beheren van moderne applicaties, maar beheersing vergt hands-on ervaring. Ga verder met leren via:
- Introduction to Kubernetes-cursus om de basis van Kubernetes te leren en containers te deployen en orkestreren met Manifests en kubectl-instructies.
- Docker Compose vs Kubernetes om het juiste hulpmiddel voor jouw behoeften te kiezen.
- Containerization for Machine Learning om Kubernetes toe te passen op AI/ML-workflows.
Josep is een freelance Data Scientist die zich richt op Europese projecten, met expertise in dataopslag, -verwerking, geavanceerde analyses en impactvolle data storytelling.
Als docent geeft hij Big Data in de masteropleiding aan de Universiteit van Navarra en deelt hij inzichten via artikelen op platforms als Medium, KDNuggets en DataCamp. Josep schrijft ook over Data en Tech in zijn nieuwsbrief Databites (databites.tech).
Hij heeft een bachelor in Engineering Physics van de Polytechnische Universiteit van Catalonië en een master in Intelligent Interactive Systems van de Pompeu Fabra-universiteit.

