GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Docker vs. Kubernetes

Úvod

Pokud se s kontejnery a nástroji pro orchestraci kontejnerů teprve seznamujete, možná se přistihnete, že přemýšlíte o rozdílu mezi Kubernetes a Dockerem. Porovnání těchto dvou nástrojů není jednoduchý proces, protože nejsou konkurenty ani nemají stejné role.

V tomto článku se dozvíte o Dockeru a Kubernetes, jak se liší a jak spolu souvisí.

Vysvětlení Docker vs Kubernetes

Je běžnou mylnou představou, že mezi Dockerem a Kubernetes existuje jasná juxtapozice. Pravdou je, že přímé srovnání není možné, protože jeden software nemůže nahradit druhý.

Obě platformy jsou populární kontejnerové technologie. Docker je nástroj pro kontejnerizaci, zatímco Kubernetes je nástroj pro orchestraci kontejnerů. Kubernetes proto nemůžete používat bez použití kontejneru, jako je kontejner Docker.

Čtěte dále, abyste se dozvěděli více o Dockeru a Kubernetes, jejich architektuře a k čemu se používají. To vám pomůže pochopit, proč mezi nimi neexistuje jasné srovnání.

Co je Docker?

Docker je open-source platforma pro kontejnerizaci používaná k vytváření, nasazování a správě aplikací v odlehčených balíčcích nazývaných kontejnery. Přinesl revoluci a odstranil mnoho únavných procesů vývoje softwaru a dnes zůstává vedoucí kontejnerovou platformou.

Kontejnery poskytují izolované prostředí pro balicí aplikace. Protože virtualizují zdroje základního hardwaru, jsou lehké, flexibilní a cenově výhodné. Jeden server tedy může hostit více kontejnerů, z nichž každý provozuje jinou aplikaci.

Přestože jsou kontejnery podobné virtuálním strojům, liší se další virtualizační vrstvou, protože využívají jádro a operační systém hostitele.

Jak Docker funguje

Abyste pochopili, jak Docker funguje, musíte se seznámit s jeho hlavními součástmi a rolí, kterou hrají v platformě:

  • Démon Docker (dockerd) je služba, která běží na hostiteli a naslouchá požadavkům Docker API. Tento nepřetržitý proces spravuje objekty Docker a komunikuje s ostatními démony.
  • Klient Docker je komponenta, která poskytuje rozhraní příkazového řádku (CLI) pro interakci s Dockerem a instruování dockerdu, které příkazy má provést.
  • Objekty dockeru jsou prvky nezbytné pro konstrukci aplikací. Zahrnují obrazy Dockeru, kontejnery, svazky, sítě a další objekty.
  • Registry Docker jsou systémy pro doručování obsahu, které ukládají obrázky Docker. Můžete nastavit a používat soukromý registr nebo použít Docker Hub, veřejný registr, ze kterého Docker ve výchozím nastavení stahuje obrázky.

Proces začíná skriptem instrukcí, který se nazývá Dockerfile . Soubor popisuje, jak vytvořit obrázek Docker, a automaticky provádí uvedené příkazy.

Všechny kontejnery Docker jsou vytvořeny z obrázků Dockeru představující šablony aplikace v určitém časovém okamžiku. Zdrojový kód, závislosti, knihovny, nástroje a další soubory potřebné pro běh aplikace jsou balíčky do obrazu.

Jakmile roztočíte kontejner Docker ze zadaného obrazu Docker jej můžete použít jako stabilní prostředí pro vývoj a testování softwaru. Kontejnery představují přenosná, kompaktní, izolovaná běhová prostředí, která můžete snadno spustit. Stejně rychle, jak můžete roztočit nové kontejnery, můžete také odstranit staré.

K čemu se Docker používá

Docker se používá jako praktický nástroj pro balení aplikací do lehkých přenosných jednotek (kontejnerů). Vzhledem k tomu, že kontejner se skládá ze všech potřebných knihoven a závislostí pro konkrétní aplikaci, mohou vývojáři snadno zabalit, přenést a spustit nové instance aplikace, kdekoli se jim zlíbí.

Kromě toho jsou v DevOps zásadní Docker a další virtualizační řešení, která vývojářům umožňují testovat a nasazovat kód rychleji a efektivněji. Využití kontejnerů zjednodušuje DevOps tím, že umožňuje nepřetržité dodávání softwaru do výroby.

Kontejnery jsou izolovaná prostředí, což znamená, že vývojáři mohou nastavit aplikaci a zajistit, aby fungovala podle naprogramování bez ohledu na hostitele a základní hardware. To je užitečné zejména při práci na různých serverech, protože vám to umožňuje testovat nové funkce a zajistit stabilitu prostředí.

Výhody a nevýhody Dockeru

Podívejte se na hlavní výhody a nevýhody používání Dockeru.

Výhody:

  • Vytváření nových instancí kontejnerů je jednoduché a rychlé.
  • Konzistence ve více prostředích.
  • Izolovaná prostředí zjednodušují ladění.
  • Podpora velké komunity.
  • Kontejnery jsou lehčí a využívají méně zdrojů než virtuální stroje.
  • Platforma podporuje CI/CD.
  • Schopnost automatizovat opakující se úkoly.

Nevýhody:

  • Možné bezpečnostní problémy, pokud kontejnery nejsou správně zabezpečeny.
  • Potenciální problémy s výkonem v nenativních prostředích.
  • Protože kontejnery sdílejí hostitelské jádro, nejedná se o zcela izolovaná prostředí.
  • Omezení kompatibility napříč platformami.
  • Není vhodné pro aplikace, které vyžadují bohaté rozhraní.

Co je Kubernetes?

Správa velkého počtu kontejnerů v různých prostředích je při ručním provádění zdlouhavá. Kubernetes (také známý jako k8s) automatizuje škálování, nasazování a správu aplikací. Jedná se o open-source systém pro orchestraci kontejnerů pro automatizaci správy kontejnerů.

S frameworkem, jako je Kubernetes, můžete provozovat distribuované systémy kontejnerů bez obav z prostojů. Můžete nasadit aplikace pro více kontejnerů a zajistit, aby kontejnery byly synchronizované a efektivní z hlediska zdrojů.

Jak Kubernetes funguje?

Mezi základní komponenty Kubernetes a jejich role v tomto nástroji pro orchestraci patří následující:

  • Cluster Kubernetes je sada uzlových strojů pro spouštění kontejnerizovaných aplikací. Cluster se skládá z řídicí roviny a jednoho nebo více výpočetních strojů.
  • Soubor manifestu je základní soubor, který definuje obecný rámec pro konkrétní cluster Kubernetes a instruuje software, jak chcete, aby váš cluster vypadal.
  • Kubectl je rozhraní příkazového řádku používané pro komunikaci se serverem API. Poskytuje pokyny serveru a přímo spravuje zdroje, v případě potřeby přidává a odebírá kontejnery.
  • Hlavní uzel je zodpovědný za vyrovnávání zátěže a navazování a udržování komunikace uvnitř clusteru. Kromě toho přiděluje a spravuje úkoly pracovním uzlům.
  • Pracovní uzly jsou stroje pro nasazení kontejnerových pracovních zátěží a objemů úložiště. Cluster Kubernetes se skládá z jednoho hlavního uzlu a více pracovních uzlů, z nichž každý má svůj úkol.
  • Pod je nejjednodušší objekt Kubernetes, který se skládá z více kontejnerů, které patří do stejného uzlu. Kontejnery nasazené ve stejném modulu sdílejí zdroje, jako je název hostitele, adresa IP a IPC.

