Kubernetes(afgekort als K8s) is een open-sourcesysteem dat wordt gebruikt voor het beheren en implementeren van containerapplicaties via een computernetwerk. Kubernetes is een populair en krachtig containerbeheerplatform geworden, oorspronkelijk ontwikkeld door Google en momenteel onderhouden door een grote gemeenschap van ontwikkelaars.
De belangrijkste functies van Kubernetes include
-
Containerbeheer : Kubernetes hiermee kunt u applicaties en hun bronnen verpakken in containers. Containers zorgen voor een lichtgewicht omgeving en zorgen ervoor dat applicaties consistent op elk systeem draaien.
-
Geautomatiseerde implementatie : Kubernetes maakt geautomatiseerde implementatie en eenvoudige schaalbaarheid van applicaties en services mogelijk. U kunt de resourcevereisten en het aantal exemplaren opgeven en Kubernetes automatisch de gewenste status behouden.
-
Resourcebeheer : K8s beheert serverbronnen zoals CPU, geheugen en opslag om ervoor te zorgen dat applicaties geen buitensporige bronnen verbruiken en elkaar niet hinderen.
-
Automatisch herstel en fouttolerantie : Kubernetes helpt applicaties automatisch te herstellen van fouten. Het kan automatisch teruggaan naar een eerdere versie van een applicatie als de nieuwe versie problemen ondervindt.
-
Taakverdeling en verkeersverdeling : Kubernetes biedt mechanismen om verkeer gelijkmatig te verdelen over instanties van applicaties op verschillende servers nodes. Dit verbetert de prestaties en zorgt voor schaalbaarheid.
-
Configuratie- en geheimenbeheer : Kubernetes hiermee kunt u de applicatieconfiguratie en -geheimen veilig beheren met behulp van functies zoals K8s Secrets en ConfigMaps.
De werkingsmechanismen van Kubernetes include
-
Nodes: De servers of individuele computers in het netwerk worden " nodes." Er zijn twee soorten nodes in Kubernetes: Master Node en Worker Node. De Master Node beheert en bestuurt het hele systeem, terwijl de Worker Node containers de applicaties uitvoert.
-
Pods: Een Pod is de kleinste inzetbare eenheid in Kubernetes. Een pod kan een of meerdere bevatten containers, maar ze delen dezelfde netwerkopslag en levenscyclus. Dit vergemakkelijkt de communicatie tussen containers binnen een pod.
-
Controller: Controllers zijn componenten die replica's van pods. Typen controllers zijn onder meer ReplicaSet(zorgen voor het juiste aantal pods en indien nodig opnieuw opstarten), Deployment(beheer van versies en updates van applicaties) en StatefulSet(voor het implementeren van stateful applicaties).
-
Service: Services zijn een mechanisme voor taakverdeling en distributie van verkeer naar pods. Services maken het gemakkelijk voor applicaties om toegang te krijgen pods zonder dat ze hun specifieke locaties hoeven te kennen.
-
Kubelet en Kube Proxy: Kubelet is een component die op elk werkknooppunt draait en verantwoordelijk is voor het beheer pods op dat knooppunt. Kube Proxy is een netwerkproxy voor verbinding met pods.
Hierdoor Kubernetes wordt de implementatie en het beheer van containerapplicaties geautomatiseerd, waardoor de tijd en moeite die nodig is voor het onderhoud van complexe systemen wordt verminderd.