This is the Trace Id: 402b37f89adacfba431d3ac107845358
Gå til hovedinnhold
Azure
gradientbakgrunn

Hva er Kubernetes?

Finn ut hvordan du kjører beholdere ved å automatisere distribusjon, administrasjon og skalering.

Kubernetes-definisjon

Kubernetes er programvare med åpen kildekode som automatiserer distribusjon, administrasjon og skalering av beholderbaserte programmer. Den iverksetter klynger av virtuelle maskiner, planlegger beholdere og gir selvreparasjon, belastningsfordeling og portabilitet på tvers av miljøer.

Viktige hovedpunkter

  • Kubernetes er en plattform som hjelper deg med å kjøre, kontrollere og utvide beholderarbeidsbelastninger på tvers av flere servere i en klynge.
  • Den grupperer beholdere i podder, med planlegging av kontrollplan og kontrollere som beholder ønsket tilstand.
  • Den håndterer tjenesteoppdagelse, belastningsfordeling, autoskalering og selvreparasjon (omstarter, erstatninger og ny planlegging).
  • Teams bruker det til portable utgivelser på tvers av miljøer og til å spore helse- og stabilitetsmåledata.

Kubernetes forklart

Kubernetes er åpen kilde-programvare som DevOps bruker til å distribuere, administrere og skalere beholdere på tvers av en klynge. Docker – en annen åpen kilde-teknologi – er standard beholderfilformatet som vanligvis brukes sammen med Kubernetes.

Beholdere

Beholdere pakker en app med avhengigheter og konfigurasjon, slik at den kan kjøre konsekvent i forskjellige miljøer. Etter hvert som et program utvikler seg, kan du kjøre mange beholdere på tvers av mange servere – og det blir komplisert å koordinere alt dette for hånd. Kubernetes tar for seg kompleksiteten med en åpen kilde-API og et kontrollsystem som bestemmer hva som skal kjøre hvor, og holder det i gang.

Hva Kubernetes gjør for deg

Planlegging og ressursplassering

Kubernetes orkestrerer klynger av virtuelle maskiner og planlegger at beholdere skal kjøre basert på tilgjengelige databehandlingsressurser og ressursbehovene til hver beholder.

Tjenestesøk og belastningsfordeling

Kubernetes administrerer tjenesteoppdagelse og belastningsfordeling slik at trafikken kan rutes til de riktige poddene, selv om poddene endres over tid.

Skalering for å samsvare med etterspørsel

Kubernetes skalerer arbeidsbelastninger basert på databehandlingsutnyttelse og den ønskede tilstanden du angir.

Selvreparasjon når ting mislykkes

Kubernetes kontrollerer ressurstilstanden og kan starte på nytt eller replikere beholdere når det oppstår problemer. Den starter på nytt eller erstatter mislykkede beholdere og holder tilbake trafikk til arbeidsbelastningene er klare.

Støtter kontrollerte endringer

Kubernetes støtter distribusjonsmønstre for å kjøre programmer, inkludert automatisert utrulling og tilbakerulling basert på den ønskede tilstanden du beskriver.

Administrasjon av konfigurasjon og hemmeligheter

Kubernetes gir hemmelig administrasjon og konfigurasjonsadministrasjon for sensitiv informasjon, for eksempel passord eller tokener.

Iverksetting av lagring

Kubernetes kan montere lagringssystemene du velger (for eksempel lokal lagring eller alternativer for offentlig sky), basert på Kubernetes' modell for iverksetting av lagring.

En rask objektordliste

Kubernetes er bygget rundt API-objekter – ressurser du erklærer og administrerer. Her er noen:

  • Podd: Den grunnleggende enheten som kjører én eller flere beholdere.

  • Tjeneste: En stabil måte å eksponere en app og rute trafikk til skiftende podder på.

  • Distribusjon: En metode for å beskrive ønsket apptilstand og oppdatere den over tid (ofte knyttet til utrullinger og tilbakerullinger).

  • Node: En maskin i klyngen der podder kjører.

  • Kontrollplan: Komponenter som administrerer klyngetilstand og planleggingsbeslutninger.

