,

Kubernetes vs. Docker: dette er forskjellen

Joost Boer avatar

Publiseringsdato

Containere har endret måten vi utvikler og distribuerer programvare på. De sørger for at applikasjoner kjører konsistent, uansett den underliggende infrastrukturen. To navn du utvilsomt har hørt på dette området er Docker og Kubernetes.

Problemet? Mange tror at dette er konkurrerende teknologier. Det er ikke tilfelle. Docker og Kubernetes løser forskjellige problemer og utfyller hverandre. I denne artikkelen forklarer jeg forskjellen og viser hvordan de samarbeider.

Hva er Docker og hva er egentlig containere?

Hva er containere?

En container er egentlig en isolert, bærbar enhet der du pakker applikasjonskoden og alle tilhørende avhengigheter. Tenk på det som en slags digital flytteeske der alt ditt program trenger for å kjøre, ligger.

Fordelen med dette er enorm: applikasjonen din kjører nøyaktig det samme på utviklingsmaskinen, på staging-miljøet ditt og i produksjon. Aldri mer overraskelser med «men det fungerte på min datamaskin.»

Docker sin rolle

Docker er plattformen du bruker til å bygge, dele og kjøre containere. Det er verktøyet som har gjort containerisering tilgjengelig for utviklere over hele verden.

Docker.

Med Docker fokuserer du på livssyklusen til én container. Du bygger et image av din applikasjon, tester dette lokalt, og skyver det til et register som Docker Hub. Deretter kan alle kjøre din container med en enkel docker run-kommando.

For utvikling og enkle applikasjoner er Docker perfekt. Med Docker Compose kan du til og med administrere flere containere samtidig på én maskin.

Hva er Kubernetes?

Men hva skjer når du må administrere titalls, hundrevis eller til og med tusenvis av containere? Når applikasjonen din må kjøre på flere maskiner? Når du trenger automatisk skalering?

Da støter du på kompliserte utfordringer:

  • Hvordan sørger du for at containerne dine fortsetter å kjøre hvis en maskin krasjer?
  • Hvordan fordeler du trafikk over flere instanser av applikasjonen din?
  • Hvordan administrerer du lagring som er tilgjengelig for containere på forskjellige maskiner?
  • Hvordan oppdaterer du applikasjonen din uten nedetid?

Kubernetes tilbyr løsningen

Kubernetes er en orkestreringsplattform som løser disse problemene. Den administrerer en klynge med maskiner og sørger for at containerne dine kjører som de skal.

Kubernetes.

Orkestrering betyr at Kubernetes automatisk sørger for utrulling, skalering, lastbalansering, selvreparasjon og mye mer. Du forteller Kubernetes hva du vil (for eksempel «jeg vil alltid ha 5 instanser av min webserver kjørende») og plattformen sørger for at dette skjer, selv om maskiner faller ut.

Hovedforskjellene oppsummert

Fokus og skala

Den viktigste forskjellen ligger i fokus:

Docker fokuserer på den enkelte containeren. Det hjelper deg med å bygge, pakke og kjøre én applikasjon i et isolert miljø.

Kubernetes fokuserer på å administrere et helt økosystem av containere spredt over flere maskiner. Det tenker i termer av tjenester, klynger og applikasjonslandskap.

Sammenligning

Docker (med Docker Compose): orkestrering på én vert, ideell for utvikling, prototyping og enkle applikasjoner. Perfekt når du har noen få containere som må samarbeide.

Kubernetes: avansert orkestrering over en klynge av verter. Bygget for produksjonsmiljøer med høy tilgjengelighet, automatisk skalering og selvreparerende egenskaper.

Docker og Kubernetes samarbeider

Docker og Kubernetes er ikke konkurrenter. Det er ikke et valg mellom det ene eller det andre. De samarbeider.

Slik gjør de det. Du bruker Docker til å bygge og pakke containerimagemene dine. Disse imagenene pusher du til et containerregister. Deretter bruker Kubernetes de Docker-imagene til å kjøre og administrere containere i et produksjonsmiljø.

Docker sørger for «hva» (hvilken programvare som kjører), Kubernetes sørger for «hvordan» (hvordan den programvaren kjøres på skala).

Neste steg: administrert Kubernetes

Å sette opp og administrere en Kubernetes-klynge selv er komplekst. Du må forholde deg til master-noder, arbeidernoder, nettverkskonfigurasjon, sertifikathåndtering, oppdateringer og sikkerhet. For mange team er dette en enorm distraksjon fra deres kjerneaktivitet: å utvikle programvare.

Administrert Kubernetes fjerner denne kompleksiteten. Skyleverandøren sørger for installasjon, vedlikehold og sikkerhet av klyngen din, slik at du kan fokusere på applikasjonen din.

Snart tilbyr my.host også administrert Kubernetes. Kubernetes uten driftsbyrden. My.host sørger for installasjon, vedlikehold og sikkerhet av klyngen din, slik at du helt kan fokusere på utviklingen av dine applikasjoner.

Konklusjon

Docker lager containeren, Kubernetes administrerer containerene. Så enkelt er det egentlig.

De løser forskjellige problemer på forskjellige skalaer. Docker er perfekt for utvikling og enkle deploymenter. Kubernetes er uunnværlig for komplekse, produksjonsklare applikasjoner som må kjøre på skala.

Sammen utgjør de fundamentet for moderne sky-native applikasjoner. Valget av hvilken teknologi du bruker avhenger av skalaen og kompleksiteten til prosjektet ditt. Men husk: det er Docker og Kubernetes. Det er ingen konflikt mellom de to.

Joost Boer avatar

Publisert

in

,

Tags:

kommentarer

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *