This is the Trace Id: 464391b98d3eba8da55c507dd86c228a
Gå til hovedindholdet
Azure
gradueringsbaggrund

Hvad er Kubernetes?

Få mere at vide om, hvordan du kører objektbeholdere ved at automatisere udrulning, administration og skalering.

Kubernetes-definition

Kubernetes er software med åben kildekode, der automatiserer udrulning, administration og skalering af programmer i objektbeholdere. Den orkestrerer klynger af virtuelle maskiner, planlægger objektbeholdere og tilbyder selvheling, justering af belastning og portabilitet på tværs af miljøer.

Vigtigste budskaber

  • Kubernetes er en platform, der hjælper dig med at køre, styre og udvide arbejdsbelastninger i objektbeholdere på tværs af flere servere i en klynge.
  • Den grupperer objektbeholdere i pods med planlægning af kontrolniveau og controllere, der holder den ønskede tilstand.
  • Den håndterer tjenesteregistrering, justering af belastning, automatisk skalering og selvheling (genstarter, udskiftninger og omplanlægning).
  • Teams bruger den til flytbare udgivelser på tværs af miljøer og til at spore tilstands- og stabilitetsmålepunkter.

En gennemgang af Kubernetes

Kubernetes er software med åben kildekode, som DevOps bruger til udrulning, administration og skalering af objektbeholdere på tværs af en klynge. Docker – en anden teknologi med åben kildekode – er standardfilformatet for objektbeholdere, der ofte bruges sammen med Kubernetes.

Objektbeholdere

Objektbeholdere pakker en app med dens afhængigheder og konfiguration, så den kan køre ensartet i forskellige miljøer. I takt med at et program udvikler sig, vil du måske køre mange objektbeholdere på tværs af mange servere – og det bliver kompliceret at koordinere det hele manuelt. Kubernetes løser denne kompleksitet med en API med åben kildekode og et kontrolsystem, der bestemmer, hvad der skal køre hvor, og holder det kørende.

Det gør Kubernetes for dig

Planlægning og placering af ressourcer

Kubernetes organiserer klynger af virtuelle maskiner og planlægger at køre objektbeholdere baseret på tilgængelige beregningsressourcer og ressourcebehovene for hver objektbeholder.

Tjenesteregistrering og justering af belastning

Kubernetes administrerer tjenesteregistrering og justering af belastning, så trafikken kan dirigeres til de rette pods, selv når pods ændres over tid.

Skalering, så det matcher efterspørgslen

Kubernetes skalerer arbejdsbelastninger baseret på beregningsudnyttelse og den ønskede tilstand, du angiver.

Selvheling, når der opstår fejl

Kubernetes kontrollerer ressourcens tilstand og kan genstarte eller replikere objektbeholdere, når der opstår problemer. Den genstarter eller erstatter mislykkede objektbeholdere og tilbageholder trafik, indtil arbejdsbelastningerne er klar.

Understøtter kontrollerede ændringer

Kubernetes understøtter udrulningsmønstre for kørende programmer, herunder automatiserede udrulninger og tilbagerulninger baseret på den ønskede tilstand, du beskriver.

Administration af konfiguration og hemmeligheder

Kubernetes tilbyder administration af hemmeligheder og konfiguration til følsomme oplysninger, f.eks. adgangskoder eller tokens.

Orkestrering af lager

Kubernetes kan montere de lagersystemer, du vælger (f.eks. lokale lagerløsninger eller offentlige cloudmiljøer), baseret på Kubernetes' model til orkestrering af lager.

En hurtig objektordliste

Kubernetes er bygget op omkring API-objekter – ressourcer, du erklærer og administrerer. Her er et par stykker:

  • Pod: Den grundlæggende enhed, der kører en eller flere objektbeholdere.

  • Tjeneste: En stabil metode til at eksponere en app og dirigere trafik til skiftende pods.

  • Udrulning: En metode til at beskrive en ønsket apptilstand og opdatere den over tid (ofte knyttet til udrulninger og tilbagerulninger).

  • Node: En maskine i klyngen, hvor pods kører.

  • Kontrolniveau: Komponenter, der administrerer klyngetilstand og planlægningsbeslutninger.

