Kubernetes

Servisní síť Kubernetes

Servisní síť Kubernetes
Kubernetes má mnoho typů prostředků, které vám pomohou oddělit myšlenku služeb nebo mikroslužeb. Například pokud frontend vaší aplikace chce interagovat s back-endem, nemusí se starat o to, který modul hledá, nebo dokonce o jakou IP adresu doufá, že by backendový modul zabral. Pody jsou vystaveny prostřednictvím služby. (Pokud jste v Kubernetes nováčkem, doporučuji tento příspěvek, abyste lépe pochopili, jaké lusky jsou spolu s dalšími důležitými pojmy.)

Kubernetes v zásadě odhaluje a backendová služba interně v rámci klastru a front-end interaguje s touto službou. Lusky, které nabízejí službu, lze velmi dobře vyměnit a nikdo by si nic nevšiml. Jak ale funkce ve vašich aplikacích rostou, roste také počet služeb, které potřebujete udržovat. Každá služba může potenciálně mluvit s každou další službou v klastru a výsledná síť se označuje jako Servisní síť.

Pro Kubernetes existuje spousta doplňků, které nám pomohou zjednodušit správu této sítě služeb. Tyto doplňky nabízejí mnoho klíčových funkcí, jako je TLS, automatické vyrovnávání zátěže, zabezpečení API i v interní síti atd. Mnoho možností, jako je Istio, Linkerd a Conduit, lze k dosažení tohoto cíle integrovat do Kubernetes. V tomto příspěvku se podíváme na Istio, protože je to verze 1.0 bylo nedávno oznámeno.

Předpoklady

Chcete-li začít s Istio, budete potřebovat funkční kubernetes cluster. Existují tři způsoby, jak toho dosáhnout.

  1. Nainstalovat Minikube můžete vytvořit klastr s jedním uzlem na místním počítači.
  2. Nebo pokud používáte Docker v systému Windows nebo Mac, můžete povolit klastr Kubernetes s jedním uzlem v nastavení Dockeru.
  3. Nebo můžete použít online služby, jako je dětské hřiště Katacoda. Budeme to používat.

Proč používat Service Mesh?

Instalace sítě služeb, jako je Istio, usnadňuje práci s mikroslužbami. Při vývoji se nemusíte starat o to, že vaše mikroslužba bude muset nabídnout podporu pro vzájemné TLS, vyrovnávání zatížení nebo jakýkoli jiný aspekt, jako je zjišťování služeb. Ideální Service Mesh vám umožní propojit mikroslužby, zabezpečit je navzájem i před okolním světem a organizovat je organizovaným způsobem. Pomáhá nesmírně vývojářům i provozovatelům.

Instalace Istio

Instalace Istio vyžaduje mít klastr Kubernetes. Pokud máte klastr s jedním uzlem, jaký získáte u Minikube nebo Dockeru na ploše, lze všechny příkazy spustit na místním uzlu. Pokud však používáte víceuzlový klastr, jako je ten, který nabízí hřiště Katacoda, mějte na paměti, že většina příkazů a nastavovacích postupů se provádí na hlavním uzlu. Ano, ovlivňuje to celý klastr, ale musíme komunikovat pouze s hlavním uzlem.

Začneme klonováním (nebo stažením) nejnovější verze Istio z Githubu. Uživatelé systému Windows možná budou chtít navštívit tuto stránku a získat příslušné informace .zip soubor.

$ curl -L https: // git.io / getLatestIstio | sh -
$ cd istio-1.0.0

Název repo se v průběhu psaní tohoto článku může postupem času měnit, jak prochází novější verze 1.0.0 je nejnovější stabilní vydání. Toto úložiště obsahuje nejen rozšíření sítě služeb, ale také ukázkovou aplikaci s názvem BookInfo pro účely experimentování. Skript také přidá nový adresář $ PWD / istio-1.0.0 / bin do vaší proměnné PATH.

Tento adresář obsahuje istioctl binární, které lze použít k interakci s klastrem. Uživatelé systému Windows mohou jednoduše volat binární soubory tak, že přejdou do složky istio-1.0.0 \ bin a volá .\ istioctl pomocí prostředí PowerShell nebo příkazového řádku. Je to však volitelný doplněk.

Pokud používáte Mac, můžete to udělat pomocí následujícího příkazu:

$ export PATH = $ PWD / bin: $ PATH

Dále musíme rozšířit naše API Kubernetes o definice vlastních zdrojů (CRD), které nám istio poskytuje.

$ kubectl apply -f install / kubernetes / helm / istio / templates / crds.yaml

To se může projevit za několik sekund a jakmile je hotovo, váš kube-apiserver bude mít zabudovaná rozšíření Istio. Od této chvíle se možnosti instalace liší v závislosti na tom, zda to používáte pro produkční účely nebo zda s nimi experimentujete ve svém vlastním izolovaném prostředí.

Budeme předpokládat, že tomu tak je, a nainstalujeme istio bez ověření TLS.

$ kubectl apply -f install / kubernetes / istio-demo.yaml

Tím se vytvoří nový istio-systém jmenného prostoru, kde budou nainstalovány všechny různé komponenty jako istio-pilot a ingress gateway.

Nasazení aplikace a Istio Injector

Zde přichází užitečnost Istio. Istio přidává do vašich služeb proxy postranního vozíku, a to se děje bez úpravy skutečného kódu vaší aplikace. Pokud je povolen automatický injektor istio-sidecar-injector. Můžete označit jmenný prostor s povolenou istio-injection = a při nasazení vaší aplikace v tomto jmenném prostoru budou samotné pody mít specializované kontejnery Envoy spolu s kontejnery pro základní aplikaci. Například označme výchozí jmenný prostor

$ kubectl label namespace default istio-injection = enabled

Nyní pojďme nasadit ukázkovou aplikaci BookInfo v tomto oboru názvů. Z kořenového adresáře zástupce Isitio, který jsme klonovali, spusťte:

$ kubectl apply -f samples / bookinfo / platforma / kube / bookinfo.yaml

Zde můžete zobrazit všechny spuštěné pody:

$ kubectl získat lusky

Vyberte některý z nich a podívejte se na jeho podrobnosti. Například jeden z lusků z aplikace BookInfo v mém nasazení se jmenuje details-v1-6865b9b99d-6mxx9

$ kubectl popsat lusky / details-v1-6865b9b99d-6mxx9

V popisu si všimnete, že pod obsahuje dva kontejnery, první je součástí skutečného spuštění aplikace image examples-bookinfo-details-v1: 1.8.0 a druhý je istio-proxy běžící obrázek gcr.io / istio-release / proxyv2: 1.0.0 .

Istio nabízí jemnou kontrolu nad vaší servisní sítí, protože vkládá tyto kontejnery až do samotných lusků, kde jsou vaše aplikace. To v kombinaci se snadno použitelným TLS pro komunikaci a jemným řízením provozu je jedním z mnoha důvodů, proč velké aplikace mohou těžit ze sítě služeb, jako je Istio.

Reference

Skutečná architektura má mnoho komponent, jako je Pilot, Citadel a Mixer, z nichž každá má svoji vlastní důležitou roli. Zde se můžete dozvědět mnohem více informací o těchto součástech a zde zkusit nasadit vlastní mikroslužbu.

V systému Windows 10 nefunguje levé tlačítko myši
Pokud používáte speciální myš s notebookem nebo stolním počítačem, ale levé tlačítko myši nefunguje ve Windows 10/8/7 z nějakého důvodu uvádíme několi...
Kurzor při psaní v systému Windows 10 skáče nebo se pohybuje náhodně
Pokud zjistíte, že kurzor myši skáče nebo se pohybuje sám, automaticky, náhodně při psaní v notebooku nebo počítači se systémem Windows, pak vám někte...
Jak obrátit směr posouvání myši a touchpadu ve Windows 10
Myš a Touchpadnejenže usnadňují výpočet, ale jsou efektivnější a méně časově náročné. Nemůžeme si představit život bez těchto zařízení, ale přesto je ...