This is the Trace Id: 03aafdcfd62d3133f4d190e81594c38b
Přeskočit na hlavní obsah
Azure
přechodové pozadí

Co je Kubernetes?

Zjistěte, jak spouštět kontejnery automatizací nasazování, správy a škálování.

Definice Kubernetes

Kubernetes je open-source software, který automatizuje nasazování, správu a škálování kontejnerizovaných aplikací. Orchestruje clustery virtuálních počítačů, plánuje kontejnery a zajišťuje samoopravení, vyrovnávání zatížení a přenositelnost napříč prostředími.

Hlavní poznatky

  • Kubernetes je platforma, která pomáhá spouštět, řídit a rozšiřovat kontejnerové úlohy na několika serverech v clusteru.
  • Seskupuje kontejnery do Podů, zatímco řídicí rovina zajišťuje plánování a kontrolery udržují požadovaný stav.
  • Zajišťuje zjišťování služeb, vyrovnávání zatížení, automatické škálování a samoopravení (restartování, nahrazování a přeplánování).
  • Týmy ho používají pro přenositelné vydávání napříč prostředími a ke sledování metrik stavu a stability.

Vysvětlení Kubernetes

Kubernetes je open-source software, který DevOps používá k nasazování, správě a škálování kontejnerů v clusteru. Docker, další open-source technologie, je výchozí formát souborů kontejnerů běžně používaný společně s Kubernetes.

Kontejnery

Kontejnery balí aplikaci s jejími závislostmi a konfigurací, aby mohla konzistentně běžet v různých prostředích. Jak se aplikace vyvíjí, můžete spouštět mnoho kontejnerů na mnoha serverech a ruční koordinace všeho se komplikuje. Kubernetes tuto složitost řeší pomocí open-source rozhraní API a řídicího systému, který rozhoduje, co má kde běžet, a udržuje to v provozu.

Co pro vás Kubernetes dělá

Plánování a umístění prostředků

Kubernetes orchestruje clustery virtuálních počítačů a plánuje spouštění kontejnerů podle dostupných výpočetních prostředků a potřeb jednotlivých kontejnerů.

Zjišťování služeb a vyrovnávání zatížení

Kubernetes spravuje zjišťování služeb a vyrovnávání zatížení, aby se provoz směroval do správných Podů, i když se Pody v čase mění.

Škálování podle poptávky

Kubernetes škáluje úlohy podle využití výpočetních prostředků a požadovaného stavu, který nastavíte.

Samoopravení při selhání

Kubernetes kontroluje stav prostředků a při problémech může restartovat nebo replikovat kontejnery. Restartuje nebo nahrazuje selhané kontejnery a zadržuje provoz, dokud úlohy nejsou připravené.

Podporuje řízené změny

Kubernetes podporuje vzory nasazení pro běžící aplikace, včetně automatizovaných zavádění a vrácení zpět podle požadovaného stavu, který popíšete.

Správa konfigurace a tajných kódů

Kubernetes poskytuje správu tajných kódů a konfigurace pro citlivé informace, jako jsou hesla nebo tokeny.

Orchestrace úložiště

Kubernetes může připojit vámi zvolené systémy úložiště (například místní úložiště nebo možnosti veřejného cloudu) podle modelu orchestrace úložiště Kubernetes.

Rychlý slovník objektů

Kubernetes je vystavěný kolem objektů API, tedy prostředků, které deklarujete a spravujete. Tady je několik příkladů:

  • Pod: Základní jednotka, která spouští jeden nebo více kontejnerů.

  • Služba: Stabilní způsob, jak zpřístupnit aplikaci a směrovat provoz na měnící se Pody.

  • Deployment: Způsob, jak popsat požadovaný stav aplikace a v čase ho aktualizovat (často v souvislosti se zaváděním a vrácením zpět).

  • Uzel: Počítač v clusteru, na kterém běží Pody.

  • Řídicí rovina: Součásti, které spravují stav clusteru a rozhodnutí o plánování.

Jak to všechno zapadá dohromady

  1. Deklarujete požadovaný stav aplikace (co má běžet, kolik kopií a jaké jsou požadavky na prostředky).

  2. Řídicí rovina tento požadavek zaznamená a provede přes rozhraní Kubernetes API a podpůrné úložiště.

  3. Plánovač umístí Pody na uzly s dostatečnými prostředky.

  4. Součásti uzlů spouštějí úlohu.

  5. Kontrolery průběžně slaďují skutečný stav s požadovaným stavem, podle potřeby škálují, nahrazují a aktualizují úlohy.

Architektura Kubernetes

Hlavní stavební bloky

Cluster: Řídicí rovina a pracovní uzly

Cluster Kubernetes se obvykle popisuje ve dvou částech: řídicí rovina, která cluster spravuje, a pracovní uzly, které spouštějí vaše úlohy.

Součásti řídicí roviny

Tyto součásti spravují celkový stav clusteru:

  • kube-apiserver: Zpřístupňuje rozhraní Kubernetes HTTP API (vstupní bránu pro požadavky).

  • etcd: Konzistentní, vysoce dostupné úložiště dat ve formátu klíč–hodnota pro data clusteru.

  • kube-scheduler: Vyhledává Pody, které je potřeba umístit, a přiřazuje je k uzlu.

  • kube-controller-manager: Spouští kontrolery, které slaďují skutečný stav s požadovaným.

  • cloud-controller-manager (volitelné): Propojuje Kubernetes s řídicí logikou specifickou pro poskytovatele cloudu.

Součásti uzlů

Každý pracovní uzel spouští software, který udržuje Pody a pravidla sítě:

  • kubelet: Zajišťuje, že Pody na uzlu běží, včetně jejich kontejnerů.

  • kube-proxy (volitelné): Udržuje pravidla sítě pro podporu služeb.

  • běhové prostředí kontejnerů: Spouští kontejnery na uzlu.

Pody: Základní jednotka práce

Kubernetes neplánuje jednotlivé kontejnery přímo abstraktně. Seskupuje jeden nebo více kontejnerů do Podu, který se stává základní provozní jednotkou. Pody se potom škálují nahoru nebo dolů směrem k požadovanému stavu, který definujete.

V praxi to znamená:

  1. Popíšete aplikaci, kterou chcete spustit.

  2. Kubernetes plánuje Pody na počítače s dostupnými výpočetními prostředky.

  3. Kontrolery udržují cluster v pohybu směrem ke stavu, který jste požadovali.

Síťování služeb

Pody můžou přicházet a odcházet, proto Kubernetes poskytuje primitiva, tedy základní stavební bloky, které kombinujete k popisu a spouštění aplikací v clusteru, a nabízí stabilní způsoby, jak se k úlohám dostat.

Základy síťování Podů

Každý Pod dostane vlastní IP adresu v rámci clusteru a v síťovém modelu Kubernetes můžou Pody komunikovat napříč uzly bez překladu síťových adres (NAT).

Služby

Rozhraní Service API poskytuje stabilní IP adresu nebo název hostitele pro sadu back-endových Podů, i když se jednotlivé Pody v čase mění.

EndpointSlice

Kubernetes udržuje objekty EndpointSlice, aby sledoval, které Pody aktuálně podporují službu.

Rozhraní API pro příchozí provoz / bránu

Pro zpřístupnění služeb klientům mimo cluster podporuje Kubernetes rozhraní Gateway API (a ingress jako jeho předchůdce).

Služby LoadBalancer

Některá prostředí můžou zpřístupnit službu externě pomocí typu služby LoadBalancer.

Doplňky, které můžete v clusteru spouštět

Clustery Kubernetes často zahrnují doplňky, které rozšiřují funkce nad rámec základních součástí. Příklady:

  • DNS pro překlad názvů v celém clusteru.

  • Webové uživatelské rozhraní (dashboard) pro správu clusteru.

  • Monitorování prostředků kontejnerů pro shromažďování metrik.

  • Protokolování na úrovni clusteru pro centrální shromažďování protokolů.

Jak Kubernetes funguje?

Kubernetes spouští kontejnerizované aplikace v clusteru počítačů a udržuje je ve stavu, který popíšete. Dělá to tak, že umisťuje práci na správné počítače, směruje provoz na správná místa a sleduje selhání a změny.

Základní tok

1. Popíšete, co chcete spustit

Většina úloh Kubernetes začíná jako deklarovaný „požadovaný stav“ (co má běžet, kolik kopií a jak mají být zpřístupněné). Kubernetes je založený na deklarativní konfiguraci a automatizaci.

2. Kubernetes rozhoduje, kde se má úloha spustit

Kubernetes plánuje kontejnery na počítače v clusteru podle dostupných výpočetních prostředků a toho, co jednotlivé kontejnery potřebují. Kontejnery běží v Podech, což je jednotka, kterou Kubernetes umisťuje na počítač.

3. Kubernetes dál porovnává skutečnost s požadovaným stavem

Kontrolery sledují cluster a snaží se přibližovat aktuální stav požadovanému stavu pomocí serveru API, přes který provádějí změny.

Plánování kontejnerů a každodenní správa

Plánování je rozhodování o tom, kde to má běžet.

1. Plánují se Pody, ne jednotlivé kontejnery

Kubernetes seskupuje kontejnery do Podů a potom tyto Pody umisťuje na počítače.

2. Plánovač přiřazuje Pody k vhodnému uzlu

Kube-scheduler vyhledává Pody, které ještě nejsou přiřazené, a vybírá pro ně uzel.

3. Agenti uzlů udržují Pody spuštěné

Na každém uzlu kubelet zajišťuje, že Pody běží (včetně jejich kontejnerů).

Vyrovnávání zatížení a zjišťování služeb

Kontejnery a Pody se můžou vytvářet, přesouvat nebo nahrazovat, takže aplikace potřebují stabilní způsoby, jak se navzájem najít.

Zjišťování služeb a vyrovnávání zatížení jsou integrovaná chování

Kubernetes spravuje zjišťování služeb a používá vyrovnávání zatížení, aby se provoz dal směrovat, i když se Pody v čase mění.

Služby poskytují stabilní adresu pro měnící se sadu Podů

Rozhraní Service API poskytuje stabilní IP adresu nebo název hostitele pro službu podloženou jedním nebo více Pody a Kubernetes sleduje podpůrné Pody prostřednictvím objektů EndpointSlice.

Směrování provozu se aktualizuje při změně Podů

Když se Pody za službou změní, směrování služby se přizpůsobí, takže provoz dál dosahuje aktuálních back-endů.

Škálování aplikací (a proč záleží na „požadovaném stavu“)

Kubernetes může škálovat úlohy směrem ke stavu, který nastavíte, včetně škálování podle využití výpočetních prostředků.

Mezi běžné myšlenky škálování patří:

  • Více replik (více Podů) pro zvládnutí vyšší poptávky.

  • Méně replik, když poptávka klesne.

  • Sledování prostředků, aby rozhodnutí o umístění odpovídala potřebám CPU a paměti.

To navazuje na model „požadovaného stavu“: určíte cíl a kontrolery na něm dál pracují.

Samoopravení: Co se stane, když se něco pokazí

Kubernetes zahrnuje chování samoopravení, které má za cíl udržovat stav a dostupnost úloh. Patří mezi ně následující:

  • Restartování selhaných kontejnerů (restarty na úrovni kontejneru).

  • Nahrazování selhaných Podů, aby se zachoval požadovaný počet replik (nahrazení repliky).

  • Přeplánování úloh, když uzly přestanou být dostupné.

  • Odebrání selhaných Podů z koncových bodů služeb, aby provoz směřoval jen na zdravé Pody (vyrovnávání zatížení pro služby).

Samoopravení kontroluje stav kontejnerů a při problémech je restartuje nebo replikuje.

Role ukazatelů KPI Kubernetes

Klíčové ukazatele výkonu (KPI neboli metriky) se používají k pochopení stavu clusteru a chování úloh.

Odkud KPI pocházejí

  • Systémové součásti Kubernetes emitují metriky (ve formátu Prometheus), které jsou užitečné pro řídicí panely a upozornění.

  • Metriky jsou obvykle dostupné na HTTP koncovém bodu /metrics dané součásti, včetně součástí jako kube-apiserver, kube-scheduler, kubelet, kube-proxy a kube-controller-manager.

Příklady toho, co vám KPI pomůžou odhalit

  • Signály stavu clusteru (metriky na úrovni součástí a vzory chyb)

  • Stabilita úloh (například časté restarty nebo nahrazování)

  • Tlak na kapacitu (přidělení prostředků vs. poptávka, navázané na rozhodnutí o škálování)

Proč na tom záleží v každodenním provozu

Monitorování dává týmům úplnější přehled o prostředcích clusteru, rozhraní Kubernetes API, kontejnerech a protokolech, což zkracuje zpětnovazební smyčku mezi problémy a opravami.

Výhody a případy použití

Kubernetes se často volí, když týmy potřebují konzistentní způsob, jak spouštět mnoho kontejnerů na mnoha počítačích, zatímco směrování provozu, škálování a zotavení řeší platforma.

Škálovatelnost

Kubernetes může škálovat úlohy, tedy zvětšovat nebo zmenšovat je podle změn poptávky, směrem k cílovému stavu a může škálovat podle využití výpočetních prostředků.

Případy běžného použití

  • Webové aplikace s proměnlivým provozem (kampaně, sezónní špičky): Upravujte repliky podle změn zatížení.

  • Dávkové nebo událostmi řízené zpracování: Přidejte kapacitu pro nárazy a potom ji zase snižte.

  • Mikroslužby: Škálujte konkrétní služby, aniž byste škálovali celou aplikaci.

Efektivita prostředků

Kubernetes podporuje automatické efektivní umisťování (bin packing), tedy umisťování kontejnerů na uzly podle potřeb CPU a paměti, aby se lépe využily dostupné prostředky. Sleduje také přidělení prostředků při správě úloh.

Případy běžného použití

  • Sdílené clustery pro více týmů: Snižte plýtvání kapacitou umisťováním úloh tam, kde jsou dostupné prostředky.

  • Clustery se smíšenými úlohami (služby i úlohy): Udržujte uzly vytížené bez ručního umisťování.

Zjišťování služeb a vyrovnávání zatížení

Kubernetes může zpřístupňovat úlohy pomocí DNS nebo IP adresy a může rozdělovat síťový provoz tak, aby nasazení zůstala stabilní. Spravuje také zjišťování služeb a zahrnuje vyrovnávání zatížení při změnách úloh.

Případy běžného použití

  • Komunikace mikroslužeb: Služby se navzájem najdou prostřednictvím stabilních názvů, zatímco se Pody mění.

  • Interní rozhraní API za stabilním koncovým bodem: Směrujte provoz jen na aktuální back-endy.

Samoopravení

Kubernetes je navržený tak, aby nahrazoval selhané kontejnery, přeplánovával úlohy, když uzly přestanou být dostupné, a udržoval požadovaný stav. Mezi příklady patří restartování kontejnerů, nahrazování replik a odebírání nezdravých Podů z koncových bodů služeb, aby provoz směřoval jen na zdravé Pody.

Případy běžného použití

  • Služby s nepřetržitým provozem: Restartujte nebo nahrazujte selhané instance bez ručního zásahu.

  • Clustery s častými změnami uzlů: Přeplánujte úlohy, když uzel vypadne.

  • Služby za službou: Přestaňte směrovat provoz na nezdravé Pody.

Bezpečnější vydávání

Kubernetes podporuje automatizované zavádění a vrácení zpět. Popíšete požadovaný stav a Kubernetes k němu řízenou rychlostí posouvá skutečný stav.

Případy běžného použití

  • Časté aktualizace aplikací: Zavádějte změny postupně a v případě potřeby je vraťte zpět.

  • Týmy vydávající více služeb: Udržujte mechaniku vydávání konzistentní napříč aplikacemi.

Přenositelnost

Kontejnerizované aplikace jsou oddělené od infrastruktury a Kubernetes je pomáhá přesouvat z místních počítačů do produkce napříč místními prostředími, prostředími serverless, hybridního cloudu a multicloudu při zachování konzistence napříč prostředími.

Případy běžného použití

  • Parita vývoje/testování/produkce: Zachovejte stejný model balení a plánování napříč prostředími.

  • Hybridní nasazení: Spouštějte části systému místně a části v cloudu se stejným přístupem k orchestraci.

Začněte používat platformu Kubernetes

Kubernetes poskytuje společný způsob spouštění kontejnerizovaných úloh s deklarativní konfigurací a automatizací strojového učení, podpořený velkou a rostoucí sadou nástrojů a komunitní podporou.

Proč je stále důležitý pro cloudové nativní aplikace

Když týmy vytvářejí systémy složené z mnoha služeb, krátkodobých úloh a častých aktualizací, Kubernetes zůstává praktickým základem, protože se zaměřuje na opakovatelné operace:

  • Konzistentní provoz napříč prostředími (kontejnery zabalené se závislostmi běží stejným způsobem napříč prostředími).

  • Široký, aktivní ekosystém s široce dostupnými službami, podporou a nástroji.

  • Rozšiřitelnost prostřednictvím komunitních doplňků, modulů plug-in a programu kompatibility, který udržuje základní rozhraní API konzistentní napříč verzemi.

Pokud vytváříte nebo provozujete úlohy, Azure Kubernetes Service (AKS) vám pomůže nasazovat a spravovat kontejnerizované aplikace, zatímco Azure spravuje řídicí rovinu.

přechodové pozadí
Zdroje informací
Vývoj

Zdroje informací o Azure

Prozkoumejte nejnovější vývojářské technologie a objevte nové dovednosti.
Školení

Úvod do služby Kubernetes

Tento kurz vás provede typy obchodních problémů, které můžete pomocí Kubernetes řešit.
Vzdělávání

Azure for Students

Získejte dovednosti, které podpoří vaši kariéru a umožní vám pozitivně ovlivňovat svět.
Časté otázky

Časté otázky

  • Kubernetes se používá k nasazování, správě a škálování kontejnerizovaných aplikací napříč clusterem. Plánuje úlohy podle dostupných výpočetních prostředků, směruje provoz pomocí zjišťování služeb a vyrovnávání zatížení a pomáhá udržovat aplikace spuštěné restartováním nebo nahrazováním selhaných kontejnerů.
  • Kubernetes obvykle používají vývojáři a správci platforem, kteří spouštějí kontejnerizované aplikace. Pokud chcete méně starostí s údržbou řídicí roviny, může spravovaná služba, jako je Azure Kubernetes Service (AKS), zajišťovat řídicí rovinu, zatímco se soustředíte na uzly a aplikace.
  • Ano. Kubernetes může spouštět kontejnerizované aplikace na místní infrastruktuře nebo infrastruktuře v místním prostředí a podporuje také hybridní a multicloudová nastavení. Kontejnery zůstávají přenositelné, protože aplikace je zabalená odděleně od podkladových počítačů.
  • Může to chvíli trvat, protože existuje několik základních konceptů (clustery, uzly, Pody, služby). Začněte základy, potom si procvičte nasazení malé aplikace a postupujte podle řízené studijní cesty, abyste získali jistotu.