Sådan passer det hele sammen

  1. Du erklærer den ønskede tilstand for dit program (hvad der skal køre, hvor mange kopier, ressourcebehov).

  2. Kontrolniveauet registrerer og reagerer på denne anmodning via Kubernetes-API'en og det bagvedliggende lager.

  3. Planlæggeren placerer pods på noder med tilstrækkelige ressourcer.

  4. Nodekomponenter kører arbejdsbelastningen.

  5. Controllere afstemmer løbende, så den faktiske tilstand matcher den ønskede tilstand – skalering, udskiftning og opdatering af arbejdsbelastninger efter behov.

Kubernetes-arkitektur

De vigtigste dokumentkomponenter

Klynge: Kontrolniveau plus arbejdsnoder

En Kubernetes-klynge beskrives typisk i to dele: et kontrolniveau, der administrerer klyngen, og arbejdsnoder, der kører dine arbejdsbelastninger.

Komponenter til kontrolniveau

Disse komponenter administrerer klyngens overordnede tilstand:

  • kube-apiserver: viser Kubernetes HTTP-API'en (indgangen til anmodninger).

  • etcd: et konsistent, yderst tilgængeligt nøgleværdilager til klyngedata.

  • kube-scheduler: finder pods, der skal placeres, og tildeler dem til en node.

  • kube-controller-manager: kører controllere, der afstemmer den faktiske tilstand med den ønskede tilstand.

  • cloud-controller-manager (valgfrit): forbinder Kubernetes med cloududbyderspecifik kontrollogik.

Nodekomponenter

Hver arbejdsnode kører software, der vedligeholder pods og netværksregler:

  • kubelet: sikrer, at pods kører på noden, herunder deres objektbeholdere.

  • kube-proxy (valgfrit): vedligeholder netværksregler for at understøtte tjenester.

  • objektbeholderkørsel: kører objektbeholdere på noden.

Pods: den grundlæggende arbejdsenhed

Kubernetes planlægger ikke individuelle objektbeholdere direkte i abstrakt form. Den grupperer en eller flere objektbeholdere i en pod, som bliver den grundlæggende driftsenhed. Pods skalerer derefter op eller ned mod den ønskede tilstand, du definerer.

I praksis betyder det:

  1. Du beskriver den app, du vil køre.

  2. Kubernetes planlægger pods på maskiner med tilgængelig beregning.

  3. Controllere holder klyngen i bevægelse mod den tilstand, du har anmodet om.

Tjenestenetværk

Pods kan komme og gå, så Kubernetes indeholder primitiver – grundlæggende byggesten, du kombinerer for at beskrive og køre programmer på en klynge – der tilbyder stabile måder at nå arbejdsbelastninger på.

Grundlæggende om podnetværk

Hver pod får sin egen IP-adresse for hele klyngen, og pods kan kommunikere på tværs af noder uden NAT (oversættelse af netværksadresser) i Kubernetes-netværksmodellen.

Tjenester

Tjeneste-API'en giver en stabil IP-adresse eller et værtsnavn til et sæt back end-pods, selv når individuelle pods ændres over tid.

EndpointSlice

Kubernetes vedligeholder EndpointSlice-objekter for at spore, hvilke pods der i øjeblikket sikkerhedskopierer en tjeneste.

Indgående data/gateway-API

Kubernetes understøtter gateway-API'en (og indgående data som den foregående) for at eksponere tjenester for klienter uden for klyngen.

LoadBalancer-tjenester

Nogle miljøer kan eksponere en tjeneste eksternt ved hjælp af tjenestetypen LoadBalancer.

Tilføjelsesprogrammer, du kan køre i en klynge

Kubernetes-klynger omfatter ofte tilføjelsesprogrammer, der udvider funktionaliteten ud over kernekomponenterne. For eksempel:

  • DNS til navneoversættelse for hele klyngen.

  • Webbrugergrænseflade (dashboard) til klyngeadministration.

  • Overvågning af objektbeholderressource til indsamling af målepunkter.

  • Logføring på klyngeniveau til central indsamling af logge.