Slik passer alt sammen

  1. Du erklærer den ønskede tilstanden for programmet (hva som skal kjøres, hvor mange eksemplarer, ressursbehov).

  2. Kontrollplanet registrerer og fungerer på denne forespørselen via Kubernetes API og lager for sikkerhetskopiering.

  3. Planleggeren plasserer podder på noder med tilstrekkelige ressurser.

  4. Nodekomponenter kjører arbeidsbelastningen.

  5. Kontrollere avstemmer kontinuerlig slik at faktisk tilstand samsvarer med ønsket tilstand – skalering, utskifting og oppdatering av arbeidsbelastninger etter behov.

Kubernetes-arkitektur

De viktigste byggeklossene

Klynge: Kontrollplan pluss arbeidsnoder

En Kubernetes-klynge beskrives vanligvis i to deler: et kontrollplan som administrerer klyngen og arbeidsnoder som kjører arbeidsbelastningene.

Kontrollplankomponenter

Disse komponentene administrerer den generelle tilstanden til klyngen:

  • kube-apiserver: Eksponerer Kubernetes HTTP API (inngangsdør for forespørsler).

  • etcd: Et konsekvent, høyt tilgjengelig nøkkelverdilager for klyngedata.

  • kube-scheduler: Finner podder som trenger plassering og tilordner dem til en node.

  • kube-controller-manager: Kjører kontrollere som avstemmer faktisk tilstand til ønsket tilstand.

  • cloud-controller-manager (valgfritt): Kobler Kubernetes til skyleverandørspesifikk kontroll-logikk.

Nodekomponenter

Hver arbeidernode kjører programvare som vedlikeholder podder og nettverksregler:

  • kubelet: Sikrer at podder kjører på noden, inkludert beholderne deres.

  • kube-proxy (valgfritt): Opprettholder nettverksregler for å støtte tjenester.

  • beholderkjøretid: Kjører beholdere på noden.

Podder: Den grunnleggende arbeidsenheten

Kubernetes planlegger ikke individuelle beholdere direkte i sammendraget. Den grupperer én eller flere beholdere i en podd, som blir den grunnleggende driftsenheten. Podder skalerer deretter opp eller ned mot den ønskede tilstanden du definerer.

I praksis betyr dette:

  1. Du beskriver appen du vil kjøre.

  2. Kubernetes planlegger podder på maskiner med tilgjengelig databehandling.

  3. Kontrollere holder klyngen i bevegelse mot tilstanden du ba om.

Tjenestenettverk

Podder kan komme og gå, så Kubernetes tilbyr primitive – grunnleggende byggeklosser du kombinerer for å beskrive og kjøre programmer på en klynge – som tilbyr stabile måter å nå arbeidsbelastninger på.

Grunnleggende om poddnettverk

Hver podd får sin egen IP-adresse for hele klyngen, og podder kan kommunisere på tvers av noder uten NAT (network address translation) i Kubernetes-nettverksmodellen.

Tjenester

Tjeneste-API-en gir en stabil IP-adresse eller et vertsnavn for et sett med serverdel-podder, selv når individuelle podder endres over tid.

EndpointSlice

Kubernetes vedlikeholder sliceobjekter for endepunkt for å spore hvilke podder som for øyeblikket støtter en tjeneste.

Inngangs-/gateway-API

Kubernetes støtter gateway-API-en (og inngang som foregående) for å eksponere tjenester for klienter utenfor klyngen.

LoadBalancer-tjenester

Noen miljøer kan eksponere en tjeneste eksternt ved hjelp av LoadBalancer-tjenestetypen.

Tillegg du kan kjøre i en klynge

Kubernetes-klynger inkluderer ofte tillegg som utvider funksjonaliteten utover kjernekomponentene. Eksempler inkluderer:

  • DNS for navneløsing for hele klyngen.

  • Nettgrensesnitt (instrumentbord) for klyngebehandling.

  • Beholderressursovervåking for måledatainnsamling.

  • Logging på klyngenivå for å samle inn logger sentralt.

