Skip to Content

Wat is een Kubernetes-cluster?

Blue threads kruisen en verbinden verschillende nodes op een donkere achtergrond, vergelijkbaar met een netwerkdiagram.

Kubernetes heeft een revolutie teweeggebracht in de manier waarop organisaties gecontaineriseerde applicaties beheren door een robuust systeem te bieden voor het automatiseren van implementatie, schaalbaarheid en activiteiten. Centraal in Kubernetes staat het concept van een cluster, dat essentieel is voor efficiënte containerorkestratie. Het begrijpen van Kubernetes-clusters is cruciaal voor elke organisatie die container technologieënoptimaal wil benutten.

In dit artikel bekijken we wat een Kubernetes-cluster is, de componenten, hoe er een moet worden opgezet en best practices voor het beheer.

Wat is een Kubernetes-cluster?

Een Kubernetes-cluster is een groep machines (knooppunten) die samenwerken om gecontaineriseerde applicaties uit te voeren en te beheren. Het primaire doel van een Kubernetes-cluster is het automatiseren van de implementatie, schaalvergroting en het beheer van gecontaineriseerde applicaties. Dit vertaalt zich in verschillende belangrijke voordelen voor gebruikers, zoals:

  • Verbeterde schaalbaarheid: Kubernetes-clusters bieden elastische schaalbaarheid. U kunt uw applicaties eenvoudig op- of afschalen door nodes toe te voegen of te verwijderen als dat nodig is. U kunt bijvoorbeeld meer nodes toevoegen tijdens piekverkeersperioden om de toegenomen belasting aan te kunnen. Omgekeerd kunt u uw cluster tijdens perioden met weinig vraag verkleinen om resources te besparen.
  • Verbeterde fouttolerantie: Kubernetes-clusters zijn ontworpen om zeer beschikbaar te zijn. Ze bereiken dit door replicatie, waarbij kritieke applicaties op meerdere pods in verschillende nodes draaien. Als een node uitvalt, start Kubernetes de defecte containers automatisch opnieuw op en plant ze opnieuw op gezonde nodes. Dit zorgt ervoor dat zelfs in het geval van een knooppuntstoring uw applicatie beschikbaar en operationeel blijft.
  • Vereenvoudigd beheer: Kubernetes-clusters stroomlijnen het beheer van gecontaineriseerde applicaties. In plaats van configuraties op elke afzonderlijke node handmatig te beheren, gebruikt Kubernetes declaratieve configuratiebestanden die in YAML zijn geschreven. Deze bestanden specificeren de gewenste status van uw applicatie en Kubernetes zorgt ervoor dat de status wordt gehandhaafd.

Componenten van een Kubernetes-cluster

Een Kubernetes-cluster bestaat uit twee hoofdcomponenten: het besturingsvlak en de worker nodes. Elk van deze componenten speelt een specifieke rol bij het beheer van het cluster en het uitvoeren van gecontaineriseerde applicaties.

Controlevlak

Het controlevlak fungeert als het brein van het Kubernetes-cluster, dat verantwoordelijk is voor het nemen van beslissingen en het geven van commando's aan werknemersknooppunten. Het bestaat uit verschillende belangrijke componenten, waaronder:

  • API-server: De API-server is de centrale communicatiehub voor het cluster. Het stelt de Kubernetes API bloot, die dient als toegangspunt voor alle administratieve taken en interacties met het cluster. Gebruikers en tools zoals kubectl communiceren met het cluster via de API-server om commando's in te dienen, implementaties te beheren en toegang te krijgen tot clusterinformatie.
  • etcd : etcd is een zeer beschikbare gedistribueerde key-value store die fungeert als de enige bron van waarheid voor de clusterstatus. Het slaat cruciale informatie op over de clusterconfiguratie, waaronder poddefinities, servicedetails en de gewenste staat van implementaties. Deze data worden gerepliceerd over meerdere enz. nodes om consistentie en fouttolerantie te garanderen.
  • Planner: De planner is verantwoordelijk voor het toewijzen van workloads (pods) aan worker nodes in het cluster. Het houdt rekening met factoren zoals de beschikbaarheid van resources, nodecapaciteit en pod-antiaffiniteitsregels bij het nemen van planningsbeslissingen. De planner kan bijvoorbeeld pods over verschillende nodes verspreiden om het gebruik van resources te verbeteren of pods met hoge resourcevereisten te prioriteren op nodes met voldoende capaciteit.
  • Controllermanager: De controllermanager is het centrale punt voor het beheer van alle controllers in het cluster. Controllers zijn verantwoordelijk voor het voortdurend bewaken van de toestand van het cluster en het nemen van corrigerende maatregelen om ervoor te zorgen dat de werkelijke toestand van het cluster overeenkomt met de gewenste toestand die in de configuratie is gedefinieerd. De controllermanager beheert verschillende kerncontrollers, elk met een specifiek doel.

