Kubernetes

Servisná sieť Kubernetes

Servisná sieť Kubernetes
Kubernetes má veľa typov zdrojov, ktoré vám pomôžu abstraktne rozšíriť predstavu o službách alebo mikroslužbách. Napríklad ak chce klientske rozhranie vašej aplikácie komunikovať s koncovým serverom, nemusí sa zaujímať o to, ktorý modul hľadá, alebo dokonca o to, ktorú adresu IP dúfa, že by tento modul fungoval. Pods sú vystavené prostredníctvom služby. (Ak s Kubernetesom začínate, odporúčam tento príspevok, aby ste lepšie pochopili, ktoré moduly sú spolu s ďalšími dôležitými konceptmi.)

Kubernetes v podstate vystavuje a backendová služba interne v rámci klastra a front-end interaguje s touto službou. Lusky ponúkajúce službu sa dajú veľmi dobre vymeniť a nikto by si nič nevšimol. S pribúdajúcimi funkciami vo vašich aplikáciách však rastie aj počet služieb, ktoré musíte udržiavať. Každá služba môže potenciálne hovoriť s každou ďalšou službou v klastri a výsledná sieť sa nazýva Servisná sieť.

Pre Kubernetes existuje veľa doplnkov, ktoré nám pomáhajú zjednodušiť správu tejto siete Service Mesh. Tieto doplnky ponúkajú veľa kľúčových funkcií, ako je TLS, automatické vyrovnávanie zaťaženia, zabezpečenie rozhraní API dokonca aj v internej sieti atď. Za týmto účelom je možné do Kubernetes integrovať mnoho možností, ako sú Istio, Linkerd a Conduit. V tomto príspevku sa pozrieme na Istio, pretože je to verzia 1.0 bolo nedávno oznámené.

Predpoklady

Na začiatok s Istiom by ste potrebovali funkčný kuberneteský klaster. Existujú tri spôsoby, ako to dosiahnuť.

  1. Môžete si nainštalovať Minikube a vytvoriť tak na svojom lokálnom počítači klaster s jedným uzlom.
  2. Alebo ak používate Docker na Windows alebo Mac, môžete v nastaveniach Dockeru povoliť klaster Kubernetes s jedným uzlom.
  3. Alebo môžete využiť služby online, ako je detské ihrisko Katacoda. Budeme to používať.

Prečo používať sieť Service Mesh?

Inštalácia siete služieb, ako je Istio, uľahčuje prácu s mikroslužbami. Pri vývoji sa nemusíte obávať skutočnosti, že by vaša mikroslužba musela ponúkať podporu pre vzájomné TLS, vyvažovanie záťaže alebo akýkoľvek iný aspekt, napríklad zisťovanie služieb. Ideálna služba Service Mesh vám umožňuje pripojiť mikroslužby, zabezpečiť ich navzájom a pred vonkajším svetom a organizovane ich spravovať. Pomáha nesmierne vývojárom aj prevádzkovateľom.

Inštaluje sa Istio

Inštalácia Istio vyžaduje mať klaster Kubernetes. Ak máte klaster s jedným uzlom, aký získate v prostredí Minikube alebo Docker na pracovnej ploche, všetky príkazy je možné spustiť v miestnom uzle. Ak však používate viacuzlový klaster, ako je ten, ktorý ponúka ihrisko Katacoda, nezabudnite, že väčšina príkazov a postupov nastavovania sa vykonáva na hlavnom uzle. Áno, ovplyvňuje to celý klaster, ale musíme interagovať iba s hlavným uzlom.

Začíname klonovaním (alebo stiahnutím) najnovšieho vydania Istio z Githubu. Používatelia systému Windows môžu chcieť navštíviť túto stránku a získať príslušné informácie .PSČ spis.

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

Názov repo sa môže časom meniť, ako bude k dispozícii novšie vydanie, v čase písania tohto článku 1.0.0 je najnovšie stabilné vydanie. Toto repo obsahuje nielen rozšírenie siete služieb, ale aj vzorovú aplikáciu s názvom BookInfo na účely experimentovania. Skript tiež pridá nový adresár $ PWD / istio-1.0.0 / bin do vašej premennej PATH.