Hvordan fungerer Kubernetes?

Kubernetes kjører beholderbaserte programmer på en klynge av maskiner og holder dem i tilstanden du beskriver. Den gjør dette ved å plassere arbeid på de rette maskinene, rute trafikk til de rette stedene og se etter feil og endringer.

Den grunnleggende flyten

1. Du beskriver hva du vil kjøre

De fleste Kubernetes-arbeidsbelastninger starter som en erklært «ønsket tilstand» (hva som skal kjøres, hvor mange eksemplarer og hvordan de skal eksponeres). Kubernetes er bygget rundt deklarativ konfigurasjon og automatisering.

2. Kubernetes bestemmer hvor det skal kjøres

Kubernetes planlegger beholdere på maskiner i klyngen basert på tilgjengelige databehandlingsressurser og hva hver beholder trenger. Beholdere kjører i podder, som er enheten Kubernetes plasserer på en maskin.

3. Kubernetes fortsetter å kontrollere virkeligheten kontra ønsket tilstand

Kontrollere ser på klyngen og arbeider med å flytte den gjeldende tilstanden nærmere ønsket tilstand ved hjelp av API-serveren for å gjøre endringer.

Beholderplanlegging og daglig administrasjon

Planlegging er «hvor skal dette kjøres?» beslutning.

1. Podder er planlagt, individuelle beholdere ikke

Kubernetes grupperer beholdere i podder og plasserer deretter poddene på maskiner.

2. Planleggeren tilordner podder til en passende node

Kube-planleggeren ser etter podder som ikke er tilordnet ennå, og velger en node for dem.

3. Nodeagenter holder poddene i gang

På hver node sørger kubelet for at poddene kjører (inkludert beholderne deres).

Belastningsfordeling og tjenesteoppdagelse

Beholdere og podder kan opprettes, flyttes eller erstattes, slik at programmer trenger stabile måter å finne hverandre på.

Tjenesteoppdagelse og belastningsfordeling er innebygd atferd

Kubernetes administrerer tjenesteoppdagelse og bruker belastningsfordeling slik at trafikken kan rutes selv om podder endres over tid.

Tjenester gir en stabil adresse for et sett med podder som endres

Tjeneste-API-en tilbyr en stabil IP-adresse eller et vertsnavn for en tjeneste som støttes av én eller flere podder, og Kubernetes sporer de sikkerhetskopierte poddene gjennom EndpointSlice-objekter.

Trafikkrutingsoppdateringer etter hvert som podder endres

Når podder bak en tjeneste endres, tilpasses tjenesterutingen slik at trafikken fortsetter å nå gjeldende serverdeler.

Skalering av programmer (og hvorfor «ønsket tilstand» er viktig)

Kubernetes kan skalere arbeidsbelastninger mot tilstanden du angir, inkludert skalering basert på databehandlingsutnyttelse.

Vanlige skaleringsideer inkluderer:

  • Flere replikaer (flere podder) for å håndtere høyere etterspørsel.

  • Færre replikaer når etterspørselen faller.

  • Ressurssporing slik at plasseringsbeslutninger gjenspeiler CPU- og minnebehov.

Dette knytter seg til «ønsket tilstand»-modellen: du angir målet, og kontrollerne fortsetter å arbeide mot det.

Selvreparasjon: Hva skjer når noe går i stykker

Kubernetes inkluderer selvreparasjonsatferd som har som mål å opprettholde arbeidsbelastningens helse og tilgjengelighet. Disse inkluderer:

  • Starter mislykkede beholdere på nytt (omstarter på beholdernivå).

  • Erstatte mislykkede podder for å beholde det forespurte antallet replikaer (replikaerstatning).

  • Planlegge arbeidsbelastninger på nytt når noder blir utilgjengelige.

  • Fjerning av mislykkede podder fra tjenesteendepunkter, slik at trafikken bare går til sunne podder (belastningsfordeling for tjenester).

