This is the Trace Id: 63df245d0f695b3f39f681a3b32fc8e4
Overslaan naar hoofdinhoud
Azure
achtergrond met kleurovergang

Wat is Kubernetes?

Leer hoe je containers uitvoert door implementatie, beheer en schaling te automatiseren.

Kubernetes-definitie

Kubernetes is opensource software die het implementeren, beheren en schalen van gecontaineriseerde toepassingen automatiseert. Het orkestreert clusters met virtuele machines, plant containers in en biedt zelfherstel, taakverdeling en draagbaarheid tussen omgevingen.

Belangrijke punten

  • Kubernetes is een platform waarmee je containerworkloads kunt uitvoeren, beheren en opschalen op meerdere servers in een cluster.
  • Het groepeert containers in Pods, terwijl een control plane de gewenste status behoudt met planning en controllers.
  • Het zorgt voor servicedetectie, taakverdeling, automatisch schalen en zelfherstel (opnieuw starten, vervangen en opnieuw plannen).
  • Teams gebruiken het voor draagbare releases tussen omgevingen en om status- en stabiliteitsmetingen bij te houden.

Uitleg over Kubernetes

Kubernetes is opensource-software die DevOps gebruikt voor het implementeren, beheren en schalen van containers in een cluster. Docker, een andere opensource-technologie, is het standaard containerbestandsformaat dat vaak samen met Kubernetes wordt gebruikt.

Containers

Containers verpakken een app samen met de bijbehorende afhankelijkheden en configuratie, zodat die consistent kan worden uitgevoerd in verschillende omgevingen. Naarmate een toepassing zich verder ontwikkelt, kun je veel containers op een groot aantal servers uitvoeren en wordt het ingewikkeld om dit allemaal handmatig te coördineren. Kubernetes lost die complexiteit op met een opensource-API en een beheersysteem dat bepaalt wat waar moet worden uitgevoerd en deze blijft uitvoeren.

Wat Kubernetes voor je doet

Plannen en toewijzen van resources

Kubernetes coördineert clusters van virtuele machines en plant de uitvoering van containers in op basis van de beschikbare rekenresources en de benodigde resources van elke container.

Servicedetectie en taakverdeling

Kubernetes beheert servicedetectie en taakverdeling, zodat verkeer kan worden doorgestuurd naar de juiste pods, zelfs wanneer pods na verloop van tijd veranderen.

Schalen om aan de vraag te voldoen

Kubernetes schaalt workloads op basis van het gebruik van rekenkracht en de gewenste status die je instelt.

Zelfhelend als er iets misgaat

Kubernetes controleert de resourcestatus en kan containers opnieuw starten of kopiëren wanneer er problemen optreden. Hiermee worden mislukte containers opnieuw gestart of vervangen en wordt verkeer tegengehouden totdat workloads gereed zijn.

Ondersteunt gecontroleerde wijzigingen

Kubernetes ondersteunt implementatiepatronen voor actieve toepassingen, inclusief geautomatiseerde implementaties en terugdraaiacties op basis van de gewenste status die je opgeeft.

Configuratie- en geheimenbeheer

Kubernetes biedt mogelijkheden voor het beheer van geheimen en configuraties voor gevoelige informatie zoals wachtwoorden of tokens.

Opslagindeling

Kubernetes kan de opslagsystemen die je kiest koppelen, bijvoorbeeld lokale opslag of openbare cloudopties, op basis van het opslagindelingsmodel van Kubernetes.

Een woordenlijst voor snelle objecten

Kubernetes is opgebouwd rond API-objecten, resources die je declareert en beheert. Hier zijn er een paar:

  • Pod: de basiseenheid waarop een of meer containers worden uitgevoerd.

  • Service: een stabiele manier om een app beschikbaar te maken en verkeer te routeren naar veranderende pods.

  • Implementatie: een manier om een gewenste app-status te beschrijven en deze na verloop van tijd bij te werken (vaak gekoppeld aan implementaties en terugdraaiacties).

  • Knooppunt: een computer in het cluster waarop pods worden uitgevoerd.

  • Besturingsvlak: onderdelen die de clusterstatus en planningsbeslissingen beheren.

