Što je Istio? Objasnila je mreža usluga Kubernetes

Arhitekture mikroservisa rješavaju neke probleme, ali uvode druge. Podjela aplikacija na neovisne usluge pojednostavljuje razvoj, ažuriranja i skaliranje. Istodobno vam daje mnogo više pokretnih dijelova za povezivanje i osiguranje. Upravljanje svim mrežnim uslugama - uravnoteženjem opterećenja, upravljanjem prometom, autentifikacijom i autorizacijom, itd. - može postati izuzetno složeno. 

Za ovaj umreženi prostor postoji zajednički izraz između usluga u vašem Kubernetesovom klasteru: mreža usluga . Googleov projekt, Istio, svodi se na to da vam pruži način za upravljanje mrežom usluga vašeg klastera prije nego što se pretvori u bramble-snarl.

Što je mreža usluga?

Kod bilo koje skupine umreženih aplikacija postoji mnoštvo uobičajenih ponašanja koja obično izviru oko njih. Na primjer, uravnoteženje opterećenja: Rijetki su slučajevi kada grupa umreženih usluga to ne treba. Isto tako, mogućnost A / B testiranja različitih kombinacija usluga ili postavljanje autentifikacije od kraja do kraja u lancima usluga. Ta se ponašanja zajednički nazivaju  mrežom usluga.

Upravljanje mrežom usluga ne bi trebalo biti prepušteno samim uslugama. Nitko od njih nije u dobroj poziciji da radi nešto odozgo prema dolje, a to ionako stvarno ne bi trebao biti njihov posao. Bolje imati zaseban sustav koji se nalazi između usluga i mreže s kojom razgovaraju. Ovaj sustav pruža dvije ključne funkcije:

  1. Spriječite same usluge da se moraju nositi s sitnim upravljanjem mrežnim prometom - uravnoteženjem opterećenja, usmjeravanjem, ponovnim pokušajima itd.
  2. Osigurajte sloj apstrakcije za administratore, olakšavajući donošenje odluka na visokoj razini o mrežnom prometu u klasteru - kontrole politike, mjerni podaci i evidentiranje, otkrivanje usluga, sigurna međuuslužna komunikacija putem TLS-a itd.

Istio servisne mrežne komponente

Istio djeluje kao servisna mreža pružajući dva osnovna dijela arhitekture za vaš klaster, podatkovnu i kontrolnu ravninu .

Podatkovna ravnina obrađuje mrežni promet između usluga u mreži. Sav taj promet presreće i preusmjerava mrežni proxy sustav. U Istioovom slučaju proxy pruža projekt otvorenog koda pod nazivom Envoy. Druga komponenta u podatkovnom planu, Mixer, prikuplja telemetriju i statistiku od izaslanika i protok prometa od usluge do usluge.

Upravljačka ravnina, Istiova jezgra, upravlja i osigurava podatkovnu ravninu. Konfigurira i proxyje izaslanika i miksere koji provode mrežne politike za usluge, poput toga tko s kime i kada može razgovarati. Kontrolna ravnina također pruža programski sloj apstrakcije za podatkovnu ravninu i sva njena ponašanja.

Tri druge usluge Istio zaokružuju kombinaciju:

Istio Pilot

Istio Pilot uzima pravila za ponašanje u prometu koje pruža upravljačka ravnina i pretvara ih u konfiguracije koje primjenjuje izaslanik, na temelju lokalnog upravljanja takvim stvarima. Pilot će omogućiti Istiou da radi s različitim sustavima orkestracije, osim Kubernetesa, ali da se međusobno ponaša dosljedno. 

Citadela Istio

Citadel kontrolira provjeru autentičnosti i upravljanje identitetom između usluga.

Istio Galley

Gallery uzima korisničke konfiguracije za Istio i pretvara ih u važeće konfiguracije za ostale komponente upravljačke ravnine. Ovo je još jedan element koji Istiou omogućuje transparentno korištenje različitih sustava orkestracije.

Istio servisne mrežne mogućnosti

Prva i najvrjednija korist koju Istio pruža je apstrakcija - način rješavanja složenosti uslužne mreže na udaljenosti od ruke. Bilo koje promjene na mreži možete izvršiti programski zapovijedajući Istio. Usluge povezane na mrežu ne trebaju se reprogramirati iznutra kako bi slijedile nove mrežne politike ili kvote, a ni mrežne prostore između njih ne treba izravno dodirivati.

Uz to, Istio vam omogućuje izvršavanje nerazornih ili probnih promjena mrežne konfiguracije klastera. Ako želite izbaciti novi mrežni izgled, u cijelosti ili djelomično, ili A / B testirati trenutnu konfiguraciju u odnosu na novu, Istio vam omogućuje da to učinite odozgo prema dolje. Te promjene možete i vratiti, ako se pokažu nezdravima.

Treća prednost je uočljivost. Istio pruža detaljne statistike i izvještaje o tome što se događa između spremnika i čvorova klastera. Ako postoji nepredviđeni problem, ako se nešto ne pridržava pravila ili se promjene koje ste izvršili ispostave kontraproduktivnim, moći ćete o tome saznati u kratkom redoslijedu.

Istio također nudi načine za ispunjavanje uobičajenih obrazaca koje vidite u mrežnoj mreži. Jedan od primjera je obrazac prekidača, način da se spriječi da usluga bude bombardirana zahtjevima ako stražnja strana prijavi probleme i ne može ispuniti zahtjeve na vrijeme. Istio nudi obrazac prekidača kao dio svoje standardne knjižnice provođenja pravila.

Konačno, iako Istio najizravnije i najdublje surađuje s Kubernetesom, osmišljen je da bude neovisan o platformi. Istio se uključuje u iste otvorene standarde na koje se i sam Kubernetes oslanja. Istio također može samostalno raditi na pojedinačnim sustavima ili na drugim sustavima orkestracije kao što su Mesos i Nomad.

Kako započeti s Istiom

Ako već imate iskustva s Kubernetesom, dobar način da naučite Istio je uzeti Kubernetesov klaster - a ne jedan već u proizvodnji! - i na njega instalirati Istio putem Helmove karte. Tada možete rasporediti uzorak aplikacije koja pokazuje uobičajene Istio značajke poput inteligentnog upravljanja prometom i telemetrije. To bi vam trebalo pružiti neko prizemno iskustvo s Istioom prije nego što ga implementirate za rad mreže usluga na vašem aplikacijskom klasteru.

Red Hat, koji je uložio u Istio kao dio kompanijskog projekta OpenShift koji pokreće Kubernetes, nudi vodiče koji će vas provesti kroz uobičajene scenarije postavljanja i upravljanja Istioom.