Veel horen over Kubernetes maar niet zeker weten wat ze zijn?
Contents
Wat is Kubernetes?
Kubernetes is een open source-tool die zorgt voor containerorkestratie. Het automatiseert containerimplementatie, continue schaling en ontschaling, container load balancing, enz.
Google heeft zich aanvankelijk ontwikkeld Kubernetes op de programmeertaal Go.
Momenteel is het marktleider in het orkestreren van containers. Kubernetes is een ideaal platform voor het hosten van microservices-applicaties die dynamisch schalen. Wanneer u aan een productieomgeving werkt, is Kubernetes het meest geprefereerde en veiligere platform voor containerorkestratie.
Omdat u in een productieomgeving nul downtime verwacht, moet uw cluster altijd actief zijn.
Met Google Cloud Platform (GCP) kunt u Kubernetes in slechts een paar klikken starten. Het wordt ondersteund door andere cloudproviders, ook zoals AWS en Azure. En er zijn meerdere beheerde Kubernetes-platforms beschikbaar.
Waarom Kubernetes?
Eerder was een gevecht tussen ontwikkelaars en testers heel gewoon.
Vroeger waren de omgevingen voor hen anders; wat werkte op het systeem van de ontwikkelaar draaide niet op het testersysteem.
Nu de meeste organisaties containers gebruiken, doen de problemen die ontstaan door verschillen in de omgeving zich niet meer voor.
Maar het organiseren en uitvoeren van meerdere containers is ook geen gemakkelijke taak. Wanneer u werkt aan dynamische applicaties, waarbij u omhoog / omlaag schaalt, is het aantal containers een vast gegeven. Het handmatig uitvoeren van dergelijke taken kan complex en riskant zijn. Daarom is een containerorkestratie-tool vereist en daarom is Kubernetes nodig.
Kubernetes-functies
Er zijn er genoeg, maar de volgende zijn enkele van de beste.
# Automatische binverpakking
Kubernetes verpakt uw applicatie en het plaatst automatisch containers op basis van hun vereisten en de beschikbare bronnen
# Service Discovery en Load Balancing
Kubernetes wijzen containers automatisch hun IP-adressen en een DNS-naam toe aan de containers die logische bewerkingen uitvoeren. Load Balancing-functie is ook aanwezig tussen de set containers.
# Opslagorkestratie
Kubernetes monteert automatisch het opslagsysteem van uw keuze. Het kan lokale opslag zijn of een openbare cloudprovider zoals AWS.
# Zelfgenezing
Telkens wanneer Kubernetes zich realiseert dat een van uw containers is mislukt, zal het die container zelfstandig opnieuw opstarten en ook een nieuwe container maken in plaats van de gecrashte container. Als uw knooppunt faalt, worden de containers die op dat knooppunt worden uitgevoerd, op een ander actief knooppunt in het cluster gestart.
# Horizontaal schalen
U kunt uw applicaties snel op en neer schalen met een simpele opdracht. De eenvoudige opdracht kan worden uitgevoerd op de CLI of via het Kubernetes-dashboard. Automatisch schalen is ook mogelijk, op basis van het CPU-gebruik worden uw containers automatisch vergroot of verkleind.
# Automatisch terugdraaien en uitrollen
Telkens wanneer er een update is voor uw applicatie, implementeert Kubernetes deze wijzigingen en updates geleidelijk aan voor de applicatie of de configuraties ervan. Niet alle exemplaren worden tegelijkertijd bijgewerkt, waardoor een hoge beschikbaarheid wordt gegarandeerd. Als er iets misgaat, zal Kubernetes dat onmiddellijk terugdraaien.
Kubernetes-terminologie
Voordat u uw handen vuil maakt, moet u een aantal terminologieën kennen die regelmatig in Kubernetes worden gebruikt.
# Pod
Het vertegenwoordigt een of meer containers die in een cluster draaien.
# Onderhoud
Een abstracte manier om toegang te krijgen tot pod / applicatie.
# Naamruimte
Het wordt gebruikt om naambotsing binnen een cluster te verwijderen. Het ondersteunt meerdere virtuele clusters op hetzelfde fysieke cluster.
# Knooppunt
Kubernetes-werkmachine.
# TROS
Bestaat uit een groep knooppunten die container-applicaties uitvoeren op Kubernetes.
# Annotatie
Een label voor het opslaan van gegevens die nodig zijn voor bronnen.
# Volume
Het is de gegevensdirectory die containers in pod-toegang bevatten.
# ReplicaSet
Verschillende replica’s van actieve pods.
# Etiket
Een naam geven aan Kubernetes-objecten zodat deze in het hele systeem kan worden geïdentificeerd.
# Kubelet
Het is een agent die op elk knooppunt draait en controleert of de containers in de pods draaien.
# Kubectl
Opdrachtregelhulpprogramma voor interactie met de Kubernetes API-server.
# Kube-proxy
Netwerkproxy die alle netwerkregels op elk knooppunt in het cluster bevat.
Kubernetes en Docker
Nu denk je misschien, hoe Kubernetes anders is dan Docker. De zinsnede Kubernetes vs. Docker kan misleidend zijn.
Docker is een platform dat OS, bibliotheken en applicaties in een container verpakt. Laat me je vertellen dat Docker hetzelfde doet als waarvoor het bedoeld is in Kubernetes. Maar als u met alleen Docker werkt, is alles handmatig. U moet containers handmatig starten en stoppen. Maar met Kubernetes wordt alles geautomatiseerd.
Kubernetes kan pods plannen die containers hebben, Kubelet vertelt Docker vervolgens om containers te starten of te stoppen. Kubelet in Kubernetes is verantwoordelijk voor het bewaken van die containers en het verzamelen van hun informatie op het hoofdknooppunt. Het belangrijkste verschil is dus dat in plaats van beheerders aan Docker te vertellen wat ze moeten doen, in Kubernetes is het allemaal geautomatiseerd.
Er is een andere tool die wordt gebruikt voor containerorkestratie: Docker Swarm. Dus, wat is het verschil tussen beide??
Kubernetes vs. Docker Swarm
Kubernetes | Docker Swarm |
Installatie is complex | Installatie is eenvoudig |
Grotere open source-community | Kleinere community vergeleken met Kubernetes |
Kan honderden containers gemakkelijk orkestreren | Goed voor het orkestreren van 10-20 containers |
Kubernetes Dashboard biedt GUI | Geen GUI |
Ondersteunt automatisch schalen | Biedt geen ondersteuning voor automatisch schalen |
Ondersteunt rolling updates met automatische rollback | Ondersteunt doorlopende updates, maar niet automatisch terugdraaien |
Logging en monitoring beschikbaar ingebouwd | Heeft een derde partij nodig zoals ELK voor logging en monitoring |
Kan volume delen met containers in dezelfde pod | Kan volume delen met elke container in het cluster |
Conclusie
Ik hoop dat je nu een basiskennis hebt van wat Kubernetes is en hoe het helpt. Als je van DevOps houdt of erover denkt om erin te komen, dan zou ik aanraden om dit te nemen fantastische Udemy-cursus om Kubernetes te leren.