Hoe alles bij elkaar past

  1. Je geeft de gewenste status voor je toepassing op (wat moet worden uitgevoerd, hoeveel exemplaren, resourcebehoeften).

  2. Het besturingsvlak registreert en reageert op die aanvraag via de Kubernetes-API en de externe opslag.

  3. De planner plaatst pods op knooppunten met voldoende resources.

  4. Knooppuntonderdelen voeren de workload uit.

  5. Controllers voeren voortdurend afstemmingen uit, zodat de werkelijke toestand overeenkomt met de gewenste toestand, waarbij workloads waar nodig worden opgeschaald, vervangen en bijgewerkt.

Kubernetes-architectuur

De belangrijkste bouwstenen

Cluster: besturingsvlak plus werkknooppunten

Een Kubernetes-cluster wordt doorgaans in twee delen beschreven: een besturingsvlak waarmee het cluster wordt beheerd en werkknooppunten waarop je workloads worden uitgevoerd.

Onderdelen van besturingsvlak

Deze onderdelen beheren de algehele status van het cluster:

  • kube-apiserver: maakt de HTTP-API van Kubernetes (de front door voor aanvragen) beschikbaar.

  • etcd: een consistent, maximaal beschikbaar sleutel-waardearchief voor clustergegevens.

  • kube-scheduler: zoekt pods die moeten worden geplaatst en wijst ze toe aan een knooppunt.

  • kube-controller-manager: voert controllers uit die de werkelijke status afstemmen op de gewenste status.

  • cloud-controller-manager (optioneel): verbindt Kubernetes met cloudproviderspecifieke besturingslogica.

Knooppuntonderdelen

Elk werkknooppunt voert software uit die pods en netwerkregels onderhoudt:

  • kubelet: zorgt ervoor dat pods worden uitgevoerd op het knooppunt, inclusief hun containers.

  • kube-proxy (optioneel): onderhoudt netwerkregels ter ondersteuning van services.

  • container runtime: voert containers uit op het knooppunt.

Pods: de basiseenheid van werk

Kubernetes plant in abstracte zin geen afzonderlijke containers rechtstreeks in. Een of meer containers worden gegroepeerd in een pod, wat de operationele basiseenheid wordt. De pods worden vervolgens opgeschaald of afgeschaald naar de gewenste toestand die jij definieert.

In de praktijk betekent dit het volgende:

  1. Je beschrijft welke app je wilt uitvoeren.

  2. Kubernetes plant Pods op machines met beschikbare rekenkracht.

  3. Controllers houden het cluster in beweging richting de status die je hebt opgegeven.

Servicenetwerken

Pods kunnen komen en gaan, dus Kubernetes biedt primitieven, basisbouwstenen die je combineert om toepassingen op een cluster te beschrijven en uit te voeren, die stabiele manieren bieden om workloads te bereiken.

Basisbeginselen van podnetwerken

Elke pod krijgt een eigen IP-adres voor het hele cluster en pods kunnen zonder NAT (Network Address Translation) communiceren tussen knooppunten in het Kubernetes-netwerkmodel.

Services

De Service-API biedt een stabiel IP-adres of een stabiele hostnaam voor een set back-endpods, zelfs als afzonderlijke pods in de loop van de tijd veranderen.

EndpointSlice

Kubernetes onderhoudt eindpuntsegmentobjecten om bij te houden welke pods momenteel een service ondersteunen.

Inkomend/gateway-API

Om services beschikbaar te maken voor clients buiten het cluster, ondersteunt Kubernetes de Gateway-API (en inkomend verkeer als voorganger).

LoadBalancer-services

Sommige omgevingen kunnen een service extern beschikbaar maken met behulp van het servicetype LoadBalancer.

Invoegtoepassingen die je in een cluster kunt uitvoeren

Kubernetes-clusters bevatten vaak invoegtoepassingen die extra functionaliteit bieden naast de kernonderdelen. Voorbeelden:

  • DNS voor naamomzetting voor het hele cluster.

  • Webgebruikersinterface (dashboard) voor clusterbeheer.

  • Bewaking van containerresources voor het verzamelen van metrische gegevens.

  • Logboekregistratie op clusterniveau om logboeken centraal te verzamelen.

