Kubernetes är ett open source-system för hantering av applikationer i en behållarteknikmiljö. Kubernetes automatiserar manuella processer för att distribuera och skala behållare. Det kan också hantera kluster av containeriserade applikationer, som kan spänna över offentliga, privata och hybrida moln.

Namnet Kubernetes är inspirerat av containerskipanalogen och bygger på det för att ange det grekiska ordet som översätts till “rorsman,” som hos den som behöver pilotbehållaren. Kubernetes kallas också “kube” och “k8s” vilken är en talord, med första bokstaven, sista bokstaven och antalet bokstäver mellan dessa bokstäver.

Kubernetes historia

Ordet etiologier åt sidan, Kubernetes skapades ursprungligen av Google, eftersom det växte ut ur ett internt projekt Borg, med behållare som driver Google Cloud-teknik. Faktum är att Google hävdar att de har erfarenhet av behållare över femton år, och hävdar att “kör miljarder containrar per vecka,” vilket gav dem gott om erfarenhet som gick in i detta program. Kubernetes donerades sedan till Linux Foundation som en fröteknik för att bilda Cloud Native Computing Foundation (CNCF) 2015.

Medan Kubernetes är ett open source-projekt, stöds det officiellt av både Microsoft Azure och Google Cloud. Kubernetes fick initial acceptans bland tidiga adoptrar, som översattes till stadig tillväxt och nu upptar en framträdande position i containerhanteringsprogramvarutrymme.

Dessa dagar, med flera behållare för en riktig produktionsapp har blivit vanligt, med behållarna belägna över flera servrar. Kubernetes-programvaran möjliggör distribution av dessa behållare och att skala dem över flera servrar för att matcha arbetsbelastningen, inklusive schemaläggning av behållarna över ett kluster. Det kan också hjälpa till att hantera hälsan hos dessa flera behållare.

Kubernetes utplacering

Kubernetes blir deployerade för en grupp containrar, som kallas ett kluster. En av behållarna i klustret betecknas som klustermästaren, som kör Kubernetes kontrollplanprocesser. De andra behållarna i klustret får tilldelas som noder, vilka är arbetarmaskinerna, som faller under kontrollen av klustermästaren, som fungerar som en enhetlig slutpunkt.

Klustermästaren har total kontroll över sina noder, som anger deras livscykel, inklusive att bedöma deras hälsa, samt att kontrollera uppgraderingar och reparationer till varje nod. I klustret kan det finnas speciella behållare som får betecknas som nodkomponenter med specifika funktioner, till exempel logginsamling eller nätverksanslutning inom klyftan.

Standard för en nod är att den ska ha en virtuell CPU, och 3,75 GB RAM, vilket är standard Compute Engine-maskintyp. För mer beräkna intensiva uppgifter kan en högre baslinje minsta CPU-plattform väljas. Inse att inte alla nodens resurser kan bäras på den applikation som den är konstruerad att köra. Snarare behövs några av dessa resurser för att köra Kubernetes-motorn. De anvisningsbara resurserna i noden, som kan användas för att köra applikationen, är skillnaden mellan de totala resurserna och den mängd som reserveras för Kubernetes Engine.

Exempelvis, om noden har 4 GB RAM tillgängligt, är 25% av det reserverat för Kubernetes-motorn, och resterande 75% kan användas för att köra applikationen och kräver endast 20% av nästa 4 GB RAM om noden har totalt 8 GB RAM. Kubernetes-motorn är mindre hungrig av CPU-resurser, varvid endast 6% av bearbetningskraften i nodens första kärna reserveras och endast 1% av en andra kärna som är utsedd för noden.

Klustermästaren kör Kubernetes API Server, som hanterar förfrågningar, som härrör från Kubernetes API-samtal från Kubernetes-programvaran. Kubernetes API Server fungerar som "kommunikationsnav" för hela behållarklustret.

Kubernetes funktioner

Bidra till Kubernetes popularitet är dess robusta funktionssats. Dessa inkluderar:

  • Automatisk binpackning: Detta automatiserar varorna placeras utifrån den mest effektiva användningen av resurser.
  • Horisontell skalning: Programmen kan skalas upp eller ner via ett enkelt kommando, eller automatiseras för att matcha CPU-användningen.
  • Automatiserade utrullningar och rollbackar: Kubernetes rullar ut uppdateringar till programuppdateringarna i steg, snarare än alla samtidigt, och övervakar hälsofrågor och om de hittas kommer den automatiskt att återgå till en mer stabil version för att bevara upptid.
  • Förvaring orkestration: Det fungerar med en mängd olika lagringslösningar för extra flexibilitet, från lokalt till offentligt moln.
  • Självläkning: Möjligheten att döda behållare som fryser och starta om på behållare som fryser eller misslyckar sin hälsokontroll.
  • Service upptäckt och lastbalansering: Kubernetes kan tilldela varje behållare sin egen IP-adress, med ett DNS-namn och förmågan att fördela lasten mellan dem.
  • Hemlig och konfigurationshantering: Program kan uppdateras utan bildåterbyggnad.
  • Batchkörning: Hantering för sats och kontinuerlig integrationsarbete.

Verkliga världsapplikationer av Kubernetes

Kubernetes används av de bästa företagen, inklusive Comcast, eBay, Goldman Sachs, The New York Times och Pokemon Go, bland många andra. Ett exempel på användningen av Kubernetes är videoleverantören Sling TV, som efter lanseringen under 2015 upplevde problem eftersom nya abonnenter överträffade sina befintliga resurser som de försökte distribuera live-tv via internet. För att förbättra sin kunds erfarenhet och med en önskan om ökad flexibilitet - för nu och framåt - fattades beslutet att övergå till en hybrid molnstrategi. Detta använde både ett inbyggt VMWare multi datacenter, integrerat med flera offentliga moln och styrs via Kubernetes Engine.

Enligt Brad Linder, deras Sling TVs Cloud Native & Big Data Evangelist, “Vi kommer till platsen där vi kan klicka på ett helt datacenter - beräkna nätverket, logga och övervaka alla appar.” Han påpekar att tidigare implementering av en ny app skulle ta dagar, som nu kan uppnås på ungefär en timme via Kubernetes Engine.

Medan Kubernetes har ett ödmjukt ursprung som ett internt projekt på Google har det utvecklats till att bli en dominerande aktör för containerhanteringsprogramvara, vilket utan tvekan främjas av sin öppen källanvändning. Kraften och flexibiliteten hos Kubernetes Engine förklarar varför den används över så många olika branscher.

  • Vi diskuterar även behållarteknik i större detalj här