Wat doet Kubernetes en wanneer moet u het gebruiken?

0
166

Kubernetes is een tool die alle bewegende delen beheert achter het draaien van actieve apps in containers zoals Docker. Dit maakt het schalen van uw applicatie zeer eenvoudig, omdat uw serverinfrastructuur gescheiden is van de code die erop wordt uitgevoerd.

Wat doet Kubernetes?

< p>Kubernetes wordt vaak genoemd naast Docker, maar ze voeren elk verschillende taken uit. Docker verpakt applicaties en al hun afhankelijkheden in afzonderlijke bestanden, containerimages genaamd, die zonder handmatige configuratie op een server kunnen worden uitgevoerd. De Docker-engine is vergelijkbaar met een virtuele machine, maar is veel slanker en krachtiger, en is eenvoudig ontworpen om een ​​enkele applicatie in een geïsoleerde omgeving uit te voeren.

Kubernetes is een orkestratie-engine en biedt een platform voor het uitvoeren van Docker-images. Het ondersteunt het gebruik van Docker-images, aangezien dit verreweg het meest populaire containerformaat is. Met containers kan uw code heel gemakkelijk worden gedistribueerd zonder dat u zich zorgen hoeft te maken of de server is geconfigureerd om de code correct uit te voeren.

Een hoofd Kubernetes-server beheert een cluster van werkknooppunten. Deze werkknooppunten kunnen een willekeurig aantal containers uitvoeren, die zijn verpakt in Kubernetes-pods. De hoofdserver zorgt voor de implementatie van pods op werkknooppunten en probeert een vaste configuratie te behouden. Als uw applicatie meer verkeer ontvangt, kan Kubernetes meer resources leveren, en als een van uw servers problemen ondervindt, kan Kubernetes de pods op die server naar de rest van het netwerk verplaatsen terwijl u het probleem verhelpt.

Kubernetes-werkknooppunten, met meerdere pods op hen.

Maar hoewel Kubernetes veel functies van een Platform as a Service (PaaS)-systeem biedt, levert het eigenlijk geen hardware. Kubernetes is pure software en is open source. PaaS-systemen zoals AWS EKS bouwen bovenop Kubernetes en bieden het in veel gevallen de mogelijkheid om meer bronnen voor zichzelf in te richten (automatisch schalen).

Waarom Kubernetes gebruiken?

Kubernetes brengt alle voordelen van Docker en containerisatie in het algemeen met zich mee. Containers helpen je code georganiseerd en beheerd te houden, met alle afhankelijkheden op één plek. Uw code zal in een ontwikkel- en testomgeving hetzelfde werken als in productie, geen verrassingen.

Advertentie

De Docker-images die op het Kubernetes-platform worden uitgevoerd, staan ​​los van het platform zelf en hebben geen idee dat ze in Kubernetes-pods worden uitgevoerd. Deze ontkoppeling van applicaties van infrastructuur maakt Kubernetes extreem krachtig als vervanging voor uw bestaande deployment cycle. U hoeft zich geen zorgen te maken of uw code correct op uw servers wordt uitgevoerd.

Een snelle ontwikkelingscyclus legt meer druk op uw Ops-team om zich zorgen te maken over het daadwerkelijk uitvoeren van uw code. Als u problemen ondervindt bij het beheren van de installatie en configuratie van uw app op al uw servers telkens wanneer uw code moet worden bijgewerkt, kan Kubernetes dat veel sneller maken.

En als u echt niet van het configureren en beheren van servers houdt, kan een beheerde Kubernetes-service zoals AWS EKS dat probleem verhelpen en uw app 'serverloos' maken.

Hoe begin ik?

Kubernetes is service-agnostisch, dus u kunt het zelf op uw eigen servers instellen als u dat wilt. Kubernetes is echter behoorlijk ingewikkeld, dus er zijn veel kant-en-klare oplossingen van de grote cloudproviders die hun middelen gebruiken om uw werkknooppunten van stroom te voorzien. Ze zullen allemaal Kubernetes-compatibel zijn, dus je kunt er met minimale problemen tussen schakelen.

Als je het zelf wilt instellen, kun je dat doen met de kubeadm gereedschapskist. U hebt een hoofdmachine nodig om kubeadm te gebruiken, die een of meer werkmachines met kubelet bestuurt. De hoofdmachine beheert de implementatie van de container op de werkmachines. Je kunt hun handleiding 'Aan de slag' lezen in de Kubernetes-documenten voor meer informatie, maar wees voorbereid op een nachtje configureren.

Advertentie

AWS EKS is de oplossing van Amazon, waarmee Kubernetes-apps in meerdere AWS-beschikbaarheidszones kunnen worden uitgevoerd. EKS vereist helemaal niet veel configuratie; het enige dat u hoeft te doen, is nieuwe knooppunten inrichten. U betaalt $ 0,20 per uur ($ 150 per maand) voor elk actief cluster, evenals voor de EC2- en EBS-resources die uw werkknooppunten verbruiken.

Als u geen volledig Kubernetes-cluster nodig heeft, maar toch gecontaineriseerde apps wilt uitvoeren, kunt u AWS's Elastic gebruiken Containerservice (ECS). ECS voert Docker-containers uit en heeft een eigen schaalsysteem.

Microsoft's Azure Kubernetes Service (AKS) is een beheerde Kubernetes-service die goed integreert met een Azure-pijplijn, waardoor het gemakkelijk is om van code te gaan in bronbeheer voor containers die zijn geïmplementeerd in uw Kubernetes-cluster.

Google is de oorspronkelijke maker van Kubernetes, dus natuurlijk bieden ze een beheerde Kubernetes-service via Google Cloud Platform.