Hvordan fungerer Kubernetes?

Kubernetes kører programmer i objektbeholdere på en klynge af maskiner og holder dem i den tilstand, du beskriver. Det gør den ved at placere arbejde på de rigtige maskiner, dirigere trafik til de rigtige steder og holde øje med fejl og ændringer.

Det grundlæggende flow

1. Du beskriver, hvad du vil køre

De fleste Kubernetes-arbejdsbelastninger starter som en deklareret "ønsket tilstand" (hvad der skal køre, hvor mange kopier, og hvordan de skal eksponeres). Kubernetes er bygget op omkring deklarativ konfiguration og automatisering.

2. Kubernetes beslutter, hvor den skal køres

Kubernetes planlægger objektbeholdere på maskiner i klyngen baseret på tilgængelige beregningsressourcer, og hvad hver objektbeholder har brug for. Objektbeholdere kører i pods, som er den enhed, Kubernetes placerer på en maskine.

3. Kubernetes bliver ved med at sammenligne virkeligheden med din ønskede tilstand

Controllers holder øje med klyngen og arbejder på at bringe den aktuelle tilstand tættere på den ønskede tilstand ved hjælp af API-serveren for at foretage ændringer.

Planlægning af objektbeholdere og daglig administration

Planlægning er "hvor skal den køres?" beslutning.

1. Pods er planlagt, ikke individuelle objektbeholdere

Kubernetes grupperer objektbeholdere i pods og placerer derefter disse pods på maskiner.

2. Planlæggeren tildeler pods til en passende node

Kube-scheduler søger efter pods, der endnu ikke er tildelt, og vælger en node til dem.

3. Nodeagenter holder pods kørende

På hver node sikrer kubelet, at pods kører (herunder deres objektbeholdere).

Justering af belastning og tjenesteregistrering

Objektbeholdere og pods kan oprettes, flyttes eller erstattes, så programmer har brug for stabile måder at finde hinanden på.

Tjenesteregistrering og justering af belastning er indbyggede funktionsmåder

Kubernetes administrerer tjenesteregistrering og bruger justering af belastning, så trafikken kan dirigeres, selv når pods ændres over tid.

Tjenester giver en stabil adresse til et skiftende sæt pods

Tjeneste-API'en leverer en stabil IP-adresse eller et værtsnavn til en tjeneste, der understøttes af en eller flere pods, og Kubernetes sporer de sikkerhedskopierede pods via EndpointSlice-objekter.

Trafikrouting opdateres, når pods ændrer sig

Når pods bag en tjeneste ændres, tilpasses tjenesterouting, så trafikken fortsat når de aktuelle back-ends.

Skalering af programmer (og hvorfor "ønsket tilstand" betyder noget)

Kubernetes kan skalere arbejdsbelastninger mod den tilstand, du angiver, herunder skalering baseret på beregningsudnyttelse.

Almindelige skaleringsforslag omfatter:

  • Flere replikaer (flere pods) til at håndtere større efterspørgsel.

  • Færre replikaer, når efterspørgslen falder.

  • Ressourcesporing, så placeringsbeslutninger afspejler CPU- og hukommelsesbehov.

Det hænger sammen med modellen for "ønsket tilstand": Du angiver målet, og controllere fortsætter med at arbejde hen imod det.

Selvheling: Hvad sker der, når noget går i stykker

Kubernetes omfatter selvheling, der har til formål at opretholde arbejdsbelastningens tilstand og tilgængelighed. Disse omfatter:

  • Genstart af mislykkede objektbeholdere (genstart på objektbeholderniveau).

  • Erstatning af mislykkede pods for at bevare det ønskede antal replikaer (replikaerstatning).

  • Omplanlægning af arbejdsbelastninger, når noder bliver utilgængelige.

  • Fjernelse af mislykkede pods fra tjenesteslutpunkter, så trafikken kun går til sunde pods (justering af belastning for tjenester).

