Začínáme s Kubernetes: Úvod pro začátečníky

Kubernetes je nejoblíbenější open-source software, který automatizuje procesy vývoje kontejnerů.

Podle výroční studie Cloud Native Computing Foundation (CNCF) 96 % organizací buď K8 používá, nebo o jejich použití uvažuje. Pokud budete pozorně sledovat, 5,8 milionu vývojářů po celém světě používá Kubernetes, a to je 31 % backendových vývojářů po celém světě.

Upřednostňuje se pro svou schopnost využít technologii prostřednictvím zlepšené škálovatelnosti, dostupnosti a krátké doby nasazení. Zatímco mnoho vývojářů nastartuje svou trajektorii kontejnerů pomocí Dockeru (komplexního nástroje, který při interakci s kontejnery spoléhá na rozhraní CLI, jeden po druhém), K8s vám poskytuje abstrakce na vysoké úrovni, abyste mohli definovat aplikace a jejich infrastrukturu prostřednictvím schémat, která můžete spolupracovat.

Pokud jste v Kubernetes noví, tento článek je speciálně přizpůsoben, aby vám pomohl s úvodními kousky a podělil se o postřehy, které vám pomohou začít. Dozvíte se, jak vám K8s může pomoci jako vývojáři při přeplňování vašich digitálních produktů.

Co je Kubernetes a proč jej potřebujete?

Kubernetes je open-source koordinační engine (framework) používaný při automatizaci nasazení, škálování a správě kontejnerizovaných aplikací; to zahrnuje zvládnutí předvídatelnosti a dostupnosti.

Jednoduše řečeno, představme si aplikaci, kterou máte kontejnerizovanou. Chcete-li sloužit uživatelům vaší aplikace, musíte spustit několik kontejnerů. Starosti nastupují, když potřebujete tyto kontejnery spravovat. Kontejnery nemusí být nutně na stejném stroji, takže je to složitější. Jaké je tedy řešení tohoto problému?

Kubernetes vám přijde na pomoc tím, že vám poskytne efektivní způsob, jak bezproblémově zvládnout všechny tyto procesy. I když můžete K8 přirovnat ke kontejnerovému enginu, jako je Docker, je to kontejnerový orchestrátor. Jako začínající vývojář se nemusíte starat o to, jak K8s dělá orchestraci. Pro vaši aplikaci pravděpodobně nenastavíte cluster K8s; více o tom již brzy.

Budete však komunikovat s clustery, které váš tým infrastruktury nastavil. Rozhodující je seznámení se s předměty, se kterými budete interagovat. Než to však uděláte, budete potřebovat znalosti o její architektuře na vysoké úrovni, abyste pochopili, co se pod ní děje.

Vlastnosti Kubernetes