Selvreparasjon kontrollerer beholdertilstanden og starter på nytt eller replikerer dem når det oppstår problemer.

Rollen til Kubernetes KPI-er

Nøkkelindikatorer (KPI-er eller måledata) brukes til å forstå klyngetilstand og arbeidsbelastningsatferd.

Hvor KPI-er kommer fra

  • Kubernetes-systemkomponenter avgir måledata (Prometheus-format) som er nyttige for instrumentbord og varsler.

  • Måledata er vanligvis tilgjengelige på en komponents / måledata-HTTP-endepunkt, inkludert komponenter som kube-apiserver, kube-scheduler, kubelet, kube-proxy og kube-controller-manager.

Eksempler på hva KPI-er hjelper deg med å oppdage

  • Klyngetilstandssignaler (måledata på komponentnivå og feilmønstre)

  • Stabilitet for arbeidsbelastning (for eksempel hyppige omstarter eller erstatninger)

  • Kapasitetsbelastning (ressursallokering kontra etterspørsel, knyttet til skaleringsbeslutninger)

Hvorfor dette er viktig i den daglige driften

Overvåking gir teamene en mer fullstendig oversikt over klyngeressurser, Kubernetes API, beholdere og logger, noe som forkorter tilbakemeldingssløyfen mellom problemer og løsninger.

Fordeler og brukstilfeller

Kubernetes velges ofte når team trenger en konsekvent måte å kjøre mange beholdere på tvers av mange maskiner, samtidig som trafikkruting, skalering og gjenoppretting håndteres av plattformen.

Skalerbarhet

Kubernetes kan skalere arbeidsbelastninger, noe som betyr å vokse eller redusere dem etter hvert som etterspørselen endres, mot en måltilstand og kan skaleres basert på databehandlingsutnyttelse.

Vanlige brukstilfeller

  • Nettapper med variabel trafikk (kampanjer, sesongtopper): Juster replikaer etter hvert som belastningen endres.

  • Bunke- eller hendelsesdrevet behandling: Legg til kapasitet for serier, og skaler deretter tilbake.

  • Mikrotjenester: Skaler spesifikke tjenester uten å skalere hele programmet.

Ressurseffektivitet

Kubernetes støtter automatisk bin-pakking, som er å plassere beholdere på noder basert på CPU- og minnebehov for å gjøre bedre bruk av tilgjengelige ressurser. Den sporer også ressursallokering når den administrerer arbeidsbelastninger.

Vanlige brukstilfeller

  • Delte klynger for flere team: Reduser bortkastet kapasitet ved å plassere arbeidsbelastninger der ressurser er tilgjengelige.

  • Blandede arbeidsbelastningsklynger (tjenester pluss jobber): Hold noder opptatt uten manuell plassering.

Tjenestesøk og belastningsfordeling

Kubernetes kan eksponere arbeidsbelastninger ved hjelp av DNS eller en IP-adresse, og den kan distribuere nettverkstrafikk for å holde distribusjonene stabile. Den administrerer også tjenesteoppdagelse og inkluderer belastningsfordeling etter hvert som arbeidsbelastningene endres.

Vanlige brukstilfeller

  • Mikrotjenestekommunikasjon: Tjenester finner hverandre gjennom stabile navn mens podder endres.

  • Interne API-er bak et stabilt endepunkt: Rute trafikk bare til gjeldende serverdel.

Selvreparasjon

Kubernetes er utformet for å erstatte mislykkede beholdere, planlegge arbeidsbelastninger på nytt når noder blir utilgjengelige og opprettholde ønsket tilstand. Eksempler inkluderer omstart av beholdere, replikaerstatning og fjerning av ugyldige podder fra tjenesteendepunkter, slik at trafikken bare går til sunne podder.

Vanlige brukstilfeller

  • Always-on-tjenester: Start på nytt eller erstatt mislykkede forekomster uten manuell innblanding.

  • Klynger med hyppig nodefrafall: Planlegg arbeidsbelastninger på nytt når en node går ned.

  • Tjenester bak en tjeneste: Stopp ruting av trafikk til usunne podder.

