Kubernetes er et åpen kildekode system for styring av applikasjoner i et beholderteknologi miljø. Kubernetes automatiserer de manuelle prosessene for å distribuere og skala containerbehandlede applikasjoner. Det kan også håndtere klynger av containeriserte applikasjoner, som kan spenne offentlige, private og hybride skyer.

Navnet, Kubernetes, er inspirert av container-skipets analogi, og bygger på det for å indikere det greske ordet som oversetter til “rormann,” som i den som trenger å lede containerskipet. Kubernetes blir også kalt “kube” og “k8s” som er et tall, ved hjelp av første bokstav, siste bokstav og antall bokstaver mellom disse bokstavene.

History of Kubernetes

Ordet etiologies til side ble Kubernetes opprinnelig opprettet av Google, da det vokste ut av et internt prosjekt Borg, med containere som driver Google Cloud-teknologi. Faktisk hevder Google å ha erfaring med containere over femten år, og hevder “Kjør milliarder containere i uken,” som ga dem rikelig med erfaring som gikk inn i dette programvaren. Kubernetes ble deretter donert til Linux Foundation som frøteknologi, for å danne Cloud Native Computing Foundation (CNCF) i 2015.

Mens Kubernetes er et åpen kildekode-prosjekt, støttes det offisielt av både Microsoft Azure og Google Cloud. Kubernetes fikk første aksept blant tidlige adoptere, som oversatt til jevn vekst, og har nå en fremtredende posisjon i containerstyringsprogramvaren.

I disse dager har bruk av flere beholdere for en ekte produksjonsapp blitt vanlig, med containrene plassert på flere servere. Kubernetes-programvare gjør det mulig å distribuere disse beholderne, og å skalere dem over flere servere for å matche arbeidsbelastningen, inkludert planlegging av beholderne over en klynge. Det kan også bidra til å håndtere helsen til disse flerbeholderne.

Kubernetes distribusjon

Kubernetes blir distribuert for en gruppe containere, som blir betegnet som en klynge. En av containrene i klyngen er utpekt som klyngemesteren, som driver Kubernetes kontrollplanprosesser. De andre beholderne i klyngen får tildelt som noder, som er arbeidermaskinene, som faller under styringen av klyngemesteren, som fungerer som et enhetlig endepunkt.

Klyngemesteren har total kontroll over nodene, og angir livssyklusen, inkludert vurdering av helsen, samt kontroller oppgraderinger og reparasjoner til hver knute. I klyngen kan det være spesielle beholdere som blir utpekt som per-node-agenter med spesifikke funksjoner, for eksempel logginnsamling eller nettverkskobling.

Standard for en node er at den skal ha en virtuell CPU, og 3,75 GB RAM, som er standard Compute Engine maskintype. For mer beregne intensive oppgaver, kan en høyere baseline minimum CPU plattform velges. Innse at ikke alle nodens ressurser kan bli båret på applikasjonen som den er laget for å kjøre. Snarere er det nødvendig med noen av disse ressursene for å kjøre Kubernetes-motoren. De tildelte ressursene til noden, som kan brukes til å kjøre applikasjonen, er forskjellen mellom de totale ressursene og mengden reservert for Kubernetes-motoren.

For eksempel, hvis noden har 4 GB RAM tilgjengelig, blir 25% av det forbeholdt Kubernetes-motoren, og de resterende 75% kan brukes til å kjøre programmet, og krever kun 20% av de neste 4 GB RAM hvis noden har totalt 8 GB RAM. Kubernetes-motoren er mindre sulten på CPU-ressurser, og reserverer bare 6% av prosessorkraften til den første kjerne i noden, og bare 1% av en andre kjerne er betegnet til noden.

Klyngemesteren kjører Kubernetes API Server, som håndterer forespørsler, som kommer fra Kubernetes API-anrop fra Kubernetes-programvaren. Kubernetes API Server fungerer som "kommunikasjonsnav" for hele containerklyngen.

Kubernetes funksjoner

Å bidra til Kubernetes popularitet er det robuste funksjonssettet. Disse inkluderer:

  • Automatisk binpacking: Dette automatiserer hvor containere blir plassert basert på den mest effektive ressursutnyttelsen.
  • Horisontal skalering: Programmene kan skaleres opp eller ned via en enkel kommando, eller automatisert for å matche CPU-bruk.
  • Automatiserte utrullinger og tilbakekallinger: Kubernetes ruller ut oppdateringer til oppdateringer i applikasjonene i trinn, i stedet for alt på en gang, og overvåker helseproblemer, og hvis de blir funnet, vil automatisk tilbakestille til en mer stabil versjon for å bevare oppetid.
  • Lagring orkestrasjon: Den fungerer med en rekke lagringsløsninger for ekstra fleksibilitet, fra lokal til offentlig sky.
  • Selvhelbredende: Evnen til å drepe beholdere som fryser, og omstarte beholdere som fryse eller mislykkes deres helsekontroll.
  • Serviceoppdagelse og lastbalansering: Kubernetes kan tildele hver container sin egen IP-adresse, med ett DNS-navn, og muligheten til å fordele lasten mellom dem.
  • Hemmelig og konfigurasjonsadministrasjon: Programmene kan oppdateres uten å gjenopprette et bilde.
  • Batch-utførelse: Ledelse for batch og kontinuerlig integrering av arbeidsbelastninger.

Virkelige verden applikasjoner av Kubernetes

Kubernetes blir brukt av toppkorporasjoner, inkludert Comcast, eBay, Goldman Sachs, The New York Times og Pokemon Go, blant mange andre. Et eksempel på bruk av Kubernetes er videoleverandør Sling TV, som etter lanseringen i 2015 opplevde problemer da nye abonnenter overgikk deres eksisterende ressurser da de forsøkte å distribuere live-tv via internett. For å forbedre kundens erfaring, og med et ønske om økt fleksibilitet - for nå og fremover - ble det besluttet å skifte til en hybrid cloud-strategi. Dette benyttet både et VMWare multi-datasenter, integrert med flere offentlige skyer, og styrt gjennom Kubernetes Engine.

Ifølge Brad Linder, deres Sling TVs Cloud Native & Big Data Evangelist, “Vi kommer til stedet der vi kan klikke med ett klikk, distribuere et helt datasenter - beregne nettverket, logge og overvåke alle appene.” Han fortsetter å påpeke at tidligere distribusjon av en ny app ville ta dager, som nå kan oppnås på omtrent en time via Kubernetes Engine.

Mens Kubernetes har ydmyk opprinnelse som et internt prosjekt på Google, har det utviklet seg til å bli en dominerende aktør for containerhåndteringsprogramvare, uten tvil fremmet av sin åpen kildekode-tilnærming. Kraften og fleksibiliteten til Kubernetes Engine forklarer hvorfor den blir brukt over så mange ulike bransjer.

  • Vi diskuterer også beholderteknologi i større detalj her