maj 18,2018

Docker och Kubernetes – vad är vad?

 

Det pratas mycket om Docker och Kubernetes eftersom Kubernetes har blivit ett väldigt populärt verktyg för att hantera containrar. Men det kan bli rörigt med jämförelserna eftersom Docker och Kubernetes egentligen inte är direkta konkurrenter. Det finns skillnader men för att förstå dem behöver vi först ta en titt på containrar och hur de hanteras.

 

Containrar

I grunden är containrar och containerplattformar ett sätt att förpacka programvara som ger fler fördelar än traditionell virtualisering. När du kör en container vet du precis hur den kommer att bete sig. Den är förutsägbar och oföränderlig, det uppstår inga oväntade fel när du flyttar den till en ny maskin eller mellan olika miljöer. Docker är den mest populära containerplattformen. Det är en open-source lösning som gör det möjligt att bygga, skicka och köra applikationer var som helst. Även om Docker tillhandahåller en öppen standard för förpackning och distribution av containertillämpningar, löser det inte kruxet med hur containrarna ska vara samordnade och planerade. Det behövs en orkestreringsplattform som får containrarna att funka i större driftsmiljöer. Två av de mest populära är Kubernetes och Dockers egen Docker Swarm. De har både likheter och skillnader, så låt oss titta närmare på dem.

 

Kubernetes

Kubernetes är en orkestreringsplattform som började utvecklas hos Google men som nu är open-source. Plattformen gör att ett stort antal containrar kan arbeta tillsammans i harmoni vilket minskar driftsbelastningen. Kubernetes kan köras på en offentlig molntjänst eller lokalt, är mycket modulär och många företag investerar i den, vilket har gjort Kubernetes till marknadsledande. Den har både sina för- och nackdelar:

  • Open-source och modulär
  • Körs bra på alla operativsystem
  • Enkel serviceorganisation med pods
  • Kräver arbete för att installera och komma igång
  • Inkompatibel med befintliga Docker CLI och Compose-verktyg

 

Docker Swarm

Docker har också ett inbyggt containerhanteringsverktyg, Docker Swarm. Det använder sitt unika API samt är tätt integrerat med Dockers system och struktur. Precis som Kubernetes administrerar Docker Swarm ett stort antal containrar spridda över kluster av servrar och även Swarm har sina styrkor och svagheter:

  • Lätt och snabbt att installera och konfigurera
  • Fungerar med andra befintliga Docker-verktyg
  • Open-source
  • Kan distribuera containrar snabbare än Kubernetes även i mycket stora kluster vilket möjliggör snabba reaktionstider
  • Begränsad i funktionalitet av det som finns tillgängligt i Docker API
  • Begränsad feltolerans

 

En jämförelse

Både Kubernetes och Docker Swarm garanterar hög tillgänglighet av tjänster genom replikering men de skiljer sig åt i hur de gör det. Kubernetes är mer av en all-in-one ram för distribuerade system. Dess komplexitet innebär starka garantier för klustertillståndet men på bekostnad av hastighet. Swarm fokuserar på användarvänlighet och integration med Docker-komponenter medan Kubernetes är öppen och modulär. Kortfattat kan man säga att Docker Swarm ger en enkel lösning som är snabb att komma igång med medan Kubernetes styrka är att stödja högre krav med högre komplexitet. Docker Swarm är populärt bland utvecklare som föredrar enkelhet och snabba implementeringar medan Kubernetes används i produktionsmiljöer av många internetföretag som leverar tjänster. Valet mellan dem handlar alltså vad man tänker använda orkestreringsplattformen till.

 

No Comments

Post A Comment