Tento adresár obsahuje istioctl binárne, ktoré možno použiť na interakciu s klastrom. Používatelia systému Windows môžu jednoducho zavolať binárne súbory do priečinka istio-1.0.0 \ bin a volanie .\ istioctl pomocou príkazového riadku alebo príkazového riadku. Je to však voliteľný doplnok.

Ak používate Mac, môžete to urobiť pomocou nasledujúceho príkazu:

$ export PATH = $ PWD / bin: $ PATH

Ďalej musíme rozšíriť naše Kubernetes API o vlastné definície zdrojov (CRD), ktoré nám istio poskytuje.

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

To sa môže prejaviť o pár sekúnd a po dokončení bude mať váš kube-apiserver zabudované rozšírenia Istio. Od tejto chvíle sa možnosti inštalácie budú líšiť v závislosti od toho, či ich používate na produkčné účely alebo či s nimi experimentujete vo svojom izolovanom prostredí.

Budeme predpokladať, že to je druhý prípad, a nainštalujeme istio bez autentifikácie TLS.

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

Týmto sa vytvorí nový istio-systém názvov priestoru, kde budú nainštalované všetky rôzne komponenty ako istio-pilot a ingress gateway.

Nasadenie aplikácie a Istio Injector

Prichádza užitočnosť Istia. Istio pridáva do vašich služieb proxy postranných vozíkov, a to bez úpravy skutočného kódu vašej aplikácie. Ak je povolený automatický injektor istio-sidecar. Menný priestor môžete označiť s povoleným istio-injection = a keď je vaša aplikácia nasadená v tomto mennom priestore, samotné pody budú mať špecializované kontajnery Envoy spolu s kontajnermi pre základnú aplikáciu. Napríklad označme predvolený priestor názvov

$ kubectl label namespace default istio-injection = enabled

Teraz poďme nasadiť ukážkovú aplikáciu BookInfo v tomto mennom priestore. Z koreňového adresára zástupcu Isitio, ktorý sme naklonovali, spustite:

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

Tu môžete zobraziť všetky spustené pody:

$ kubectl získať struky

Vyberte niektorý z pod a zobrazte jeho podrobnosti. Napríklad jeden z podov z aplikácie BookInfo v mojom nasadení má názov details-v1-6865b9b99d-6mxx9

$ kubectl description pods / details-v1-6865b9b99d-6mxx9

V popise si všimnete, že pod obsahuje dva kontajnery, prvý je súčasťou skutočného spustenia obrázkovej aplikácie examples-bookinfo-details-v1: 1.8.0 a druhý je istio-proxy, ktorý spúšťa obraz gcr.io / istio-release / proxyv2: 1.0.0 .

Istio ponúka jemnú kontrolu nad vašou sieťou služieb, pretože tieto kontajnery injektuje až do tých podov, kde sa nachádzajú vaše aplikácie. To v kombinácii s ľahko použiteľným TLS na komunikáciu a jemným riadením prenosu je jedným z mnohých dôvodov, prečo veľké aplikácie môžu ťažiť zo siete služieb, ako je Istio.

Referencie

Skutočná architektúra má veľa komponentov, ako sú Pilot, Citadel a Mixer, z ktorých každá má svoju dôležitú úlohu. Tu sa môžete dozvedieť oveľa viac informácií o týchto komponentoch a vyskúšať tu nasadiť svoju vlastnú mikroslužbu.

Hry Ako zvýšiť rýchlosť FPS v systéme Linux?
Ako zvýšiť rýchlosť FPS v systéme Linux?
FPS znamená Počet snímok za sekundu. Úlohou FPS je merať snímkovú frekvenciu pri prehrávaní videa alebo herných výkonoch. Jednoducho povedané, počet n...
Hry Najlepšie hry Oculus App Lab
Najlepšie hry Oculus App Lab
Ak ste vlastníkom náhlavnej súpravy Oculus, musíte byť informovaní o bočnom nakladaní. Sideloading je proces inštalácie neuloženého obsahu do náhlavne...
Hry Top 10 hier, ktoré sa dajú hrať na Ubuntu
Top 10 hier, ktoré sa dajú hrať na Ubuntu
Platforma Windows je jednou z dominujúcich platforiem pre hry kvôli obrovskému percentu hier, ktoré sa dnes vyvíjajú na natívnu podporu systému Window...