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

Proč bych se měl zajímat o Kubernetes, Docker a Container Orchestration?

Člověk v práci se mnou chatoval, komentoval mé nedávné blogové příspěvky na Raspberry Pi Kubernetes Clusters, které se budují, a přemýšlel:„Proč bych se měl zajímat o Kubernetes nebo Docker nebo něco z toho?“

Skvělá otázka a sám na to přicházím. Existuje spousta zdrojů, ale žádný nemluví mým jazykem, takže zde jsou mé myšlenky a jak to vysvětlím.

"Ahoj, mám tuhle skvělou novou blogovou aplikaci!"

"Skvělé, dej mi!"

"Jistě, nejprve se ujistěte, že máte tuto verzi Windows/Linux, tuto verzi .NET/Python/Node a tyto předpoklady."

"Počkej, zavolám ti příští týden, až se to vyřídí."

Takto byl software postaven léta. Nyní jej nasadíme.

"Zde je zazipovaný kód/dll/aplikace."

"Nechte FTP/SFTP/Přetáhněte toto z jednoho okna Průzkumníka do druhého."

"Je tato verze souboru nastavena na toto?"

"Počkej, co?"

"Ujistěte se, že system/boss/dll/nounjs je verze 4.5.4.1, opravili to."

"Dobře, Immo šup* do výroby."

Opět jsme tam byli všichni. Píše se rok 2018 a dělá to víc lidí, než si dokážete připustit.

Vstupte do virtuálních strojů! Mnohem lepší, že? Zde je USB klíč se souborem, který je VŠECHNO, co potřebujete. Zpracováno.

"Na to zapomeň, použij tohle. Je to lepší než počítač, je to virtuální stroj. Ale uvědom si, že neví, že je virtuální, takže respektuj lež."

"OK, pošlete mi to e-mailem."

"No, je to 32 koncertů. Necháme to."

Vaše aplikace má pouze 100 megů a tento virtuální počítač má desítky koncertů. Proč 150librový člověk potřebuje 6000lb Hummer? Asi izolace.

"Aplikace je stále složitější, ale je to skvělé. Nyní jsou k dispozici čtyři virtuální počítače. Jeden pro DB, jeden pro Redis a jeden frontend a jeden dostane nákupní košík. Jsou to mikroslužby!"

"Miluji to."

"Tady je 2TB disk."

Hezké, že to rozchodíme, ale ne tak hezké, abychom se nafoukli. Nyní musíme na všech těchto věcech spustit apt upgrade/windows update a udržovat je. Proč řídit Hummer, když mohu získat Lyft?

"Dobře, všechny je běžím na tomhle mohutném stroji pod mým stolem."

"Super, přesouváme se do cloudu."

"Povzdech. Potřebuji aktualizovat všechny tyto připojovací řetězce a začít nahrávat virtuální počítače."

"Bude to skvělé. Je to jako stroj pod vaším stolem, až na to, že váš stůl je v cloudu."

"Co je to cloud?"

"Je to serverovna, kterou nevidíte. V podstatě jsou to počítače pod vaším stolem. Ale neviditelné."

Většina infrastruktury virtuálních počítačů je dost nedbalá. Jsou to pevně zakódované IP adresy, jsou to špatně pojmenované virtuální počítače žijící ve stejných podsítích, pak je přesuneme do cloudu (zvedněte a posuňte!), ale pak jsou stále chaotické, ale jsou v Cloud™, že?

"Víte, všechny tyto virtuální počítače jsou těžké. Musím udržovat a přesouvat spoustu věcí, které NENÍ aplikací. Kontejnery jsou cesta. Stačí definovat základní požadavek aplikace a sdílet vše ostatní."

"Slyšel jsem o tom. Můžu napsat "docker spustit hello-world" a na jakémkoli počítači to načte obrázek hello world (založený na Ubuntu) z centrálního hubu a spustí ho většinou izolovaným způsobem. Zaručeno pracovat a běhat, i když čas plyne.“

"Pěkné, protože stále více částí naší aplikace je v .NET Core na Linuxu, ale je tu také nějaký Python a uzel."

"Ano a vše poběží, protože předpoklady jsou jasně uvedeny v kontejneru...a požadavky jsou ve skutečnosti odkazy na jiné obrázky kontejneru."

"Jsou to kontejnery úplně dole."

Nyní lze volat DB, Redis, frontend a nákupní košík v několika jednoduchých textových souborech. Místo toho, aby váš hostitelský OS (hlavní počítač... kov) načítal spoustu hostujících OS (doslova kopie!) a poté načítal všechny aplikace a předpoklady, budete sdílet OS, a když je to vhodné, i binární soubory a knihovny. .

"Dobrá, teď v Dockeru běží spousta kontejnerů, ale někdy spadnou nebo se zastaví."

"Spustit je znovu?"

"Je to více než to, že někdy potřebujeme mít 3 kontejnery nákupního košíku a jindy potřebujeme 2 nebo více kontejnerů DB. Navíc se jejich IP adresy někdy mění."

"Potřebujeme tedy něco, co je udrží v chodu, škáluje je nebo je automaticky škáluje, a také správu sítí a pojmenování/dns."

Zadejte orchestrátor kontejneru. Je tu Docker Swarm, Mesos/Marathon, Azure Service Fabric a další, ale pro tento příspěvek použijeme Kubernetes.

"Takže Kubernetes provozuje mé kontejnery, udržuje je v chodu a pomáhá spravovat síť?"

"Ano i ne. Části Kubernetes - nebo k8, jak říkají super lidé jako já, kteří to používají téměř 3 hodiny - jsou součástí hlavních komponent, jako je etcd pro ukládání klíčových hodnot a plánovač kube pro výběr na jakém uzlu spustit „pod“ (pod je chladnější než kontejner, ale někdy je pod více než jeden kontejner. Přesto velmi cool.)

"Potřebuji vytvořit glosář."

"Zatraceně zubat, budeš."

Kubernetes má v podstatě všechno připojitelné. Nelíbí se vám jejich síťové nastavení? Existuje doslova více než tucet možností. Chcete lepší tabulky a grafy? Celý svět možností.

Stejně jako jeden Dockerfile může vysvětlit deklarovat, co je potřeba ke spuštění aplikace, soubor Kubernetes YAML popisuje nejen kontejnery, ale také potřebné porty, počet replik každého z nich (myslím, že webová farma), názvy, proměnné prostředí a další. Zde je soubor, který ukazuje frontend, back-end a load balancer. Všechno je tam, připojovací řetězce se stávají interními DNS vyhledáváními, každá služba má load balancer (pokud chcete) a můžete škálovat ručně nebo automaticky.

"Dobře, tak proč by mě to mělo zajímat?"

"Několik důvodů. K instalaci naší aplikace jsem v minulosti potřeboval poskytnout dokument Word a víkend. Nyní napíšete kubectl apply theapp.yaml a běží za méně než minutu."

"Pořád fakturuji za víkend."

Jednoduše řečeno, jsme na začátku nové fáze DevOps. Takový, který je programový, elastický a deklarativní. Je konzistentní, přehledný a modulární.

Doporučuji, abyste se podívali na Julii Evansovou „Důvody Kubernetes je cool“ a také si přečetli, jak vytvořit cluster Kubernetes (a VMS pro správu jsou zdarma) v Azure.

* Snažím se, aby bylo ticho. Nechceme Es Es Eaytch do strojů! Utíkáme! Vyslovuje se někde mezi šup a šup. Ujistěte se, že když to řeknete, hodíte do sebe trochu petit jeté.

* Obrázek použitý pod CC

Sponzor: Uvolněte rychlejší Python Zvyšte výkon svých aplikací na budoucích platformách Intel® s distribucí Intel® pro Python. K dispozici pro Windows, Linux a macOS. Získejte Intel® Distribution pro Python* nyní!


Docker
  1. Nainstalujte Docker a WordPress na Ubuntu

  2. Proč Deis a co to je?

  3. Jak získat informace o kontejneru v Dockeru

  1. Jak vytvořit Docker Image z kontejneru a Dockerfile

  2. Jak zálohovat a obnovovat kontejnery Docker

  3. Jak pozastavit a obnovit kontejnery Docker

  1. Jak na to:Co je Git a Github? Jak to mám používat a proč by mě to mělo zajímat?

  2. Kdy a proč používat Docker

  3. Jak nainstalovat Docker a nasadit LAMP Stack