Tryggere utgivelser

Kubernetes støtter automatisert utrulling og tilbakerulling. Du beskriver ønsket tilstand, og Kubernetes flytter den faktiske tilstanden mot den med en kontrollert hastighet.

Vanlige brukstilfeller

  • Hyppige programoppdateringer: Rull endringer gradvis, og gå deretter tilbake om nødvendig.

  • Team sender flere tjenester: Hold utgivelsesmekanikken konsekvente på tvers av apper.

Portabilitet

Beholderbaserte apper er atskilt fra infrastruktur, og Kubernetes bidrar til å flytte dem fra lokale maskiner til produksjon på tvers av lokale miljøer, serverløse miljøer, hybride skymiljøer og miljøer med flere skyer, samtidig som de beholder konsekvens på tvers av miljøer.

Vanlige brukstilfeller

  • Paritet for utvikling/testing/prod: Behold samme pakke- og planleggingsmodell på tvers av miljøer.

  • Hybriddistribusjoner: Kjør deler av et system lokalt og deler i skyen med samme iverksettingstilnærming.

Kom i gang med Kubernetes

Kubernetes er en vanlig måte å kjøre beholderbaserte arbeidsbelastninger på med deklarativ konfigurasjon og maskinlæringsautomatisering, støttet av et stort og voksende sett med verktøy og fellesskapsstøtte.

Hvorfor det fremdeles er viktig for skyopprinnelige apper

Etter hvert som team bygger systemer som består av mange tjenester, kortvarige arbeidsbelastninger og hyppige oppdateringer, forblir Kubernetes et praktisk grunnlag fordi det fokuserer på repeterbare operasjoner:

  • Konsekvente operasjoner på tvers av miljøer (beholdere pakket med avhengigheter, kjører på samme måte på tvers av miljøer).

  • Et bredt, aktivt økosystem med allment tilgjengelige tjenester, støtte og verktøy.

  • Utvidbarhet via fellesskapsbygde tillegg, programtillegg og et samsvarsprogram som holder kjerne-API-er konsekvente på tvers av versjoner.

Hvis du bygger eller kjører arbeidsbelastninger, hjelper Azure Kubernetes Service (AKS) deg med å distribuere og administrere beholderbaserte programmer, der Azure administrerer kontrollplanet.

gradientbakgrunn
Ressurser
Utvikling

Azure-ressurser

Utforsk den nyeste utviklerteknologien og oppdag nye ferdigheter.
Opplæring

Innføring i Kubernetes

Dette kurset veileder deg gjennom hvilke typer forretningsproblemer du kan løse ved hjelp av Kubernetes.
Utdanning

Azure for Students

Tilegne deg ferdigheter for å sparke i gang karrieren og påvirke verden på en positiv måte.
Vanlige spørsmål

Vanlige spørsmål

  • Kubernetes brukes til å distribuere, administrere og skalere beholderbaserte apper på tvers av en klynge. Den planlegger arbeidsbelastninger basert på tilgjengelig databehandling, ruter trafikk med tjenesteoppdagelse og belastningsfordeling, og bidrar til å holde apper i gang ved å starte eller erstatte mislykkede beholdere.
  • Kubernetes brukes vanligvis av utviklere og plattformadministratorer som kjører beholderbaserte programmer. Hvis du vil ha mindre vedlikehold av kontrollplanet, kan en administrert tjeneste, for eksempel Azure Kubernetes Service (AKS), håndtere kontrollplanet mens du fokuserer på nodene og appene.
  • Ja. Kubernetes kan kjøre beholderbaserte apper på lokal eller lokal infrastruktur, og den støtter også konfigurasjoner av hybrid sky og flere skyer. Beholdere forblir portable fordi appen pakkes separat fra de underliggende maskinene.
  • Det kan ta tid fordi det finnes flere kjernekonsepter (klynger, noder, podder, tjenester). Start med det grunnleggende, og øv deretter ved å distribuere en liten app og følg et veiledet læreprogram for å bygge tillit.