Programiranje

Kaj je Istio? Pojasnila je servisna mreža Kubernetes

Mikroservisne arhitekture nekatere težave rešujejo, druge pa uvajajo. Razdelitev aplikacij na neodvisne storitve poenostavi razvoj, posodobitve in spreminjanje velikosti. Hkrati vam omogoča veliko več gibljivih delov, ki jih lahko povežete in zavarujete. Upravljanje vseh omrežnih storitev - izravnava obremenitve, upravljanje prometa, preverjanje pristnosti in avtorizacija itd. - lahko postane izjemno zapleteno.

Za ta omrežni prostor obstaja skupni izraz med storitvami v vaši gruči Kubernetes: a servisna mreža. Googlov projekt Istio je namenjen temu, da vam omogoči upravljanje omrežja storitev vaše gruče, preden se ta spremeni v bramble-snarl.

Kaj je servisna mreža?

Pri kateri koli skupini omrežnih aplikacij se okoli njih pojavlja vrsta pogostih vedenj. Na primer, uravnoteženje obremenitve: malo je primerov, ko skupina omrežnih storitev tega ne potrebuje. Prav tako lahko A / B preizkusite različne kombinacije storitev ali nastavite overjanje do konca v verigah storitev. Ta vedenja se skupno imenujejo aservisna mreža.

Upravljanje servisne mreže ne sme biti prepuščeno storitvam samim. Nobeden od njiju ni v dobrem položaju, da bi naredil nekaj od zgoraj navzdol, in to v resnici vseeno ne bi smelo biti njihovo delo. Bolje je imeti ločen sistem, ki se nahaja med storitvami in omrežjem, s katerim govorijo. Ta sistem bi imel dve ključni funkciji:

  1. Samim storitvam preprečite, da bi se spopadale z drobnim upravljanjem omrežnega prometa - uravnoteženjem obremenitve, usmerjanjem, ponovnimi poskusi itd.
  2. Zagotovite plast abstrakcije za skrbnike, s čimer boste olajšali sprejemanje odločitev na visoki ravni o omrežnem prometu v gruči - nadzor pravilnikov, meritve in beleženje, odkrivanje storitev, varne medslužbene komunikacije prek TLS itd.

Istio servisne mrežne komponente

Istio deluje kot servisna mreža, saj nudi dve osnovni arhitekturi za vašo gručo, a podatkovna ravnina in a krmilna ravnina.

Podatkovna ravnina obravnava omrežni promet med storitvami v mreži. Ves ta promet prestreže in preusmeri omrežni sistem proxy. V Istiovem primeru posrednik posreduje odprtokodni projekt, imenovan Envoy. Druga komponenta na podatkovni ravni, Mixer, zbira telemetrijo in statistiko odposlanca ter pretok prometa med storitvami.

Nadzorna ravnina, jedro Istio, upravlja in varuje podatkovno ravnino. Konfigurira tako pooblastila odposlanca kot mešalnike, ki uveljavljajo omrežne pravilnike za storitve, na primer, kdo se s kom pogovarja in kdaj. Nadzorna ravnina zagotavlja tudi programsko abstrakcijsko plast za podatkovno ravnino in vsa njena vedenja.

Tri druge storitve Istio dopolnjujejo mešanico:

Istio Pilot

Istio Pilot sprejme pravila za obnašanje prometa, ki jih zagotavlja krmilna ravnina, in jih pretvori v konfiguracije, ki jih uporablja odposlanec, glede na to, kako takšne stvari upravljajo lokalno. Pilot bo Istioju omogočil, da poleg Kubernetesa deluje z različnimi sistemi za orkestracijo, vendar se med njimi obnaša dosledno.

Citadela Istio

Citadel nadzoruje preverjanje pristnosti in upravljanje identitet med storitvami.

Istio Galley

Galerija za uporabnike konfigurira konfiguracije za Istio in jih pretvori v veljavne konfiguracije za druge komponente krmilne ravnine. To je še en element, ki Istio omogoča transparentno uporabo različnih sistemov za orkestracijo.

Istio storitvene mrežne zmogljivosti

Prva in najdragocenejša prednost, ki jo ponuja Istio, je abstrakcija - način za obvladovanje zapletenosti servisne mreže na razdalji roke. Katere koli spremembe mrežnega očesa lahko naredite programsko z ukazom Istio. Storitev, povezanih z mrežo, ni treba znova programirati od znotraj, da bi sledili novim omrežnim pravilnikom ali kvotam, omrežnih prostorov med njimi pa se ni treba dotikati neposredno.

Poleg tega vam Istio omogoča izvajanje nedestruktivnih ali okvirnih sprememb omrežne konfiguracije grozda. Če želite v celoti ali delno uvesti novo postavitev omrežja ali A / B preizkusiti trenutno konfiguracijo glede na novo, vam Istio to omogoča na način od zgoraj navzdol. Te spremembe lahko tudi zavrnete, če se izkažejo za nezdrave.

Tretja prednost je opaznost. Istio ponuja podrobne statistične podatke in poročila o dogajanju med vsebniki in vozlišči gruč. Če pride do nepredvidene težave, če se nekaj ne drži politike ali če se spremembe, ki ste jih izvedli, izkažejo za kontraproduktivne, boste o tem lahko izvedeli v kratkem vrstnem redu.

Istio ponuja tudi načine za izpolnitev običajnih vzorcev, ki jih vidite v servisni mreži. Eden od primerov je vzorec odklopnika, ki preprečuje, da bi bila storitev zasuta z zahtevami, če zadnji del sporoči težave in zahtev ne more pravočasno izpolniti. Istio ponuja vzorec odklopnika kot del svoje standardne knjižnice uveljavljanja pravilnikov.

Nazadnje, čeprav Istio najbolj neposredno in poglobljeno sodeluje s Kubernetesom, je zasnovan tako, da je neodvisen od platforme. Istio se vključuje v iste odprte standarde, na katere se zanaša tudi Kubernetes. Istio lahko deluje tudi samostojno na posameznih sistemih ali na drugih orkestracijskih sistemih, kot sta Mesos in Nomad.

Kako začeti z Istiom

Če že imate izkušnje s Kubernetesom, je dober način za učenje Istioja, da vzamete grozd Kubernetes -ne ena je že v izdelavi! - in nanjo namestite Istio s pomočjo Helmove lestvice. Nato lahko postavite vzorčno aplikacijo, ki prikazuje skupne funkcije Istio, kot sta inteligentno upravljanje prometa in telemetrija. To bi vam moralo dati nekaj izkušenj na tleh z Istioom, preden ga namestite za servisno mrežo v aplikacijski gruči.

Red Hat, ki je v Istio investiral v okviru projekta OpenShift, ki ga poganja Kubernetes, ponuja vadnice, ki vas bodo vodile skozi običajne scenarije uvajanja in upravljanja Istio.

$config[zx-auto] not found$config[zx-overlay] not found