Nodes voor werknemers

Worker nodes zijn de werkpaarden van het cluster. Het zijn de machines die daadwerkelijk gecontaineriseerde applicaties draaien. Elke worker node heeft verschillende componenten die verantwoordelijk zijn voor het beheer en de uitvoering van containers:

  • Kubelet : De kubelet is een agent die op elke worker node draait. Het fungeert als de vertegenwoordiger van het controlevlak op de node en is verantwoordelijk voor de levenscyclus van pods die aan de node zijn toegewezen. Kubelet zorgt ervoor dat containers binnen een pod worden gedownload, geconfigureerd en uitgevoerd volgens de podspecificatie. Het controleert ook de gezondheid van containers, herstart defecte containers en onttrekt geheimen die de containers nodig hebben om veilig te kunnen draaien.

  • Kube-proxy: Kube-proxy is een netwerkproxy die op elke worker node draait. Het implementeert netwerkbeleid dat is gedefinieerd voor het cluster en zorgt ervoor dat pods met elkaar en externe diensten kunnen communiceren. Kube-proxy onderhoudt netwerkroutingregels en vertaalt servicenamen naar pod IP-adressen, waardoor pods diensten binnen het cluster kunnen ontdekken en ermee kunnen communiceren.

Door samen te werken, stellen deze componenten binnen het controlevlak en de werknemersnodes Kubernetes in staat om gecontaineriseerde applicaties op schaal effectief te beheren en te orkestreren.

Een Kubernetes-cluster opzetten

U kunt een Kubernetes-cluster opzetten via twee hoofdmethoden: het gebruik van een beheerde Kubernetes-service of het handmatig implementeren ervan.

Managed Kubernetes-services

Cloudproviders zoals Google Cloud Platform (GCP) met Google Kubernetes Engine (GKE), Amazon Web Services (AWS) met Elastic Kubernetes Service (EKS) en Microsoft Azure met Azure Kubernetes Service (AKS) bieden beheerde Kubernetes-diensten. Deze diensten zorgen voor de complexiteit van de provisioning, configuratie en het beheer van de Kubernetes-clusterinfrastructuur. U definieert gewoon uw gewenste clusterconfiguratie en de dienst verwerkt het zware werk, zodat u zich kunt concentreren op het implementeren van uw gecontaineriseerde applicaties.

Handmatige implementatie

Voor meer controle en aanpassing kunt u een Kubernetes-cluster handmatig implementeren met behulp van een tool zoals kubeadm. Kubeadm is een toolkit voor bootstrapping van een Kubernetes-cluster. Deze methode omvat het installeren van kubeadm op een aangewezen master node en de kubelet agent op alle worker nodes in het cluster. 

Een Kubernetes-cluster handmatig opzetten

Voorwaarden

  • Infrastructuur: Zorg voor voldoende infrastructuur, zoals virtuele machines of cloudinstanties.
  • Container runtime: Installeer een container runtime zoals containerd of Docker op alle nodes.

Stap 1: Installeer kubeadm, kubelet en kubectl

Gebruik op alle machines (master- en workernodes) de pakketbeheerder van uw distributie om de vereiste kubeadm-tools te installeren:

# Update package lists (replace 'your_package_manager' with your actual package manager like apt-get or yum)
 $ sudo your_package_manager update
 
 # Install kubeadm, kubelet, and kubectl
 $ sudo your_package_manager install -y kubeadm kubelet kubectl

Opmerking: Op sommige systemen kan extra configuratie nodig zijn na de installatie. Raadpleeg de officiële Kubernetes-documentatie voor details die specifiek zijn voor het door u gekozen besturingssysteem.

FlashArray testen

Ervaar hoe Pure Storage block en file drastisch vereenvoudigt in een zelfbedieningsomgeving.

Nu proberen

Stap 2: Het controlevlak initialiseren (hoofdknooppunt)

