Vad är Kubernetes?

Av Weapp · Uppdaterad

Kubernetes är en orkestreringsplattform som håller containrar igång i drift: den startar om det som kraschar, skalar upp vid hög last och rullar ut nya versioner kontrollerat. Om containern är en byggsten är Kubernetes dirigenten som får många av dem att spela ihop. För små system är det ofta överkurs och enklare drift räcker.

Kubernetes nämns nästan alltid i samma andetag som containrar och modern drift, men vad det faktiskt gör förblir dimmigt för många beslutsfattare. Namnet hjälper inte. Här är vad Kubernetes är, liknelsen som gör det begripligt och den ärliga frågan om ni verkligen behöver det.

Dirigenten ovanpå containrarna

För att förstå Kubernetes behöver man först containern: en app paketerad med hela sin miljö, så att den kör likadant överallt. En container är en byggsten. Men ett riktigt system består sällan av en enda container – det kan vara dussintals eller hundratals, som ska starta, prata ihop sig, hållas vid liv och skalas.

Här kommer Kubernetes in. Om varje container är en musiker, är Kubernetes dirigenten som får hela orkestern att spela tillsammans. Den bestämmer hur många containrar som ska köra, var de ska köra, hur de hittar varandra och vad som händer när en av dem faller ifrån. Ensam kan varje container göra sin sak; Kubernetes får många att fungera som en helhet.

Vad Kubernetes ger dig

Konkret löser plattformen tre saker som annars kräver ständig manuell tillsyn:

  • Självläkning. Kraschar en container startar Kubernetes automatiskt en ny i dess ställe. Går en hel maskin ner flyttas arbetet till en annan. Systemet återställer sig själv mot det läge du beskrivit, utan att någon behöver väckas mitt i natten.
  • Skalning. När lasten stiger kan Kubernetes starta fler kopior av en tjänst för att möta trycket, och avveckla dem igen när det lugnar sig. Kapaciteten följer behovet i stället för att gissas i förväg.
  • Kontrollerade releaser. Nya versioner kan rullas ut stegvis och stoppas eller backas om något ser fel ut, så att en uppdatering inte fäller hela tjänsten på en gång.

Det här är sådant stora tjänster med hög tillgänglighet behöver, och som är tungt att bygga och sköta för hand.

Ett konkret scenario

Tänk dig en e-handel som får en kraftig trafiktopp under en kampanj. Utan orkestrering måste någon i förväg gissa hur mycket kapacitet som behövs, hålla den igång dygnet runt och manuellt ingripa om en server kraschar mitt i rusningen. Med Kubernetes startas fler kopior automatiskt när trafiken stiger, kraschade delar ersätts på egen hand, och när kampanjen är över skalas allt ned igen. Driftteamet beskriver vad som ska gälla, och plattformen ser till att det förblir så.

Den ärliga tumregeln: ofta överkurs

Här är den viktigaste poängen, som sällan sägs rakt ut: för de flesta små system är Kubernetes onödigt. Kraften kommer med betydande komplexitet – många rörliga delar, en brant inlärningskurva och ett underhåll som är ett hantverk i sig.

Har du en enskild app eller några få tjänster med jämn trafik, räcker enklare drift oftast gott: en vanlig server eller en hanterad plattform där leverantören sköter det tunga. Att införa Kubernetes “för att alla andra gör det” är ett vanligt sätt att köpa sig problem man inte har. Plattformen börjar löna sig först när ni har många tjänster, varierande last och behov av att släppa och skala ofta.

Den dolda kostnaden är sällan licenser eller servrar – den är kompetens och tid. Kubernetes kräver människor som förstår det, kan felsöka det när det krånglar och håller det säkert och uppdaterat. För ett litet team betyder det ofta att en stor del av utvecklingskraften går åt till att sköta plattformen i stället för att bygga produkten. Det är den avvägningen som gör frågan skarp: varje timme som läggs på onödig infrastruktur är en timme som inte går till det kunderna faktiskt betalar för. Väljer ni ändå Kubernetes, kan en hanterad variant hos en molnleverantör flytta en del av den bördan bort från er.

Så tänker du kring valet

Utgå från behovet, inte från trenden. Frågan är inte “är Kubernetes modernt” utan “har vi många tjänster och en last som verkligen kräver det här”. Är svaret nej, är enklare drift både billigare och stabilare. Är svaret ja, kan en hanterad Kubernetes hos en molnleverantör ta udden av komplexiteten.

Vill ni ha ett neutralt omdöme om vilken driftnivå som passar just era tjänster, tittar vi på Weapp gärna på helheten tillsammans innan ni bygger upp något ni sedan måste underhålla.

Vanliga frågor

Vad gör Kubernetes, kort sagt?

Kubernetes håller ordning på containrar i drift. Den ser till att rätt antal körs, startar om dem som kraschar, fördelar last mellan dem, skalar upp när trafiken stiger och ned när den lugnar sig, och rullar ut nya versioner utan avbrott. I stället för att en människa vaktar allt detta manuellt sköter plattformen det automatiskt.

Vad är skillnaden mellan containrar och Kubernetes?

En container paketerar en app så att den kör likadant överallt. Kubernetes är lagret ovanpå som styr många containrar samtidigt i produktion. Containern är byggstenen, Kubernetes dirigenten som får dem att spela ihop, hållas vid liv och skala. Man behöver containrar för att använda Kubernetes, men inte tvärtom.

Vad menas med självläkning?

Att plattformen själv rättar till problem. Om en container kraschar eller slutar svara märker Kubernetes det och startar en ny i dess ställe, utan att någon behöver ingripa. Går en hel maskin ner flyttas arbetet till en annan. Systemet strävar hela tiden mot det önskade läget du beskrivit, och återställer sig mot det.

Behöver mitt system Kubernetes?

Ofta inte. Kubernetes lönar sig när ni har många tjänster, hög eller varierande last och behov av att skala och släppa ofta. För en enskild app eller några få tjänster med jämn trafik är det oftast överkurs – komplexiteten kostar mer än den ger, och enklare drift räcker gott. Storleken på behovet avgör.

Är Kubernetes svårt att driva?

Det kräver kompetens. Kubernetes är kraftfullt men har många rörliga delar, och att sätta upp och underhålla det på ett säkert sätt är ett hantverk i sig. Många väljer därför en hanterad variant hos en molnleverantör, som tar hand om det tyngsta. Att införa det utan att behovet finns är ett vanligt sätt att köpa sig onödig komplexitet.