Kubernetes má několik funkcí se širokým rozsahem možností pro provoz kontejnerů a další související infrastruktury. Zde je seznam:

  • Automatizované zavádění, škálování a vrácení zpět – K8s robotizuje vytváření vámi určeného počtu replik, jejich distribuci na vhodný (nejvhodnější) hardware a přeplánování kontejnerů, pokud je uzel v odstávce. Své repliky můžete okamžitě škálovat na základě poptávky nebo měnících se potřeb, jako je využití procesoru.
  • Zjišťování služeb, stabilizace zatížení a vstup do sítě – Kubernetes nabízí jedinečné síťové řešení, včetně zjišťování interních služeb a odhalování veřejných kontejnerů.
  • Aplikace se stavem a bez něj – V počátcích se K8 zaměřovaly především na bezstavové kontejnery. Vzhledem k tomu, že se technologie vyvíjí na mnoha frontách, nyní obsahuje vestavěné objekty představující stavové aplikace. Schváleno, na Kubernetes může běžet jakákoli aplikace.
  • Regulace úložiště – Ať už jste na lokálním souborovém systému, síťovém sdílení nebo v cloudu, Kubernetes poskytuje (abstraktuje) trvalé úložiště aplikacím běžícím na kontejnerech. Abstrakce vám umožňuje definovat požadavky na úložiště bez ohledu na základní infrastrukturu. I když to přesahuje rámec tohoto článku, funguje na základě principů, jako je trvalý svazek (PV), nárokování trvalého svazku (PVC), třídy úložiště a zásuvné moduly svazku.
  • Deklarativní stav – K8s používá soubory YAML (Yet Ain’t Markup Language), nazývané objektové manifesty, k určení požadovaných stavů pro váš cluster. Manifesty určují, jak bude váš cluster vypadat, mimo jiné včetně požadovaných instancí aplikací a síťových pravidel a dalších konfigurací. Když použijete manifesty, K8s automaticky zpracuje všechny přechody stavů – k tomu byste nemuseli psát skripty.
  • Více pracovních prostředí – nejste omezeni na používání Kubernetes v cloudu nebo na vaší vývojářské pracovní stanici. Téměř každá distribuce je dostupná pro váš konkrétní případ použití. Podívejte se na hlavní poskytovatele cloudových technologií, jako jsou Amazon Web Services, Google Cloud a Microsoft Azure. Uvědomíte si, že všechny nabízejí spravované služby Kubernetes, zatímco distribuce jednotlivých uzlů jako Minikube a K3s jsou k dispozici pro místní použití.
  • Super Extensivity – K8s je sbírka mnoha funkcí. Jako by to nestačilo, můžete jeho schopnosti urychlit pomocí rozšíření. Můžete vytvářet vlastní typy objektů, operátory a řadiče, abyste zefektivnili své pracovní zatížení.
  •   Konkurenční výzkum je s Semrush jednodušší, než si myslíte

    Architektura Kubernetes

    Ve svém jádru architektura Kubernetes obsahuje jeden hlavní uzel a dva pracovní uzly. Hlavní uzel volá záběry v clusteru, zatímco pracovní (podřízené) uzly spouštějí aplikace podle rozhodnutí hlavního uzlu.

    Zdroj: kubernetes.io

    Zde je další rozpis.

    Hlavní uzel(y)

    Hlavní uzel diktuje stavy clusteru a rozhoduje o akcích každého konkrétního uzlu. K nastavení hlavního uzlu je zapotřebí několik procesů.

  • API server
    Zde je založena veškerá komunikace clusteru. Je to brána, která umožňuje všem komponentám clusteru vyměňovat si informace. Odhaluje Kubernetes API. Hrají zde dvě hlavní role. První je vstupní bod, který uživatelům umožňuje interakci s clusterem. Například odesílání požadavků při použití Kubectl. Za druhé, gatekeeping pro ověřování a ověřování požadavků. V tomto případě mohou požadavky provádět pouze určití uživatelé.
  • Plánovač
    Plánovač přiřadí aplikace nebo objekty pracovního zatížení Kubernetes pracovnímu uzlu. Zde plánovač umístí moduly na uzly na základě požadavků na zdroje. A když mluvíte o podech, je to jen malá jednotka nasazení v Kubernetes.
  • Správce kontroléru
    Tato jednotka udržuje clustery jako selhání uzlů, aby udržela správný počet modulů. Detekuje změny stavu clusteru, jako je odumírání modulů, a pokouší se obnovit modul do původního stavu. Pokud například modul náhodně zemře, správce kontroléru požádá plánovač, aby potvrdil, který uzel spustí nový modul jako náhradu, a kubelet roztočí nový modul.
  • atd
    Říká se mu také klastrový mozek. Jednotka je úložištěm klíčových hodnot pro konfiguraci clusteru. To znamená, že zde se provádějí všechny změny clusteru. Cluster můžete zálohovat uložením distribuovaného úložiště hodnoty klíče. Upozorňujeme však, že zde jsou uložena pouze data o stavu clusteru, nikoli data aplikací. Tato jednotka je specificky určena pro uchovávání informací o stavu clusteru a jejich využití pro předchozí procesy, které jim udělují povědomí o clusteru.
  • Slave uzel(y)

    Každý podřízený uzel je nainstalován se třemi uzlovými procesy, které umožňují K8 s ním komunikovat a samostatně roztáčet moduly v každém uzlu. Požadované procesy jsou:

  • Kubelet
    Toto je primární služba Kubernetes, která spouští spouštění pro vrstvu spouštění kontejnerů. Pokud tuto jednotku vyjmete, Kubernetes není nic jiného než REST API podporované úložištěm klíč-hodnota. Ve výchozím nastavení K8s spouští aplikaci kontejneru. Kontejnery jsou vždy izolovány od sebe navzájem a od základního hostitelského systému. To se ukázalo jako analytické pro oddělení správy jednotlivých aplikací od sebe navzájem a od fyzické nebo virtuální infrastruktury.
      Jak vytvářet zvukové knihy na Linuxu pomocí M4Baker

    Zatímco řízení přístupu API může pody odmítnout nebo přidat další omezení, kubelet je konečným schvalovatelem toho, jaké pody běží na konkrétním uzlu, nikoli plánovače nebo démonické sady. Abych to shrnul, kubelety interagují s uzlem a kontejnerem. Také bere konfigurační soubory a roztáčí moduly pomocí kontejnerového běhového prostředí.

  • Doba běhu kontejneru
    Tato sekce provozuje kontejnery. Můžete například použít Docker, rkt nebo conatinered trochu více o tom, jak fungují kontejnery.
  • Kube-proxy
    Tato jednotka poskytuje abstrakční vrstvu pro skupiny podů uzlů podle společných zásad, jako je případ vyvažování zátěže. Všechny uzly používají Kube-proxy k poskytování virtuální IP adresy pro klienty přistupující k dynamickým podům. Tato struktura je řešením pro vyrovnávání zátěže při zachování nízkého výkonu.
  • Jak funguje kontejnerizace

    Kontejnerizace znamená virtualizaci všech potřebných částí softwarové aplikace do jednoho celku. Pod kontejnery je kolekce knihoven, binárních souborů a všech potřebných konfigurací aplikací. Nezahrnují však prostředky jádra ani virtualizovaný hardware.

    Nakonec spusťte „navrchu“ běhové moduly kontejneru, které nastiňují zdroje. Vzhledem k tomu, že kontejnery obsahují pouze základní komponenty a závislosti aplikací, jsou na rozdíl od jiných virtuálních strojů lehké, a tedy rychlejší.

    Čtěte také: Kontejnery vs. virtuální stroje: Vysvětlení rozdílů

    Jak nainstalovat a nastavit Kubernetes

    Strávil jsem tolik času teorií; kaskádová sekce bude taktická a bude zahrnovat určité praktické zkušenosti s kontejnery. Tento tutoriál se zabývá zejména instalací v operačním systému Windows.

    Existuje několik způsobů, jak provést instalace při použití systému Windows; můžete se rozhodnout pro příkazový řádek nebo grafické uživatelské rozhraní. Měli byste se však ujistit, že splňujete následující požadované specifikace.

    Váš hardware potřebuje hlavní uzel s alespoň 2 GB paměti a 700 MB pro pracovní uzel. Pro softwarové požadavky Hype-v, Docker pro stolní počítače, jedinečná adresa Mac a jedinečné UUID produktu pro každý uzel. Zde je postup krok za krokem.

    Instalace a nastavení Hyper-V

    Hyper-V je výchozí virtualizační software Windows. V podstatě je to VirtalBox na steroidech. Umožňuje vám spravovat virtuální stroje buď pomocí rozhraní Microsoft GUI nebo příkazového řádku. Chcete-li povolit Hyper-V, postupujte takto.

  • Otevřete Ovládací panely.
  • Klikněte na programy z levého panelu.
  • Na stránce programu a funkcí klikněte na `Zapnout nebo vypnout funkce systému Windows.`
  • Vyberte funkce Hyper-V a Hypervisor pro Windows.
  • Dále v tomto kroku vyberte OK; váš počítač by se měl restartovat, aby se aktivovala nová nastavení.
  • Občas se může váš počítač několikrát restartovat, aby bylo zajištěno, že je vše správně nakonfigurováno. Úspěšnost instalace můžete ověřit zadáním následujícího příkazu v prostředí Power Shell.

    Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V

    Potvrďte, že je vaše obrazovka naplněna stavem „povoleno“.

    Instalace Dockeru

    Jak jste se dozvěděli, K8s je nástroj pro orchestraci kontejnerů postavený na kontejnerech; v tomto případě je Docker dobrou volbou. K8s komunikuje s Dockerem a spravuje vše na podnikové úrovni. Rozhýbejte se stažením Dockeru pro Windows. Pokud se ptáte, proč je nutné používat Docker Desktop, je preferován pro zjednodušení vývoje, dopravy a běhu dockerizovaných (kontejnerovaných) aplikací.

    Je to také nejrychlejší způsob, jak vytvářet aplikace Docker ve Windows pomocí Hyper-V a sítí. Po úspěšné instalaci je Docker vždy přístupný na jakémkoli terminálu, dokud je spuštěn. Podrobný návod k instalaci najdete v oficiální dokumentaci Dockeru. Pokud po instalaci narazíte na nějaké problémy, jako jsou skryté ikony, problém lze vyřešit restartováním počítače.

      10 osvědčených postupů pro Excel při vizualizaci dat Storytelling

    Instalace Kubernetes

    Docker GUI umožňuje konfigurovat nastavení, instalovat a povolit Kubernetes. Chcete-li nainstalovat K8, postupujte takto.

  • Klepněte pravým tlačítkem myši na ikonu Docker a vyberte vlastnosti.
  • Po kliknutí na ,Vlastnosti` vyberte z rozbalovací nabídky `Nastavení`.
  • Na levém panelu vyberte „Kubernetes“ a klikněte na „Použít“.
  • Docker poté nainstaluje některé další balíčky a závislosti. Proces trvá asi pět až deset minut v závislosti na rychlosti vašeho internetu. Pomocí aplikace Docker můžete potvrdit, že vše funguje správně.

    Vzhledem k tomu, že aplikace Kubernetes lze nasadit pomocí CLI, možná budete muset nainstalovat řídicí panel K8s, protože ve výchozím nastavení není nainstalován. Nainstalujte palubní desku pomocí následujících kroků.

  • Stáhněte si konfiguraci YAML.
  • Nasaďte aplikaci pomocí tohoto kódu: . Kubectl použít -f .recommended.yaml.
  • Potvrďte, že je vše správně nastaveno: kubectl.exe get -f .recommended.yaml.txt.
  • Chcete-li získat přístup k řídicímu panelu, spusťte následující příkaz na Power Shell (nikoli CMD)

  • Spusťte následující kód ((kubectl -n kube-system popisuje tajné výchozí nastavení | select-string „token:“) – rozdělení „+“)[1]
    • Zkopírujte vygenerovaný token a spusťte kubectl proxy.
  • V prohlížeči otevřete tento odkaz.
  • Klikněte na „Token“ a vložte svůj token sem.
  • Přihlásit se.
  • Pokud jste se dostali až sem, bravo, vaše obrazovka by měla být naplněna přístrojovou deskou K8s. Nyní můžete spravovat své aplikace, aniž byste museli dělat těžkou práci pomocí rozhraní CLI.

    Přečtěte si také: Jak nainstalovat Kubernetes na Ubuntu 18

    Jak vytvořit a spravovat Kubernetes Cluster

    Pokud jste pokračovali zde, měli byste úspěšně nainstalovat Kubernetes na váš hostitel. Dále postupujte podle následujících kroků a vytvořte a proveďte jednoduchou správu v clusteru:

  • Konfigurace sítě – Zde je třeba nastavit sítě mezi uzly clusteru; umožnit jim vzájemnou komunikaci.
  • Nastavení ověřování clusteru – Vytvořte mechanismy ověřování a autorizace pro přístup ke clusteru.
  • Nastavení hlavních komponent; zahrnuje API server, plánovač a správce řadiče.
  • Připojit pracovní uzly – Připojte pracovní uzly ke clusteru pomocí konfiguračních souborů poskytnutých procesem nastavení clusteru.
  • Nasadit doplňky – můžete nainstalovat rozšíření pro vylepšení funkčnosti clusteru.
  • Správa úloh – Je čas, abyste své aplikace nasadili.
  • I když se jedná pouze o přehled procesu vytváření clusteru, zahrnuje mnoho kroků zahrnujících několik příkazů. Zde je oficiální průvodce dokumentací, jak vytvořit clustery před nasazením. Měla by to být vaše vůdčí ruka.

    Jak nasadit svou první aplikaci pomocí Kubernetes

    Nejběžnějším příkazem při používání K8s je kubectl action resource, který vám umožňuje provádět specifické akce, jako je vytvoření nebo odstranění zadaného zdroje.

    Pokud jste uvízli, můžete použít –help po konkrétním dílčím příkazu k získání dalších informací.

    Například Kubernetes získá uzly – help. Nasaďte svou první aplikaci K8s pomocí příkazu kubectl create deployment Kubernetes-bootcamp –image=gcr.io/google-samples/Kubernetes-bootcamp:v1.

    Závěrečná slova

    Tato příručka byla vstupním bodem do technologie Kubernetes. Naučili jste se výhody, funkce a architekturu Kubernetes. Naštěstí jste možná museli použít několik ukazatelů (externích zdrojů), abyste mohli začít; vysvětlil, jak to pod kapotou funguje.

    I když se může zdát ohromující pochopit celý technologický stack jako začátečník, tento příspěvek byl hladkým vodítkem, jak začít s K8. Budete potřebovat trochu praxe, abyste si byli jisti používáním této technologie, proto vás odkazuji na oficiální dokumentaci Kubernetes jako vaši souběžnou referenci. Čím více praxe budete mít, tím rychleji se stanete expertem na K8.

    Dále se podívejte na výukové programy Kubernetes pro začátečníky.