Co je Kubernetes?

Dokončeno

Oddělený návrh mikroslužeb v kombinaci s atomicitou kontejnerů umožňuje škálovat aplikace, které reagují na poptávku. V komplexních řešeních, jako je aplikace pro sledování dronů, proces nasazování, aktualizace, monitorování a odebírání kontejnerů přináší problémy.

Než se podíváte na to, co je v Kubernetes, měli byste nejprve porozumět dvěma konceptům, správě kontejnerů a orchestrátory.

Co je správa kontejnerů?

Správa kontejnerů je proces organizace, přidávání, odebírání a aktualizace většího počtu kontejnerů.

Aplikace pro sledování dronů se skládá z několika mikroslužeb zodpovědných za úlohy, jako je ukládání do mezipaměti, řazení do fronty nebo zpracování dat. Každá z těchto služeb je hostovaná v kontejneru, který je nasazený, aktualizovaný a škálovaný nezávisle na sobě.

Diagram of a server or application replicated as containers for cloud deployment.

Například u webu aplikace pro sledování dronů zjistíte v určitých časech dne více instancí služby ukládání do mezipaměti, abyste zachovali výkon, takže přidáte další instance kontejneru služby ukládání do mezipaměti.

Dále předpokládejme, že jste zvýšili počet instancí ukládání do mezipaměti a potřebujete zavést novou verzi mikroslužby. Abyste mohli používat novou verzi, musíte aktualizovat všechny aktivní kontejnery.

Správa kontejnerů vám pomůže s těmito ručními opakovanými úlohami.

Co je orchestrátor kontejnerů?

Orchestrátor kontejnerů je systém, který automaticky nasazuje a spravuje kontejnerizované aplikace. V rámci správy orchestrátor zpracovává škálování dynamických změn v prostředí, aby zvýšil nebo snížil počet nasazených instancí aplikace. Zajišťuje také, že se při vydání nové verze služby aktualizují všechny nasazené instance kontejneru.

Diagram showing how number of deployed container instances is automatically increased if demand rises and how an orchestrator ensures all deployed instances are updated with the latest software version.

Definice Kubernetes

Kubernetes je přenosná a rozšiřitelná opensourcová platforma pro správu a orchestraci kontejnerizovaných úloh. Kubernetes zjednodušuje složité úlohy správy kontejnerů a poskytuje deklarativní konfiguraci pro orchestraci kontejnerů v různých výpočetních prostředích. Tato platforma orchestrace poskytuje stejné snadné použití a flexibilitu, kterou už možná znáte z nabídek PaaS (platforma jako služba) nebo infrastruktury jako služby (IaaS).

Diagram of replicated servers as multiple containers in a Kubernetes cluster.

Výhody Kubernetes

Výhody při používání Kubernetes plynou z abstrakce úloh.

Diagram that lists three Kubernetes benefits: self-healing, dynamic scaling, and rolling updates.

Mezi tyto úlohy patří:

  • Samoopravení kontejnerů; Například restartování kontejnerů, které selžou nebo nahrazují kontejnery

  • Dynamické navýšení nebo snížení počtu nasazených kontejnerů na základě poptávky

  • Automatizace kumulativních aktualizací a vrácení zpět kontejnerů

  • Správa úložiště

  • Správa síťového provozu

  • Ukládání a správa citlivých informací, jako jsou uživatelská jména a hesla

Důležité

Nezapomeňte, že všechny zmíněné aspekty Kubernetes vyžadují konfiguraci a dobrou znalost použitých základních technologií. Například pro konfiguraci sítě Kubernetes je zapotřebí rozumět konceptům, jako jsou virtuální sítě, nástroje pro vyrovnávání zatížení a reverzní proxy.

Aspekty Kubernetes

Kubernetes umožňuje zobrazit datacentrum jako jeden velký výpočetní prostředek. Nemusíte se starat o to, jak a kam nasazujete kontejnery, jenom o nasazení a škálování aplikací podle potřeby.

Diagram that shows a list of Kubernetes components that including monitoring, microservices, databases, and the Docker runtime.

Je ale důležité si uvědomit, že Kubernetes není jediná nainstalovaná aplikace, která by se dodávala se všemi možnými komponentami potřebnými ke správě a orchestraci kontejnerového řešení.

  • Aspekty jako nasazení, škálování, vyrovnávání zatížení, protokolování a monitorování jsou všechny volitelné. Je na vás, abyste pro tyto aspekty našli nejlepší řešení, které bude vyhovovat vašim potřebám.

  • Kubernetes neomezuje typy aplikací, které se na platformě dají spouštět. Pokud se aplikace dá spustit v kontejneru, dá se spustit i v Kubernetes. Aby se zajistilo optimální využití kontejnerizovaných řešení, musí vývojáři rozumět konceptům, jako je architektura mikroslužeb.

  • Kubernetes neposkytuje middleware, architektury pro zpracování dat, databáze, mezipaměti ani systémy úložiště clusteru. Všechny tyto položky se spouští jako kontejnery nebo jako součást jiné nabídky služeb.

  • Aby Kubernetes spouštěl kontejnery, potřebuje modul runtime kontejneru, jako je Docker nebo kontejner. Modul runtime kontejneru je objekt, který odpovídá za správu kontejnerů. Mezi jeho činnosti patří například spouštění a zastavování kontejnerů a hlášení jejich stavu.

  • Vaší odpovědností je správa prostředí Kubernetes. Musíte například spravovat upgrady operačního systému a instalaci a upgrady Kubernetes. Musíte také spravovat hardwarovou konfiguraci hostitelských počítačů, jako jsou sítě, paměti a úložiště.

Cloudové služby, jako je Azure Kubernetes Service (AKS), tyto problémy snižují tím, že poskytují hostované prostředí Kubernetes. Tyto služby také zjednodušují nasazování a správu kontejnerizovaných aplikací v Azure. Díky AKS získáte výhody opensourcové služby Kubernetes, aniž byste se museli potýkat se složitou správou a provozní režií, které jsou spjaty s vedením vlastního clusteru Kubernetes.

Poznámka:

Název Kubernetes se někdy zkracuje na K8s. Číslo 8 představuje 8 znaků mezi písmeny K a s ve slově K[ubernete]s.