Kies een van uw machines om als hoofdknooppunt op te treden. Voer de volgende opdracht uit op het hoofdknooppunt om het besturingsvlak te initialiseren. Dit proces genereert configuratiebestanden en biedt een samenvoegopdracht voor werknemersknooppunten:

$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16
  • kubeadm init: Deze opdracht initialiseert het besturingsvlak op de master node.
  • --pod-netwerk-cidr=10.244.0.0/16: Deze optie specificeert het CIDR-bereik voor het pod-netwerk. U kunt deze waarde aanpassen op basis van uw netwerkconfiguratiebehoeften.

Na het uitvoeren van de initialisatieopdracht levert kubeadm output met een joinopdracht voor werknemersknooppunten. Let op deze opdracht, want u hebt deze nodig in stap 5.

Stap 3: Configureer kubectl

Kopieer op het masterknooppunt het gegenereerde adminconfiguratiebestand naar uw lokale kubectl-configuratiemap. Hierdoor kunt u het cluster beheren met behulp van kubectl-commando's. De volgende opdracht bereikt dit:

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

Stap 4: Implementeer een Pod-netwerk

Een podnetwerkplugin maakt communicatie tussen pods binnen het cluster mogelijk. Flannel is een populaire podnetwerkoptie. U kunt Flannel implementeren met behulp van de volgende opdracht op het hoofdknooppunt:

$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Stap 5: Sluit u aan bij Worker Nodes to the Cluster

Voer op elke worker node de join-opdracht uit die door kubeadm wordt geleverd tijdens de initialisatiestap op de master node (stap 2). Deze opdracht registreert de worker node met het besturingsvlak en bereidt deze voor op het uitvoeren van gecontaineriseerde workloads. De joincommando ziet er meestal als volgt uit:

$ sudo kubeadm join :6443 --token --discovery-token-ca-cert-hash sha256:
  • <master_ip_address>: Vervang dit door het IP-adres van uw master node.
  • <token>: Vervang dit door het token dat tijdens het initialisatieproces op het hoofdknooppunt wordt gegenereerd.
  • <hash>: Vervang dit door de discovery token CA-certificaat hash die wordt geleverd door de kubeadm init command output.

Stap 6: Clustergezondheid verifiëren

Zodra alle werknemersknooppunten zich bij het cluster hebben aangesloten, verifieert u de gezondheid van uw cluster met behulp van kubectl-commando's:

$ kubectl get pods -n kube-system
Evergreen One

Verminder risico’s met Evergreen//One™

Downtime is geen optie. Kijk naar Pure om er zeker van te zijn dat u altijd klaar bent om aan de capaciteitseisen te voldoen.

Ontdek Evergreen//One

Een Kubernetes-cluster beheren

Effectief beheer van een Kubernetes-cluster is cruciaal voor het behoud van prestaties en betrouwbaarheid. Dit omvat het schalen, upgraden en bijwerken van de nodes in het cluster.

Het cluster schalen

Kubernetes biedt horizontale schaalbaarheid, zodat u het aantal werknemersnodes eenvoudig kunt aanpassen op basis van uw workloadvereisten.

  1. Nodes toevoegen (opschalen):
    1. Bereid het nieuwe knooppunt voor: Zorg ervoor dat de nieuwe node voldoet aan de aanbevolen systeemvereisten voor de door u gewenste Kubernetes-versie. Installeer de benodigde software, inclusief een container runtime zoals Docker of containerd, en de kubelet agent. Raadpleeg de officiële Kubernetes-documentatie voor gedetailleerde installatiestappen op basis van uw besturingssysteem
    2. Sluit het knooppunt aan op het cluster: Gebruik de kubeadm join-opdracht op het nieuwe knooppunt om lid te worden van het bestaande cluster. U hebt de volgende informatie van uw eerste clusterconfiguratie nodig:
      • Master node IP-adres: Het IP-adres van uw master node.
      • Lid worden van token: Dit token werd gegenereerd tijdens de initialisatie van het besturingsvlak en geleverd in de uitvoer.

Hier is een voorbeeld van een kubeadm join commando:

$ sudo kubeadm sluit u aan bij <master_ip_address>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

  • Vervang door <master_ip_address> het werkelijke IP-adres van uw master node.
  • Vervang <token> door het token dat tijdens de initialisatie van het controlevlak wordt gegenereerd.
  • Vervang <hash> door de discovery token CA-certificaathash van de initialisatie-output van het besturingsvlak.

