Kubernetes

Kubernetes vs Docker

Kubernetes vs Docker
Kubernetes a Docker jsou na vzestupu. Obě technologie měly velmi odlišné kořeny, ale v posledních letech se propletly tak, jak to nikdo nečekal. Komunity se spojily, balíčky jsou přenášeny mezi všechny možné operační systémy a jsou z velké části otevřeným zdrojem, což vedlo k nepřebernému množství satelitních projektů a konkurence.

To vše může být ohromující pro každého nového uživatele, který se pokouší pochopit toto relativně nové paradigma. Pojďme diskutovat o hlavních rozdílech mezi Kubernetes a Docker tak, že se nejdříve ponoříme hlouběji do toho, co tyto technologie ve skutečnosti znamenají. Pokud máte nějaké znalosti, Docker nebo K8 (zkratka pro Kubernetes), můžete přeskočit dopředu a přečíst sekci TL; DR.

Co je Docker?

Docker je technologie kontejnerizace. Na stejném operačním systému můžete spouštět více navzájem izolovaných aplikací bez nutnosti virtualizace, ale se všemi výhodami virtualizovaného prostředí. Přemýšlejte o kontejnerech Docker jako o opravdu lehkých virtuálních počítačích pro Linux (také Windows, ale to není tak populární).

Docker má 3 hlavní komponenty, nejprve Docker engine, který běží na pozadí a spravuje běžící kontejnery a jejich zajišťování. Vystavuje REST API, které klient Dockeru spotřebovává, a to umožňuje uživatelům komunikovat s Dockerem a vytvářet nové kontejnery nebo spravovat běžící.

Docker je však jediná systémová aplikace. To znamená, že běží a spravuje kontejnery na jakémkoli systému, na kterém běží.  Obrovské aplikace s hromadou provozu a miliony požadavků, které na ně přicházejí z celého světa, potřebují více než jeden server. To je místo, kde Kubernetes přichází.

Co je Kubernetes?

Kubernetes využívá výhody kontejnerizačních technologií, jako je Docker, ke spuštění více replik vaší aplikace na serverech a datových centrech po celém světě.

Jednou z technologií kontejnerizace, kterou Kubernetes využívá, je Docker. Kubernetes se skládá z celé řady různých softwarů pro správu vašeho klastru. Poskytuje agenta pro správu kubeadm, který běží na několika vybraných hlavních uzlech (uzly jsou VPS nebo fyzické servery) a pak jsou tam pracovní uzly s nainstalovaným Dockerem s kubectl který mluví s Dockerovým motorem, aby automatizoval proces otáčení kontejnerů nahoru nebo jejich sundávání. Agenti kubectl běžící na všech pracovních uzlech přijímají objednávky z hlavního uzlu a dávají jim zpětnou vazbu o stavu aplikace běžící na jejich uzlu. To je zhruba způsob, jakým instalace K8 obvykle funguje.

Můžete také agregovat různé související Docker kontejnery do balíčků (nazývaných lusky). Můžete například dát dohromady kontejnery SQL databáze a Redis cache v podu, protože chcete, aby databáze a její mezipaměť koexistovaly.

Podobně můžete vystavit lusky ostatním luskům jako služby (také známé jako mikroslužby), takže můžete mít 50 lusků SQL / Redis vystavených jako služba datového úložiště na front-end vaší aplikace atd. Výhodou, kterou získáte, je to, že 50 lusků může běžet v několika datových centrech, ai když pár z nich spadne, ostatní uvolní.

Kubernetes je mnohem víc než technologie. Jedná se o způsob uvažování o spuštění vašeho softwaru v distribuovaném systému.

Kubernetes bez Dockeru

Jak je zřejmé z výše uvedeného, ​​K8 se do značné míry spoléhá na kontejnery. Docker je jen jednou z mnoha kontejnerizačních technologií, které jsou venku. Mezi další patří rkt od CoreOS, LXC od Canonical, vězení na FreeBSD a zóny v Illumosu a SmartOS. Kubernetes by mohl být potenciálně implementován nad jakoukoli z těchto technologií. Ve skutečnosti to s rkt od CoreOS funguje celkem dobře.

Vzhledem k popularitě Dockera však komunita a organizace šly nad rámec zajišťování toho, že Docker nabízí cokoli a vše, co Kubernetesovy specifikace vyžadují. Z tohoto důvodu jsou i projekty jako Docker pro MacOS a PC certifikovány společností Kubernetes.

Docker bez Kubernetes

Způsob, jakým má Kubernetes jednu z nejlepších podpor při používání Dockeru, sám Docker spoléhá na Kubernetes, aby nasadil kontejnery ve velkém měřítku. Docker má svůj vlastní systém pro správu a orchestraci kontejnerů známý jako Docker Swarm, který má být alternativou Kubernetes.

Navzdory tomu, že Docker Swarm je v Dockeru nativní technologií, Kubernetes je to, co lidé požadují, a současné tržní projekce naznačují, že K8 získá největší podíl na trhu. Docker vděčí za svůj úspěch do značné míry díky své symbióze s Kubernetes.

TL; DR

Stručně řečeno, Docker je technologie kontejnerizace, která má běžet na jednom počítači. Kubernetes je technologie pro správu, která spravuje velké množství kontejnerů napříč mnoha výpočetními uzly.

Docker je jednou z nejvhodnějších technologií, se kterými můžete sestavit svůj balíček K8. Začnete tím, že se ujistíte, že vaše aplikace běží jako ukotvitelný kontejner, a pak K8 zajistí, že se tento kontejner může škálovat po celém světě, pokud to v budoucnu bude třeba udělat.

Hry HD remasterované hry pro Linux, které nikdy dříve neměly vydání Linuxu
HD remasterované hry pro Linux, které nikdy dříve neměly vydání Linuxu
Mnoho vývojářů a vydavatelů her přichází s HD remasterem starých her, aby prodloužili životnost franšízy, prosím fanoušky, kteří požadují kompatibilit...
Hry Jak používat AutoKey k automatizaci linuxových her
Jak používat AutoKey k automatizaci linuxových her
AutoKey je nástroj pro automatizaci stolních počítačů pro systémy Linux a X11, programovaný v programech Python 3, GTK a Qt. Pomocí jeho funkcí skript...
Hry Jak zobrazit počítadlo FPS v linuxových hrách
Jak zobrazit počítadlo FPS v linuxových hrách
Hraní na Linuxu získalo velký tlak, když společnost Valve v roce 2012 oznámila podporu systému Linux pro klienta Steam a jejich hry. Od té doby se mno...