Hoe werkt Kubernetes?

Kubernetes voert toepassingen in containers uit op een cluster met machines en houdt ze in de status die jij beschrijft. Dit doet het door taken aan de juiste machines toe te wijzen en het verkeer naar de juiste bestemmingen te leiden en te controleren op storingen en wijzigingen.

De basisstroom

1. Je beschrijft wat je wilt uitvoeren

De meeste Kubernetes-workloads beginnen als een opgegeven 'gewenste status' (wat moet worden uitgevoerd, hoeveel exemplaren en hoe ze beschikbaar moeten worden gemaakt). Kubernetes is opgebouwd rond declaratieve configuratie en automatisering.

2. Kubernetes bepaalt waar het moet worden uitgevoerd

Kubernetes plant containers op machines in het cluster op basis van beschikbare rekenresources en wat elke container nodig heeft. Containers worden uitgevoerd in pods, de eenheid die Kubernetes op een machine plaatst.

3. Kubernetes blijft controleren wat er echt gebeurt versus je gewenste status

Controllers bewaken de cluster en werken eraan om de huidige status dichter bij de gewenste status te brengen, waarbij ze de API-server gebruiken om wijzigingen aan te brengen.

Containerplanning en dagelijks beheer

Plannen draait om de beslissing Waar moet dit worden uitgevoerd?

1. Pods worden gepland, niet afzonderlijke containers

Kubernetes groepeert containers in pods en plaatst deze pods vervolgens op machines.

2. De planner wijst pods toe aan een geschikt knooppunt

De kube-scheduler zoekt naar pods die nog niet zijn toegewezen en selecteert er een knooppunt voor.

3. Knooppuntagents houden de pods actief

Op elk knooppunt zorgt kubelet ervoor dat de pods worden uitgevoerd (inclusief hun containers).

Taakverdeling en servicedetectie

Containers en pods kunnen worden gemaakt, verplaatst of vervangen, zodat toepassingen stabiele manieren nodig hebben om elkaar te vinden.

Servicedetectie en taakverdeling zijn ingebouwd gedrag

Kubernetes beheert servicedetectie en maakt gebruik van taakverdeling zodat verkeer kan worden gerouteerd, zelfs als pods na verloop van tijd veranderen.

Services bieden een stabiel adres voor een veranderende set pods

De Service-API biedt een stabiel IP-adres of een stabiele hostnaam voor een service die wordt ondersteund door een of meer pods. Kubernetes houdt de ondersteunende pods bij via EndpointSlice-objecten.

Updates voor verkeersroutering wanneer pods worden gewijzigd

Wanneer pods achter een service worden gewijzigd, wordt de serviceroutering aangepast zodat het verkeer de huidige back-ends blijft bereiken.

Toepassingen schalen (en waarom de gewenste status belangrijk is)

Kubernetes kan workloads opschalen naar de status die je instelt, inclusief opschalen op basis van rekengebruik.

Algemene ideeën voor schaalaanpassing zijn onder andere:

  • Meer replica's (meer pods) om een hogere vraag aan te kunnen.

  • Minder replica's wanneer de vraag afneemt.

  • Resourcetracering zodat plaatsingsbeslissingen overeenkomen met de CPU- en geheugenbehoeften.

Dit sluit aan op het model van de gewenste status: jij geeft de doelstatus op en controllers blijven eraan werken.

Zelfherstel: wat er gebeurt als er iets stukgaat

Kubernetes omvat zelfherstelgedrag dat is gericht op het behouden van de status en beschikbaarheid van workloads. Hierbij gaat het om het volgende:

  • Mislukte containers opnieuw starten (opnieuw opstarten op containerniveau).

  • Vervangen van mislukte pods om het aangevraagde aantal replica's te behouden (replicavervanging).

  • Workloads opnieuw plannen wanneer knooppunten niet meer beschikbaar zijn.

  • Het verwijderen van mislukte pods uit service-eindpunten, zodat verkeer alleen naar gezonde pods (taakverdeling voor services) gaat.