Knooppunten verwijderen (afschalen):
Voordat u een node verwijdert, is het van cruciaal belang om deze eerst leeg te maken. Draining zorgt voor geen downtime voor uw applicaties door pods gracieus uit de node te halen en in te plannen op gezonde nodes.

Tap het knooppunt af: Gebruik het kubectl drain commando om het knooppunt dat u wilt verwijderen leeg te maken. Deze opdracht verwijdert pods uit de node terwijl DaemonSets (kritieke systeemservices) kan blijven draaien.

$ kubectl drain <node-name> --ignore-daemonsets

Vervang door <node-name> de hostnaam of het IP-adres van het knooppunt dat u wilt verwijderen.

 

Verwijder het knooppunt: Eenmaal leeg, kunt u het knooppunt veilig uit het cluster verwijderen met behulp van de opdracht kubectl delete node.

 

$ kubectl delete node <node-name>

Vervang door <node-name> de hostnaam of het IP-adres van het knooppunt dat u wilt verwijderen.

U kunt ook andere beheerbewerkingen uitvoeren, zoals het upgraden van het besturingsvlak, het upgraden van het werknemersknooppunt en het uitvoeren van upgrades.

Behoud van topprestaties: Monitoring, logboekregistratie en opslag

Effectieve monitoring en logging zijn cruciaal om uw Kubernetes-cluster gezond te houden. Tools zoals Prometheus en de ELK Stack bieden diepgaande inzichten in het gebruik van resources, de gezondheid van de pod en de algehele prestaties, zodat u proactief problemen kunt identificeren en aanpakken voordat ze van invloed zijn op applicaties. Kubernetes integreert ook met verschillende oplossingen van derden voor flexibiliteit.

Efficiënt datamanagement is essentieel voor stateful applicaties. Portworx ® van Pure Storage biedt een krachtige, container-native oplossing die naadloos integreert met uw Kubernetes-cluster.

Portworx stroomlijnt opslag voor uw workloads door:

  • Aanhoudende volumes bieden: Zorgt ervoor dat data blijven bestaan, zelfs wanneer pods opnieuw worden opgestart of opnieuw worden gepland.
  • Dataprotectie en disaster recovery: Biedt snapshots en replicatie en minimaliseert downtime tijdens incidenten.
  • Vereenvoudiging van het beheer: Biedt een gebruiksvriendelijke interface voor provisioning, monitoring en beheer van opslagresources.

Conclusie

Kubernetes-clusters zijn fundamenteel voor moderne containerorkestratie en bieden verbeterde schaalbaarheid, fouttolerantie en vereenvoudigd applicatiebeheer. Het begrijpen van de componenten, het installatieproces en de beheerpraktijken van Kubernetes-clusters is cruciaal om hun volledige potentieel te benutten. Portworx van Pure Storage integreert naadloos met Kubernetes en biedt robuuste opslagcapaciteit die de algehele efficiëntie en betrouwbaarheid van gecontaineriseerde workloads verbetert.

10/2025
Virtual Machine Provisioning at Enterprise Scale
Sizing and scaling Red Hat OpenShift Virtualization with Portworx.
Whitepaper
22 pagina's

Blader door key resources en evenementen

VIDEO
Bekijk: De waarde van een Enterprise Data Cloud

Charlie Giancarlo over waarom het beheren van data en niet opslag de toekomst zal zijn. Ontdek hoe een uniforme aanpak de IT-activiteiten van bedrijven transformeert.

Nu bekijken
RESOURCE
Legacy-storage kan de toekomst niet aandrijven.

Moderne workloads vragen om AI-ready snelheid, beveiliging en schaalbaarheid. Is uw stack er klaar voor?

Doe de assessment
PURE360 DEMO’S
Ontdek, leer en ervaar Pure Storage.

Krijg toegang tot on-demand video's en demo's om te zien wat Pure Storage kan doen.

Demo’s bekijken
THOUGHT LEADERSHIP
De innovatierace

De nieuwste inzichten en perspectieven van industrieleiders in de voorhoede van opslaginnovatie.

Meer lezen
Uw browser wordt niet langer ondersteund!

Oudere browsers vormen vaak een veiligheidsrisico. Om de best mogelijke ervaring te bieden bij het gebruik van onze site, dient u te updaten naar een van deze nieuwste browsers.