,

Kubernetes vs. Docker: dette er forskellen

Joost Boer Avatar

–

Udgivelsesdato

Containere har ændret den måde, vi udvikler og implementerer software på, fuldstændig. De sikrer, at applikationer kører konsistent, uanset den underliggende infrastruktur. To navne, som du utvivlsomt er stødt på inden for dette område, er Docker og Kubernetes.

Problemet? Mange mennesker tror, at dette er konkurrerende teknologier. Det er ikke tilfældet. Docker og Kubernetes løser forskellige problemer og supplerer hinanden. I denne artikel forklarer jeg forskellen og viser, hvordan de samarbejder.

Hvad er Docker, og hvad er containere præcis?

Hvad er containere?

En container er egentlig en isoleret, bærbar enhed, hvor du pakker din applikationskode og alle tilhørende afhængigheder. Tænk på det som en slags digital flyttekasse, der indeholder alt, hvad din app behøver for at køre.

Fordelen ved dette er enorm: din applikation kører præcis det samme på din udviklermaskine, på din staging-miljø og i produktion. Ingen overraskelser mere med “men det virkede på min computer.”

Rollen af Docker

Docker er platformen, hvor du opbygger, deler og kører containere. Det er værktøjet, der har gjort containerisering tilgængelig for udviklere over hele verden.

Docker.

Med Docker fokuserer du på livscyklussen for en enkelt container. Du bygger et image af din applikation, tester det lokalt og skubber det til et registry såsom Docker Hub. Derefter kan alle køre din container med en simpel docker run kommando.

Til udvikling og enkle applikationer er Docker perfekt. Med Docker Compose kan du endda administrere flere containere samtidigt på én maskine.

Hvad er Kubernetes?

Men hvad sker der, når du skal administrere dusinvis, hundreder eller endda tusinder af containere? Når din applikation skal køre på tværs af flere maskiner? Når du har brug for automatisk skalerbarhed?

Så støder du på komplicerede udfordringer:

  • Hvordan sørger du for, at dine containere fortsætter med at køre, hvis en maskine går ned?
  • Hvordan fordeler du trafik over flere instanser af din applikation?
  • Hvordan administrerer du lager, der er tilgængeligt for containere på forskellige maskiner?
  • Hvordan opdaterer du din applikation uden nedetid?

Kubernetes tilbyder løsningen

Kubernetes er en orkestrationsplatform, der løser disse problemer. Det administrerer en klynge af maskiner og sikrer, at dine containere kører korrekt.

Kubernetes.

Orkestrering betyder, at Kubernetes automatisk sørger for deployment, skalerbarhed, load balancing, self-healing og meget mere. Du fortæller Kubernetes, hvad du vil (for eksempel “jeg vil altid have 5 instanser af min webserver kørende”), og platformen sørger for, at det sker, selvom der er maskiner, der fejler.

De vigtigste forskelle på en række

Fokus og skala

Den vigtigste forskel ligger i fokus:

Docker er fokuseret på den individuelle container. Det hjælper dig med at opbygge, pakke og køre en enkelt applikation i et isoleret miljø.

Kubernetes er fokuseret på at administrere et helt økosystem af containere spredt over flere maskiner. Det tænker i termer af tjenester, klynger og applikationslandskaber.

Sammenligning

Docker (med Docker Compose): orkestrering på én vært, ideelt til udvikling, prototyper og enkle applikationer. Perfekt til, når du har et par containere, der skal arbejde sammen.

Kubernetes: avanceret orkestrering over en klynge af værter. Bygget til produktionsmiljøer med høj tilgængelighed, automatisk skalerbarhed og self-healing egenskaber.

Docker og Kubernetes arbejder sammen

Docker og Kubernetes er ikke konkurrenter. Det handler ikke om at vælge mellem det ene eller det andet. De arbejder sammen.

Sådan fungerer det. Du bruger Docker til at opbygge og pakke dine container images. Disse images skubber du til en container registry. Derefter bruger Kubernetes de Docker images til at køre og administrere containere i et produktionsmiljø.

Docker sørger for “hvad” (hvilken software der kører), Kubernetes sørger for “hvordan” (hvordan den software kører på skala).

Næste skridt: managed Kubernetes

At opsætte og administrere en Kubernetes-klynge selv er komplekst. Du skal beskæftige dig med master noder, worker noder, netværkskonfiguration, certifikathåndtering, opdateringer og sikkerhed. For mange teams er dette en enorm distraktion fra deres kerneaktivitet: softwareudvikling.

Managed Kubernetes fjerner denne kompleksitet. Cloud-udbyderen tager sig af installationen, vedligeholdelsen og sikkerheden af din klynge, så du kan fokusere på din applikation.

Snart tilbyder my.host også managed Kubernetes. Kubernetes uden byrden af administration. My.host sørger for installation, vedligeholdelse og sikkerhed af din klynge, så du kan fokusere fuldt ud på udviklingen af dine applikationer.

Konklusion

Docker skaber containeren, Kubernetes administrerer containerne. Så simpelt er det faktisk.

De løser forskellige problemer på forskellige skalaniveauer. Docker er perfekt til udvikling og enkle deployment scenarier. Kubernetes er uundværlig for komplekse, produktionsklare applikationer, der skal køre i stor skala.

Sammen udgør de fundamentet for moderne cloud-native applikationer. Valget af hvilken teknologi du bruger afhænger af skalaen og kompleksiteten i dit projekt. Men husk: det er Docker og Kubernetes. Der er ingen kamp mellem de to.

Joost Boer Avatar

Udgivet

in

,

Tags:

kommentarer

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *