Kurz Kubernetes pro začátečníky: základy, funkce, Architecture

Než začneme s tímto návodem Kubernetes, pojďme se naučit:

Co je to Kubernetes?

Kubernetes je systém pro správu kontejnerů vyvinutý na platformě Google. Kubernetes pomáhá spravovat kontejnerizované aplikace v různých typech fyzických, virtuálních a cloudových prostředí. Google Kubernetes je vysoce flexibilní kontejnerový nástroj pro konzistentní poskytování komplexních aplikací běžících na clusterech stovek až tisíců jednotlivých serverů.

Proč potřebujete kontejnery?

Dnešní uživatel internetu nikdy neakceptuje prostoje. Vývojáři proto musí najít způsob, jak provádět údržbu a aktualizaci bez přerušení svých služeb.

Kontejner je proto izolované prostředí. Obsahuje vše potřebné pro běh aplikace. Umožňuje vývojářům snadno upravovat a nasazovat aplikace. Kontejnerizace se navíc stala preferovanou metodou pro balení, nasazení a aktualizaci webových aplikací.

Jaké úkoly plní Kubernetes?

Kubernetes je linuxové jádro, které se používá pro distribuované systémy. Pomáhá vám být abstraktním základním hardwarem uzlů (serverů) a nabízí konzistentní rozhraní pro aplikace, které spotřebovávají sdílený fond zdrojů.

Proč používat Kubernetes?

Kubernetes vám pomůže řídit alokaci zdrojů a správu provozu pro cloudové aplikace a mikroslužby. Pomáhá také zjednodušit různé aspekty infrastruktur orientovaných na služby. Kubernetes vám umožňuje zajistit, kde a kdy běží kontejnerové aplikace, a pomůže vám najít zdroje a nástroje, se kterými chcete pracovat.

Vlastnosti Kubernetes

Zde jsou základní funkce Kubernetes:

  • Automatizované plánování
  • Samoléčebné schopnosti
  • Automatizované zavádění a vrácení zpět
  • Horizontální škálování a vyvažování zátěže
  • Nabízí konzistenci prostředí pro vývoj, testování a produkci
  • Infrastruktura je volně propojena s každou komponentou, může fungovat jako samostatná jednotka
  • Poskytuje vyšší hustotu využití zdrojů
  • Nabízí podnikové funkce
  • Správa zaměřená na aplikace
  • Automaticky škálovatelná infrastruktura
  • Můžete vytvořit předvídatelnou infrastrukturu

Základy Kubernetes

Nyní v tomto tutoriálu Kubernetes se naučíme některé důležité základy Kubernetes:

  • Cluster

    Je to kolekce hostitelů (serverů), která vám pomáhá agregovat jejich dostupné zdroje. To zahrnuje RAM, CPU, RAM, disk a jejich zařízení do použitelného fondu.

  • Mistr

    Hlavní je kolekce komponent, které tvoří ovládací panel Kubernetes. Tyto komponenty se používají pro všechna klastrová rozhodnutí. Zahrnuje plánování a reakce na události clusteru.

  • Uzel

    Jedná se o jediný hostitel, který je schopen běžet na fyzickém resp virtuální stroj. Uzel by měl provozovat kube-proxy, minikube a kubelet, které jsou považovány za součást clusteru.

  • Namespace

    Je to logický cluster nebo prostředí. Je to široce používaná metoda, která se používá pro stanovení rozsahu přístupu nebo rozdělení clusteru.

Kubernetes Architecture

Níže je podrobný diagram architektury Kubernetes:

Kubernetes Architecture Diagram
Kubernetes Architecture Diagram

Hlavní uzel

Hlavní uzel je první a nejdůležitější komponentou, která je zodpovědná za správu clusteru Kubernetes. Je vstupním bodem pro všechny druhy administrativních úkolů. V clusteru může být více než jeden hlavní uzel pro kontrolu odolnosti proti chybám.

Hlavní uzel má různé komponenty, jako je API Server, Správce kontroléru, Plánovač a ETCD. Ukažte je všechny.

Server API: Server API funguje jako vstupní bod pro všechny příkazy REST používané pro řízení clusteru.

Plánovač

Plánovač naplánuje úlohy na podřízený uzel. Ukládá informace o využití zdrojů pro každý podřízený uzel. Zodpovídá za rozložení pracovní zátěže.

Pomáhá vám také sledovat, jak je pracovní zátěž využívána na uzlech clusteru. Pomáhá vám umístit zátěž na zdroje, které jsou k dispozici, a přijmout zátěž.

Atd.

komponenty etcd ukládají podrobnosti o konfiguraci a hodnoty wright. Komunikuje s většinou komponent, aby mohl přijímat příkazy a pracovat. Také spravuje síťová pravidla a aktivitu přesměrování portů.

Uzly Worker/Slave

Pracovní uzly jsou další základní komponentou, která obsahuje všechny požadované služby pro správu sítě mezi kontejnery, komunikaci s hlavním uzlem, což vám umožňuje přidělovat zdroje naplánovaným kontejnerům.

  • Kubelet: získává konfiguraci Podu ze serveru API a zajišťuje, že popsané kontejnery jsou v provozu.
  • Docker Container: přístavní dělník kontejner běží na každém z pracovních uzlů, které spouštějí nakonfigurované pody
  • Kube-proxy: Kube-proxy funguje jako nástroj pro vyrovnávání zatížení a síťový proxy pro provádění služeb na jediném pracovním uzlu
  • Pody: Pod je kombinace jednoho nebo více kontejnerů, které logicky běží společně na uzlech

Další klíčové terminologie

Řadiče replikace

Řadič replikace je objekt, který definuje šablonu pod. Také ovládá parametry pro horizontální měřítko identických replik Podu zvýšením nebo snížením počtu běžících kopií.

Replikační sady

Replikační sady jsou interakcí s návrhem replikačního řadiče s flexibilitou v tom, jak řadič rozpozná moduly, které má spravovat. Nahrazuje řadiče replikace kvůli jejich vyšší schopnosti výběru replikace.

Nasazení

Nasazení je běžná pracovní zátěž, kterou lze přímo vytvářet a spravovat. Nasazení používá replikační sadu jako stavební blok, který přidává funkci správy životního cyklu.

Stavové sady

Jedná se o specializovaný ovládací prvek pod, který nabízí uspořádání a jedinečnost. Používá se hlavně pro jemné ovládání, které potřebujete zejména s ohledem na pořadí nasazení, stabilní síť a trvalá data.

Sady démonů

Sady démonů jsou další specializovanou formou ovladače pod, který spouští kopii pod na každém uzlu v clusteru. Tento typ ovladače podů je efektivní metodou pro nasazení podů, která umožňuje provádět údržbu a nabízí služby pro samotné uzly.

Kubernetes vs. Docker Swarm

Zde jsou důležité rozdíly mezi Kubernetes vs Docker.

Parametr Docker roj Kubernetes
Škálování Žádné automatické škálování Automatické škálování
Vyrovnávání zatížení Provádí automatické vyvažování zátěže Ručně nakonfigurujte nastavení vyrovnávání zátěže
Sdílení úložného prostoru Sdílí objemy úložiště s jakýmkoli jiným kontejnerem Sdílí objemy úložiště mezi více kontejnery uvnitř stejného podu
Použití nástroje pro přihlašování a monitorování Použijte 3rd party nástroj jako ELK Poskytněte vestavěný nástroj pro protokolování a monitorování.
Instalace Snadné & rychlé Složité a časově náročné
GUI GUI není k dispozici GUI je k dispozici
Škálovatelnost Zvětšení je rychlejší než K8S, ale síla clusteru není tak robustní Rozšiřování je pomalé ve srovnání s Swarm, ale zaručuje silnější stav clusteru Vyrovnávání zátěže vyžaduje manuální konfiguraci služby
Vyrovnávání zatížení Poskytuje vestavěnou techniku ​​vyvažování zátěže Plánování procesů pro údržbu služeb při aktualizaci
Aktualizace a vrácení zpět Záznamy a monitorování objemů dat Progresivní aktualizace a sledování stavu služby. Sdíleno pouze s kontejnery ve stejném podu Vestavěné protokolovací a monitorovací nástroje.

Výhody Kubernetes

  • Snadná organizace obsluhy pomocí podů
  • Je vyvinut společností Google, která přináší roky cenných zkušeností v oboru
  • Největší komunita mezi nástroji pro orchestraci kontejnerů
  • Nabízí různé možnosti úložiště, včetně místních, SAN a veřejných cloudů
  • Dodržuje principy neměnné infrastruktury
  • Kubernetes může provozovat lokálně holý kov, OpenStack, veřejné cloudy Google, Azure, AWS, Etc.
  • Pomáhá vám vyhnout se problémům se zámkem dodavatele, protože může používat jakákoli rozhraní API nebo služby specifické pro dodavatele kromě případů, kdy Kubernetes poskytuje abstrakci, např. nástroj pro vyrovnávání zatížení a úložiště.
  • Kontejnerizace pomocí kubernetes umožňuje softwaru balíčků plnit tyto cíle. Umožní to aplikace, které je třeba uvolnit a aktualizovat bez jakýchkoli prostojů.
  • Kubernetes vám umožňuje zajistit, aby tyto kontejnerizované aplikace běžely, kde a kdy chcete, a pomůže vám najít zdroje a nástroje, se kterými chcete pracovat.

Nevýhody Kubernetes

  • Řídicí panel Kubenetes není tak užitečný, jak by měl být
  • Kubernetes je trochu komplikovaný a zbytečný v prostředích, kde se veškerý vývoj provádí lokálně.
  • Zabezpečení není příliš efektivní.

Shrnutí

  • Kontejner pomáhá organizaci provádět údržbu a aktualizaci bez přerušení služeb
  • Kubernetes je příkladem systému pro správu kontejnerů vyvinutého na platformě Google.
  • Největší výhodou použití Kubernetes je, že může spouštět místní OpenStack, veřejné cloudy Google, Azure, AWS atd.
  • Kubernetes nabízí funkce automatického plánování a samoléčení.
  • Cluster, master, node a namespace jsou důležitými základy kubernetes
  • Hlavní uzel a pracovní uzel jsou důležité součásti architektury Kubernetes.
  • Řadiče replikace, sady replikace, nasazení, stavové sady, sady démonů jsou další důležité pojmy používané v Kubernetes.
  • Docker swarm neumožňuje automatické škálování, zatímco Kubernetes umožňuje automatické škálování.
  • Největší nevýhodou Kubenetes je, že je to řídicí panel nepříliš užitečný a efektivní