Selvheling kontrollerer objektbeholdernes tilstand og genstarter eller replikerer dem, når der opstår problemer.

Rollen for Kubernetes-KPI'er

Nøgletal (KPI'er eller målepunkter) bruges til at forstå klyngens tilstand og funktionsmåde for arbejdsbelastninger.

Hvor KPI'er kommer fra

  • Kubernetes-systemkomponenter udsender målepunkter (Prometheus-format), der er nyttige for dashboards og beskeder.

  • Målepunkter er typisk tilgængelige på HTTP-slutpunktet for en komponents/et målepunkt, herunder komponenter som kube-apiserver, kube-scheduler, kubelet, kube-proxy og kube-controller-manager.

Eksempler på, hvad KPI'er hjælper dig med at spotte

  • Klyngens tilstandssignaler (målepunkter og fejlmønstre på komponentniveau)

  • Arbejdsbelastningens stabilitet (f.eks. hyppige genstarter eller udskiftninger)

  • Kapacitetstryk (ressourceallokering i forhold til efterspørgsel, knyttet til skaleringsbeslutninger)

Derfor er det vigtigt i den daglige drift

Overvågning giver teams en mere komplet visning af klyngeressourcer, Kubernetes-API'en, objektbeholdere og logge, hvilket forkorter feedbackløkken mellem problemer og rettelser.

Fordele og use cases

Kubernetes vælges ofte, når teams har brug for en ensartet måde at køre mange objektbeholdere på på tværs af mange maskiner, samtidig med at trafikrouting, skalering og genoprettelse håndteres af platformen.

Skalerbarhed

Kubernetes kan skalere arbejdsbelastninger, altså øge eller reducere dem, efterhånden som efterspørgslen ændrer sig, mod en måltilstand og kan skalere baseret på udnyttelse af beregningsressourcer.

Almindelige use cases

  • Webapps med variabel trafik (kampagner, sæsonmæssige spidsbelastninger): Juster replikaer, efterhånden som belastningen ændres.

  • Batch- eller hændelsesdrevet behandling: Tilføj kapacitet for serier, og skaler derefter tilbage.

  • Mikrotjenester: Skaler specifikke tjenester uden at skalere hele programmet.

Ressourceeffektivitet

Kubernetes understøtter automatisk placeringspakning, som placerer objektbeholdere på noder baseret på CPU- og hukommelsesbehov for at gøre bedre brug af tilgængelige ressourcer. Den sporer også ressourceallokering, når den administrerer arbejdsbelastninger.

Almindelige use cases

  • Delte klynger til flere teams: Reducer spildt kapacitet ved at placere arbejdsbelastninger, hvor der er tilgængelige ressourcer.

  • Klynger med blandede arbejdsbelastninger (tjenester og job): Hold noder optaget uden manuel placering.

Tjenesteregistrering og justering af belastning

Kubernetes kan eksponere arbejdsbelastninger ved hjælp af DNS eller en IP-adresse, og den kan distribuere netværkstrafik for at holde udrulninger stabile. Den administrerer også tjenesteregistrering og inkorporerer justering af belastning i takt med, at arbejdsbelastninger ændres.

Almindelige use cases

  • Kommunikation med mikrotjenester: Tjenester finder hinanden via stabile navne, mens pods ændres.

  • Interne API'er bag et stabilt slutpunkt: Omdiriger kun trafik til aktuelle backends.

Selvheling

Kubernetes er udviklet til at erstatte mislykkede objektbeholdere, omplanlægge arbejdsbelastninger, når noder bliver utilgængelige, og bevare den ønskede tilstand. Eksempler omfatter genstart af objektbeholdere, erstatning af replikaer og fjernelse af beskadigede pods fra tjenesteslutpunkter, så trafikken kun går til sunde pods.

Almindelige use cases

  • Tjenester, der altid kører: Genstart eller erstat mislykkede forekomster uden manuel indgriben.

  • Klynger med hyppig nodeafgang: Omlæg arbejdsbelastninger, når en node går ned.

  • Tjenester bag en tjeneste: Stop routing af trafik til usunde pods.

Mere sikre udgivelser

Kubernetes understøtter automatiserede udrulninger og tilbagerulninger. Du beskriver den ønskede tilstand, og Kubernetes flytter den faktiske tilstand mod den i et kontrolleret tempo.

Almindelige use cases

  • Hyppige programopdateringer: Udrul ændringer gradvist, og vend derefter tilbage, hvis det er nødvendigt.

  • Teams leverer flere tjenester: Hold udgivelsesteknikker konsekvente på tværs af apps.

Portabilitet

Apps i objektbeholdere er adskilt fra infrastruktur, og Kubernetes hjælper med at flytte dem fra lokale maskiner til produktion på tværs af det lokale miljø, serveruafhængige miljøer, hybridcloudmiljøerog multicloudmiljøer, samtidig med at konsistensen bevares på tværs af miljøer.

Almindelige use cases

  • Udviklings-/test-/produktionsparitet: Bevar den samme pakke- og planlægningsmodel på tværs af miljøer.

  • Hybridinstallationer: Kør dele af et system i det lokale miljø og dele i cloudmiljøet med den samme orkestreringstilgang.

Kom i gang med Kubernetes

Kubernetes er en fælles måde at køre arbejdsbelastninger i objektbeholdere på med deklarativ konfiguration og automatisering via maskinel indlæring, der understøttes af et stort og voksende sæt værktøjer og communitysupport.

Derfor er det stadig vigtigt for cloudbaserede apps

Efterhånden som teams bygger systemer, der består af mange tjenester, kortvarige arbejdsbelastninger og hyppige opdateringer, forbliver Kubernetes et praktisk fundament, fordi det fokuserer på gentagne handlinger:

  • Ensartede handlinger på tværs af miljøer (objektbeholdere, der er pakket med afhængigheder, kører på samme måde på tværs af miljøer).

  • Et bredt, aktivt økosystem med tjenester, support og værktøjer, der er alment tilgængelige.

  • Udvidelse via communitybyggede tilføjelsesprogrammer, plug-ins og et overholdelsesprogram, der sørger for, at kerne-API'er er konsekvente på tværs af versioner.

Hvis du bygger eller kører arbejdsbelastninger, hjælper Azure Kubernetes Service (AKS) dig med at udrulle og administrere programmer i objektbeholdere med Azure, der administrerer kontrolniveauet.

gradueringsbaggrund
Ressourcer
Udvikling

Azure-ressourcer

Udforsk den nyeste udviklerteknologi, og opdag nye færdigheder.
Træning

Introduktion til Kubernetes

Dette kursus fører dig gennem de typer af virksomhedsproblemer, du kan løse ved hjælp af Kubernetes.
Uddannelse

Azure for Students

Få færdighederne til at kickstarte din karriere, og få en positiv indvirkning på verden.
Ofte stillede spørgsmål

Ofte stillede spørgsmål

  • Kubernetes bruges til at udrulle, administrere og skalere apps i objektbeholdere på tværs af en klynge. Den planlægger arbejdsbelastninger baseret på tilgængelig beregning, dirigerer trafik med tjenesteregistrering og justering af belastning og hjælper med at holde apps kørende ved at genstarte eller erstatte mislykkede objektbeholdere.
  • Kubernetes bruges typisk af udviklere og platformsadministratorer, der kører programmer i objektbeholdere. Hvis du vil bruge mindre tid på kontrolniveauet, kan en administreret tjeneste, f.eks. Azure Kubernetes Service (AKS), håndtere kontrolniveauet, mens du fokuserer på noder og apps.
  • Ja. Kubernetes kan køre apps i objektbeholdere på lokal infrastruktur, og den understøtter også hybrid- og multicloudkonfigurationer. Objektbeholdere forbliver flytbare, fordi appen pakkes separat fra de underliggende maskiner.
  • Det kan tage tid, fordi der er flere kernebegreber (klynger, noder, pods og tjenester). Start med det grundlæggende, og øv dig derefter ved at udrulle en lille app, og følg et guidet læringsforløb for at udvikle din viden.