Každý cluster Kubernetes má dvě části – řídicí rovinu a uzly (fyzické nebo virtuální stroje). Zatímco řídicí rovina spravuje cluster, aby zajistila, že je v předepsaném stavu, uzly spouštějí moduly skládající se z několika kontejnerů, na kterých běží aplikace.

Vývojáři dávají řídicí rovině pokyn, které příkazy mají na uzlech spouštět. Řídicí rovina pak přiřadí úlohu konkrétnímu uzlu. Nakonec je automaticky vybrán modul uvnitř uzlu k provedení úkolu na základě pracovního zatížení a požadovaných zdrojů.

Další informace o klastrech, uzlech a automatizaci procesů kontejnerů najdete v našem úvodu do architektury Kubernetes.

K čemu se Kubernetes používá

Platforma se používá pro správu aplikací skládajících se z více kontejnerů, které vyžadují synchronizaci a údržbu. Jeho ústřední úlohou je proto nahradit opakované manuální funkce automatizovanými procesy spravovanými orchestrační platformou.

K8s navíc umožňuje vytvářet a spouštět aplikace na více platformách. Vývojáři jej proto používají, aby se vyhnuli uzamčení infrastruktury. Nástroj pro orchestraci může spravovat a spouštět fyzické nebo virtuální kontejnery on-premise nebo v cloudu, což poskytuje další flexibilitu zdrojů.

Automatizace nasazení a škálování přispívá k rychlejšímu dodávání a testování a podporuje nepřetržitou integraci a nepřetržité dodávání zkrácením životního cyklu vývoje softwaru. Z tohoto důvodu jej často používají týmy DevOps pracující s architekturou mikroslužeb.

Výhody a nevýhody Kubernetes

Podívejte se na hlavní výhody a nevýhody Kubernetes.

Výhody:

  • Zjednodušuje průběžné aktualizace, canary nasazení, horizontální automatické škálování a další operace nasazení.
  • Automatizované procesy pomáhají urychlit dodávky a zlepšit obecnou produktivitu.
  • Jeho schopnost běžet v různých prostředích eliminuje zablokování infrastruktury.
  • Poskytuje základ pro práci s cloudovými nativními aplikacemi.
  • Jeho funkce podporují vysokou dostupnost, nízké prostoje a celkově stabilnější aplikace.

Nevýhody:

  • Složitost platformy není pro menší aplikace efektivní.
  • Migrace nekontejnerované aplikace na platformu Kubernetes může být docela náročná.
  • Vzhledem ke své složitosti existuje strmá křivka učení, která může zpočátku snížit produktivitu.

Jak Docker a Kubernetes spolupracují?

Po přečtení toho, jak oba kontejnerové nástroje fungují, pochopíte, proč je nelze porovnávat. Místo kontrastních rysů byste je měli vnímat jako doplňkové. Docker a Kubernetes spolupracují na poskytování efektivního způsobu vývoje a spouštění aplikací.

Nakonec zabalíte a odešlete aplikace do kontejnerů pomocí Dockeru a nasadíte a škálujete je pomocí Kubernetes. Využití obou technologií vám pomůže spouštět aplikace, které jsou škálovatelnější, nezávislé na prostředí a robustní.

Důležitá poznámka :Podpora běhového prostředí Dockeru bude odstraněna v budoucí verzi Kubernetes, která bude vydána koncem roku 2021. Všechny obrazy Dockeru však budou nadále fungovat s ostatními podporovanými běhovými prostředími kontejnerů.


Docker
  1. Hostujte více webových stránek na kontejnerech Docker

  2. Jak používat Docker Compose

  3. Jak připojit kontejnery Docker

  1. Co je Docker (a Linux kontejnery?)

  2. Jak předávat proměnné prostředí do kontejnerů Docker

  3. Jak vypsat Docker kontejnery

  1. Co je Docker?

  2. Jak nainstalovat Kubernetes na Ubuntu 18.04

  3. Úvod do Docker Containers