Zelfherstel controleert de containerstatus en start deze opnieuw of repliceert deze wanneer er problemen optreden.

De rol van Kubernetes-KPI's

Key Performance Indicators (KPI's of metrische gegevens) worden gebruikt om inzicht te krijgen in de status van het cluster en het gedrag van de workload.

Waar KPI's vandaan komen

  • Kubernetes-systeemonderdelen geven metrische gegevens (Prometheus-indeling) uit die nuttig zijn voor dashboards en waarschuwingen.

  • Metrische gegevens zijn doorgaans beschikbaar op het HTTP-eindpunt van metrische gegevens van een onderdeel, inclusief onderdelen zoals kube-apiserver, kube-scheduler, kubelet, kube-proxy, en kube-controller-manager.

Voorbeelden van wat KPI's je helpen ontdekken

  • Clusterstatussignalen (metrische gegevens op onderdeelniveau en foutpatronen)

  • Stabiliteit van workloads (bijvoorbeeld frequente herstarts of vervangingen)

  • Capaciteitsdruk (resourcetoewijzing versus vraag, gekoppeld aan schaalbeslissingen)

Waarom dit belangrijk is in de dagelijkse praktijk

Bewaking biedt teams een completer beeld van clusterresources, de Kubernetes-API, containers en logboeken, waardoor de feedbacklus tussen problemen en oplossingen wordt verkort.

Voordelen en gebruiksscenario's

Kubernetes wordt vaak gekozen wanneer teams een consistente manier nodig hebben om veel containers op veel machines uit te voeren, terwijl verkeer wordt gerouteerd, geschaald en hersteld door het platform.

Schaalbaarheid

Kubernetes kan workloads schalen, oftewel vergroten of verkleinen afhankelijk van de vraag, om zo een beoogde toestand te bereiken, en kan schalen op basis van het gebruik van rekenvermogen.

Algemene gebruiksscenario's

  • Web-apps met variabel verkeer (campagnes, seizoensgebonden pieken): pas replica's aan op basis van de belasting.

  • Batch- of gebeurtenisgestuurde verwerking: voeg capaciteit toe voor bursts en schaal vervolgens terug.

  • Microservices: schaal specifieke services zonder de hele toepassing te schalen.

Resource-efficiëntie

Kubernetes ondersteunt het automatisch verpakken van opslaglocaties, waarbij containers op basis van CPU- en geheugenbehoeften op knooppunten worden geplaatst om beschikbare resources beter te benutten. Ook wordt de resourcetoewijzing bijgehouden bij het beheren van workloads.

Algemene gebruiksscenario's

  • Gedeelde clusters voor meerdere teams: verminder de verspilling van capaciteit door workloads daar te plaatsen waar resources beschikbaar zijn.

  • Gemengde workloadclusters (services plus taken): houd knooppunten bezet zonder handmatige plaatsing.

Servicedetectie en taakverdeling

Kubernetes kan workloads beschikbaar maken met behulp van DNS of een IP-adres en kan netwerkverkeer distribueren om implementaties stabiel te houden. Daarnaast wordt servicedetectie beheerd en wordt taakverdeling opgenomen als workloads veranderen.

Algemene gebruiksscenario's

  • Communicatie tussen microservices: services vinden elkaar via stabiele namen terwijl pods veranderen.

  • Interne API's achter een stabiel eindpunt: routeer verkeer alleen naar huidige back-ends.

Zelfhelend

Kubernetes is ontworpen om mislukte containers te vervangen, workloads opnieuw te plannen wanneer knooppunten niet meer beschikbaar zijn en de gewenste status te behouden. Voorbeelden hiervan zijn het opnieuw opstarten van containers, het vervangen van replica's en het verwijderen van beschadigde pods uit service-eindpunten, zodat verkeer alleen naar gezonde pods gaat.

Algemene gebruiksscenario's

  • Altijd actieve services: start mislukte exemplaren opnieuw of vervang deze zonder handmatige tussenkomst.

  • Clusters met frequent knooppuntverloop: plan workloads opnieuw wanneer een knooppunt uitvalt.

  • Services achter een service: stop het routeren van verkeer naar pods die niet in orde zijn.

Veiligere releases

Kubernetes ondersteunt geautomatiseerde implementaties en terugdraaiacties. Je beschrijft de gewenste status en Kubernetes brengt de werkelijke status in een gecontroleerd tempo in de richting daarvan.

Algemene gebruiksscenario's

  • Frequente toepassingsupdates: implementeer wijzigingen geleidelijk en draai deze vervolgens zo nodig terug.

  • Teams die meerdere services verzenden: houd release-mechanismen consistent tussen apps.

Draagbaarheid

In containers geplaatste apps staan los van de infrastructuur en Kubernetes helpt ze te verplaatsen van lokale machines naar productie in on-premises, serverloze, hybride cloud- en multi-cloudomgevingen terwijl de consistentie tussen omgevingen gewaarborgd blijft.

Algemene gebruiksscenario's

  • Pariteit in ontwikkel-, test- en productieomgeving: behoud hetzelfde verpakkings- en planningsmodel in verschillende omgevingen.

  • Hybride implementaties: voer onderdelen van een on-premises systeem en onderdelen in de cloud uit met dezelfde indelingsbenadering.

Aan de slag met Kubernetes

Kubernetes biedt een algemene manier om gecontaineriseerde workloads uit te voeren met declaratieve configuratie en machine learning-automatisering, ondersteund door een grote en groeiende set hulpprogramma's en communityondersteuning.

Waarom het nog steeds belangrijk is voor cloudeigen apps

Wanneer teams systemen bouwen die bestaan uit veel services, kortdurende workloads en regelmatige updates, blijft Kubernetes een praktische basis omdat het zich richt op herhaalbare bewerkingen:

  • Consistente bewerkingen in verschillende omgevingen (containers die zijn verpakt met afhankelijkheden, worden op dezelfde manier uitgevoerd tussen omgevingen).

  • Een breed, actief ecosysteem met algemeen beschikbare services, ondersteuning en hulpprogramma's.

  • Uitbreidbaarheid via door de community gebouwde uitbreidingen, invoegtoepassingen en een nalevingsprogramma dat kern-API's consistent houdt in verschillende versies.

Als je workloads bouwt of uitvoert, helpt Azure Kubernetes Service (AKS) je bij het implementeren en beheren van gecontaineriseerde toepassingen, waarbij Azure het besturingsvlak beheert.

achtergrond met kleurovergang
Bronnen
Ontwikkeling

Azure-bronnen

Verken de nieuwste technologie voor ontwikkelaars en ontdek nieuwe vaardigheden.
Training

Inleiding tot Kubernetes

Deze cursus laat je zien welke soorten bedrijfsproblemen je met Kubernetes kunt oplossen.
Onderwijs

Azure for Students

Doe vaardigheden op om jouw carrière goed uit de startblokken te laten komen en een positieve indruk op de wereld achter te laten.
Veelgestelde vragen

Veelgestelde vragen

  • Kubernetes wordt gebruikt om gecontaineriseerde apps binnen een cluster te implementeren, te beheren en te schalen. Het plant workloads op basis van beschikbare rekenkracht, routeert verkeer met behulp van servicedetectie en taakverdeling, en zorgt ervoor dat apps actief blijven door mislukte containers opnieuw te starten of te vervangen.
  • Kubernetes wordt doorgaans gebruikt door ontwikkelaars en platformbeheerders die gecontaineriseerde toepassingen uitvoeren. Als je minder onderhoud aan het besturingsvlak wilt, kan een beheerde service, zoals Azure Kubernetes Service (AKS), het besturingsvlak voor zijn rekening nemen, terwijl jij je concentreert op de knooppunten en apps.
  • Ja. Kubernetes kan gecontaineriseerde apps uitvoeren op lokale of on-premises infrastructuur en biedt ook ondersteuning voor hybride en multi-cloudconfiguraties. Containers blijven draagbaar omdat de app afzonderlijk van de onderliggende machines wordt verpakt.
  • Het kan even duren omdat er verschillende kernconcepten zijn (clusters, knooppunten, pods, services). Begin met de basisbeginselen, oefen vervolgens door een kleine app te implementeren en volg een begeleid leertraject om vertrouwen op te bouwen.