Kubernetes

Co je Kubernetes?

Co je Kubernetes?

Co je Kubernetes? A jaká je jeho architektura?

Kontejnerizace přerušila spojení mezi vývojáři softwaru a produkčním prostředím. Ne v tom smyslu, že vůbec nepotřebujete produkční systém, ale nemusíte se starat o specifičnost produkčního prostředí.

Aplikace jsou nyní dodávány se závislostmi, které potřebují, v lehkém kontejneru místo virtuálního počítače. To je skvělé! Neposkytuje však imunitu proti selhání systému, selhání sítě nebo selhání disku. Například pokud probíhá údržba datového centra, kde běží vaše servery, vaše aplikace přejde do režimu offline.

Při řešení těchto problémů přichází na scénu Kubernetes. Přijímá myšlenku kontejnerů a rozšiřuje ji tak, aby fungovala napříč několika výpočetními uzly (což může být virtuální počítač hostovaný v cloudu nebo servery typu bare metal). Myšlenkou je mít distribuovaný systém pro provozování kontejnerových aplikací.

Proč Kubernetes?

Proč byste vůbec měli mít distribuované prostředí?

Z několika důvodů je především vysoká dostupnost. Chcete, aby vaše webové stránky elektronického obchodování zůstaly online 24 hodin 7 dní v týdnu, nebo přijdete o podnikání, použijte k tomu Kubernetes. Druhým je škálovatelnost, kde chcete škálovat 'out'. Škálování zde zahrnuje přidání více výpočetních uzlů, aby vaše rostoucí aplikace měla větší prostor pro nohy.

Design a architektura

Stejně jako jakýkoli distribuovaný systém má klastr Kubernetes hlavní uzel a pak celou řadu pracovních uzlů, kde by vaše aplikace skutečně běžely. Hlavní je zodpovědný za plánování úkolů, správu úloh a bezpečné přidávání nových uzlů do klastru.

Nyní samozřejmě může hlavní uzel selhat a vzít s sebou celý klastr, takže Kubernetes vám ve skutečnosti umožňuje mít více hlavních uzlů kvůli redundanci.

Pohled z ptačí perspektivy na typické nasazení Kubernetes

Kubernetes Mistře

Master Kubernetes je to, s čím tým DevOps interaguje a používá jej pro zřizování nových uzlů, nasazení nových aplikací a monitorování a správu prostředků. Nejzákladnějším úkolem hlavního uzlu je: plán pracovní zátěž efektivně mezi všemi pracovními uzly s cílem maximalizovat využití zdrojů, zlepšit výkon a dodržovat různé zásady zvolené týmem DevOps pro jejich konkrétní pracovní zátěž.

Další důležitou součástí je atd což je démon, který sleduje pracovní uzly a udržuje databázi ukládající stav celého klastru. Jedná se o úložiště dat typu klíč-hodnota, které lze také spustit v distribuovaném prostředí napříč několika hlavními uzly. Obsah etcd poskytuje všechna relevantní data o celém klastru. Pracovní uzel by se čas od času podíval na obsah etcd, aby určil, jak by se měl chovat.

Ovladač je subjekt, který by přijímal pokyny ze serveru API (kterému se budeme věnovat později) a provedl nezbytné akce, jako je vytváření, mazání a aktualizace aplikací a balíčků.

The Server API zpřístupňuje Kubernetes API, které používá užitečné zatížení JSON přes HTTPS, ke komunikaci s uživatelským rozhraním, které by vývojářské týmy nebo pracovníci DevOps nakonec skončili při interakci. Webové uživatelské rozhraní i rozhraní příkazového řádku spotřebovávají toto rozhraní API pro interakci s klastrem Kubernetes.

Server API je také zodpovědný za komunikaci mezi pracovními uzly a různými komponenty hlavního uzlu, jako je atd.

Hlavní uzel není nikdy vystaven koncovému uživateli, protože by riskoval zabezpečení celého klastru.

Uzly Kubernetes

Stroj (fyzický nebo virtuální) by potřeboval několik důležitých komponent, které po správné instalaci a správném nastavení mohou tento server proměnit na člena vašeho klastru Kubernetes.

První věc, kterou budete potřebovat, je runtime kontejneru, jako je Docker, nainstalovaný a běžící na něm. Bude samozřejmě zodpovědný za roztočení a správu kontejnerů.

Spolu s runtime Docker potřebujeme také Kubelet démon. Komunikuje s hlavními uzly prostřednictvím serveru API a dotazuje se na etcd a poskytuje zpět informace o stavu a použití podů, které jsou spuštěny na tomto uzlu.

Kontejnery jsou však samy o sobě docela omezené, takže Kubernetes má vyšší abstrakci postavenou na kolekci kontejnerů, známou jako Pods.

Proč přijít s lusky?

Docker má zásadu spuštění jedné aplikace na kontejner. Často popisován jako „Jeden proces na kontejner“ politika. To znamená, že pokud potřebujete web WordPress, doporučujeme vám mít dva kontejnery, jeden pro spuštění databáze a druhý pro spuštění webového serveru. Sdružování takových souvisejících komponent aplikace do modulu zajišťuje, že kdykoli budete škálovat, dva vzájemně závislé kontejnery vždy koexistují ve stejném uzlu, a tak spolu rychle a snadno komunikují.

Pods jsou základní jednotkou nasazení v Kubernetes. Při škálování přidáte do clusteru další pody. Každému modulu je přidělena jeho vlastní jedinečná adresa IP v interní síti klastru.

Zpět do uzlu Kubernetes

Nyní může uzel provozovat více podů a takových uzlů může být mnoho. To je v pořádku, dokud nepřemýšlíte o pokusu o komunikaci s vnějším světem. Pokud máte jednoduchou webovou službu, jak byste namířili svůj název domény na tuto kolekci lusků s mnoha IP adresami?

Nemůžete a nemusíte! Kube-proxy je poslední část skládačky, která operátorům umožňuje vystavit určité lusky na internetu. Například vaše front-end může být veřejně přístupný a kube-proxy by distribuoval provoz mezi všechny různé pody, které jsou zodpovědné za hostování front-endu. Vaše databáze však nemusí být zveřejněna a kube-proxy by umožňoval pouze interní komunikaci pro takové úlohy související s back-endem.

Potřebujete tohle všechno??

Pokud právě začínáte jako fanda nebo student, bylo by použití Kubernetes pro jednoduchou aplikaci ve skutečnosti neúčinné. Celá rigmarole by spotřebovala více zdrojů než vaše skutečná aplikace a přidala by větší zmatek pro jednotlivce.

Pokud se však chystáte pracovat s velkým týmem a nasadit své aplikace pro seriózní komerční využití, stojí za to Kubernetes. Můžete zabránit tomu, aby se věci staly chaotickými. Vytvořte prostor pro údržbu bez jakýchkoli prostojů. Nastavit šikovné podmínky testování A / B a postupně se škálovat, aniž byste příliš utráceli za infrastrukturu předem.

Top 5 ergonomických produktů pro počítačové myši pro Linux
Způsobuje dlouhodobé používání počítače bolest zápěstí nebo prstů? Trpíte ztuhlými klouby a neustále si musíte třást ruce? Cítíte pálivou bolest pokaž...
Jak změnit nastavení myši a touchpadu pomocí Xinput v Linuxu
Většina linuxových distribucí je ve výchozím nastavení dodávána s knihovnou „libinput“ pro zpracování vstupních událostí v systému. Může zpracovávat v...
Přemapujte tlačítka myši odlišně pro jiný software pomocí ovládání myší X-Mouse
Možná potřebujete nástroj, který by mohl změnit ovládání myši u každé aplikace, kterou používáte. V takovém případě můžete vyzkoušet aplikaci s názvem...