Istio Service Mesh-en mezu sorta bat

Red Hat OpenShift eta Kubernetesekin konbinatuta Istio Service Mesh-en gaitasun ugari erakusten dituzten argitalpen sorta bat hasten ari gara.

Istio Service Mesh-en mezu sorta bat

Lehen zatia, gaur:

  • Azal dezagun Kubernetes sidecar-eko edukiontzien kontzeptua eta formulatu dezagun mezu sorta honen leitmotiva: "ez duzu ezer aldatu behar kodean".
  • Sar ditzagun Istioren oinarrizko gauza: bideratze-arauak. Istio-ren beste ezaugarri guztiak horien gainean eraikitzen dira, trafikoa mikrozerbitzuetara bideratzeko aukera ematen duten arauak baitira, zerbitzu-kodetik kanpoko YAML fitxategiak erabiliz. Canary Deployment hedapen-eskema ere aztertzen ari gara. Urteberriko hobaria - 10 ikasgai interaktibo Istio-n


Bigarren zatiak, laster, esango dizu:

  • Istio-k nola inplementatzen duen Pool Ejection Circuit Breaker-ekin konbinatuta eta Istio-k oreka-zirkuitutik hildako edo gaizki funtzionatzen duen pod bat kentzeko aukera ematen duen erakutsiko du.
  • Lehen argitalpenetik Circuit Breaker gaia ere aztertuko dugu Istio nola erabil daitekeen ikusteko. YAML konfigurazio-fitxategiak eta terminal-komandoak erabiliz trafikoa bideratu eta sareko akatsak nola kudeatu erakutsiko dizugu zerbitzu-kodean aldaketarik txikiena izan gabe.

Hirugarren zatia:

  • Istio-n dagoeneko txertatuta edo erraz gehitzen diren trazatzeari eta jarraipenari buruzko istorio bat. Prometheus, Jaeger eta Grafana bezalako tresnak nola erabiltzen diren erakutsiko dizugu OpenShift eskalatzearekin batera, mikrozerbitzuen arkitekturak erraz kudeatzeko.
  • Akatsak kontrolatu eta kudeatzeko sisteman nahita sartzera pasatzen gara. Beste era batera esanda, akatsen injekzioa egiten ikasten dugu iturburu-kodea aldatu gabe, eta hori oso garrantzitsua da probaren ikuspuntutik; izan ere, horretarako kodea bera aldatzen baduzu, akats gehigarriak sartzeko arriskua dago.

Azkenik, Istio Service Mesh-en azken mezuan:

  • Goazen Alde Ilunera. Zehatzago esanda, Dark Launch eskema erabiltzen ikasiko dugu, kodea ekoizpen-datuetan zuzenean zabaldu eta probatzen denean, baina ez du sistemaren funtzionamenduari inola ere eragiten. Hortik dator Istioren trafikoa banatzeko gaitasuna. Eta zuzeneko produkzio-datuak probatzeko gaitasuna borroka-sistemaren funtzionamenduari inola ere eragin gabe da egiaztapen-metodorik sinesgarriena.
  • Dark Launch-ean oinarrituta, Canary Deployment eredua nola erabiltzen den erakutsiko dizugu arriskua murrizteko eta kode berria produkzioan sartzea errazteko. Canary Deployment bera ez da berria, baina Istio-k eskema hau YAML fitxategi soilekin ezartzeko aukera ematen dizu.
  • Azkenik, Istio Egress nola erabili erakutsiko dizugu zure klusterrak kanpo daudenei zerbitzuetarako sarbidea emateko, Internetekin lan egitean Istioren gaitasunak erabiltzeko.

Beraz, hona hemen...

Istio monitorizazio eta kudeaketa tresnak - zerbitzu sare batean mikrozerbitzuak orkestratzeko behar duzun guztia zerbitzu-sare.

Zer da Istio Service Mesh

Zerbitzu-sare batek trafikoaren jarraipena, sarbide-kontrola, aurkikuntza, segurtasuna, akatsen tolerantzia eta zerbitzu talde baterako beste gauza erabilgarriak bezalako funtzioak ezartzen ditu. Istio-k hau guztia egiteko aukera ematen du zerbitzuen beraiek kodean aldaketa txikienik egin gabe. Zein da magiaren sekretua? Istio-k bere proxy propioa eransten dio zerbitzu bakoitzari sidecar edukiontzi baten moduan (sidecar motoaren sidecar bat da), eta ondoren zerbitzu honetarako trafiko guztia proxytik igarotzen da, eta honek, zehaztutako politikek gidatuta, trafiko hori nola, noiz eta ala ez erabakitzen du. zerbitzura iritsi beharko litzateke. Istio-k DevOps teknika aurreratuak ezartzeko aukera ere ematen du, hala nola, inplementazioak kanariarrak, etengailuak, akatsen injekzioa eta beste hainbat.

Istio-k nola funtzionatzen duen edukiontziekin eta Kubernetesekin

Istio zerbitzu-sarea mikrozerbitzuak sortzeko eta kudeatzeko behar den guztiaren sidecar inplementazioa da: monitorizazioa, trazadura, etengailuak, bideratzea, karga orekatzea, akatsen injekzioa, berriro saiakerak, denbora-muga, ispilua, sarbide-kontrola, tasa mugatzea eta askoz gehiago. Eta gaur egun funtzio hauek kodean zuzenean inplementatzeko liburutegi ugari dauden arren, Istio-rekin gauza berdinak lor ditzakezu zure kodean ezer aldatu gabe.

Sidecar ereduaren arabera, Istio Linux edukiontzi batean exekutatzen da, eta hori batean dago Kubernetes-pod zerbitzu kontrolatu batekin eta konfigurazio jakin baten arabera funtzionalitateak eta informazioa sartzen eta ateratzen ditu. Zure konfigurazioa dela eta zure kodeatik kanpo bizi dela azpimarratzen dugu. Beraz, kodea askoz sinpleagoa eta laburragoa bihurtzen da.

Garrantzitsua da, halaber, mikrozerbitzuen osagai operatiboak ez duela inolako loturarik kodearekin berarekin, eta horrek esan nahi du haien funtzionamendua informatika espezialistei modu seguruan transferi daitekeela. Izan ere, zergatik izan behar du garatzaileak etengailuen eta akatsen injekzioen ardura? Erreakzionatu, bai, baina prozesatu eta sortu? Hori guztia kodetik kentzen baduzu, programatzaileek aplikazioen funtzionaltasunean erabat zentratu ahal izango dute. Eta kodea bera laburragoa eta sinpleagoa izango da.

Zerbitzu-sarea

Istio, bere kodetik kanpo mikrozerbitzuak kudeatzeko funtzioak ezartzen dituena, Service Mesh kontzeptua da. Beste era batera esanda, sareko funtzioen sare bat osatzen duten bitar baten edo gehiagoren talde koordinatua da.

Istio nola funtzionatzen duen mikrozerbitzuekin

Honela ikusten da sidecar edukiontzien lana Kubernetes ΠΈ Minishift hegazti-ikuspegia: abiarazi Minishift-en instantzia bat, sortu Istiorako proiektu bat (deiezaiogun β€œistio-sistema”), instalatu eta exekutatu Istiorekin lotutako osagai guztiak. Ondoren, proiektuak eta pod-ak sortzen dituzun heinean, konfigurazio-informazioa gehitzen diezu inplementazioei, eta zure pod-ak Istio erabiltzen hasiko dira. Diagrama sinplifikatu batek itxura hau du:

Istio Service Mesh-en mezu sorta bat

Orain Istio ezarpenak alda ditzakezu, adibidez, akatsen injekzioa, laguntza antolatzeko Kanariarren hedapena edo Istio-ren beste ezaugarri batzuk - eta hori guztia aplikazioen beraiek kodea ukitu gabe. Demagun zure bezero handieneko erabiltzaileen (Foo Corporation) web-trafiko guztia gunearen bertsio berri batera birbideratu nahi duzula. Horretarako, besterik gabe, sortu @foocorporation.com erabiltzailearen IDan eta horren arabera birbideratuko duen Istio bideratze-arau bat. Gainerako erabiltzaile guztientzat, ez da ezer aldatuko. Bitartean, lasai probatuko duzu gunearen bertsio berria. Eta kontuan izan ez duzula garatzaileei batere parte hartu behar horretarako.

Eta garesti ordaindu beharko al duzu?

Inola ere ez. Istio nahiko azkarra da eta idatzita dago Go eta oso kostu txikia sortzen du. Horrez gain, sareko produktibitatearen galera posiblea garatzaileen produktibitatea handitzearekin konpentsatzen da. Teorian behintzat: ez ahaztu garatzaileen denbora baliotsua dela. Software kostuei dagokienez, Istio kode irekiko softwarea da, beraz, doan eskuratu eta erabil dezakezu.

Zuk zeuk menperatu

Red Hat Developer Experience Team-ek praktika sakona garatu du lidergoa Istioren eskutik (ingelesez). Linux, MacOS eta Windows-en exekutatzen da, eta kodea Java eta Node.js-en dago eskuragarri.

Istio-ri buruzko 10 ikasgai interaktibo

1. blokea - Hasiberrientzat

Istioren sarrera
30 minutu
Ezagutu dezagun Service Mesh-ekin, ikasi Istio nola instalatu OpenShift Kubernetes kluster batean.
Hasteko

Istio-n mikrozerbitzuak zabaltzea
30 minutu
Istio erabiltzen dugu Spring Boot eta Vert.x-ekin hiru mikrozerbitzu zabaltzeko.
Hasteko

2. blokea – maila ertaina

Jarraipena eta jarraipena Istioan
60 minutu
Istioren kontrol-tresnak, neurri pertsonalizatuak eta OpenTracing-a Prometheus eta Grafana bidez aztertuko ditugu.
Hasteko

Bideratze sinplea Istio-n
60 minutu
Ikasi Istio-n bideratzea nola kudeatu arau errazak erabiliz.
Hasteko

Bideratze-arau aurreratuak
60 minutu
Ikus ditzagun Istioren bideratze adimenduna, sarbide-kontrola, karga orekatzea eta tasa mugatzea.
Hasteko

3. blokea - erabiltzaile aurreratua

Akatsen Injekzioa Istio-n
60 minutu
Banatutako aplikazioetan hutsak kudeatzeko eszenatokiak aztertzen ditugu, HTTP akatsak eta sareko atzerapenak sortuz, eta ingurunea leheneratzeko kaosaren ingeniaritza erabiltzen ikasten dugu.
Hasteko

Istioko etengailua
30 minutu
Siege estres-probetarako guneetarako instalatzen dugu eta backend akatsen tolerantzia nola bermatzen ikasten dugu errepikapenak, etengailuak eta igerilekuak kanporatzea erabiliz.
Hasteko

Irteera eta Istio
10 minutu
Irteera bideak erabiltzen ditugu barne-zerbitzuek kanpoko API eta zerbitzuekin elkarrekintzarako arauak sortzeko.
Hasteko

Istio eta Kiali
15 minutu
Ikasi Kiali erabiltzen zerbitzu-sarearen ikuspegi orokorra lortzeko eta eskaera eta datu-fluxuak aztertzeko.
Hasteko

Elkarrekiko TLS Istio-n
15 minutu
Istio Gateway eta VirtualService sortzen ditugu, gero elkarrekiko TLS (mTLS) eta bere ezarpenak zehatz-mehatz aztertzen ditugu.
Hasteko

3.1 blokea - Deep Dive: Istio Service Mesh mikrozerbitzuetarako

Istio Service Mesh-en mezu sorta bat
Zeri buruz da liburua:

  • Zer da zerbitzu-sare bat?
  • Istio sistema eta bere eginkizuna mikrozerbitzuen arkitekturan.
  • Istio erabiliz honako problema hauek ebazteko:
    • Akatsen tolerantzia;
    • Bideraketa;
    • Kaos probak;
    • segurtasuna,
    • Telemetria bilketa arrastoak, metrikak eta Grafana erabiliz.

Liburu bat deskargatzeko

Zerbitzu-sareei eta Istiori buruzko artikulu sorta

Saiatu zeure burua

Mezu sorta honek ez du Istioren munduan sakonki murgildu nahi. Kontzeptua aurkeztu nahi dizugu eta agian zuk zeuk Istio probatzera bultzatuko zaitugu. Guztiz doakoa da, eta Red Hat-ek OpenShift, Kubernetes, Linux edukiontziak eta Istio-rekin hasteko behar dituzun tresna guztiak eskaintzen ditu, besteak beste: Red Hat Developer OpenShift Container Plataforma, Gure gida Istio eta gure beste baliabide batzuk Service Mesh-en mikrogunea. Ez atzeratu, hasi gaur!

Istio bideratze-arauak: zerbitzu-eskaerak joan behar duten tokira bideratzea

txanda irekia ΠΈ Kubernetes zuzentzeko lan bikaina egin mikrozerbitzuak behar diren leketara bideratu. Hau da Kubernetes-en existentziaren arrazoietako bat - bideratzea eta karga orekatzea. Baina zer gertatzen da bideratze sotil eta sofistikatuagoa behar baduzu? Adibidez, mikrozerbitzu baten bi bertsio aldi berean erabiltzeko. Nola lagun dezake Istio Ibilbide Arauak hemen?

Ibilbide-arauak benetan ibilbidearen aukeraketa zehazten duten arauak dira. Sistemaren konplexutasun-maila edozein dela ere, arau horien funtzionamendu-printzipio orokorra sinplea izaten jarraitzen du: eskaerak parametro jakin batzuetan eta HTTP goiburuko balioetan oinarrituta bideratzen dira.
Ikus ditzagun adibideak:

Kubernetes lehenetsia: "50/50" hutsala

Gure adibidean, OpenShift-en mikrozerbitzu baten bi bertsio aldi berean nola erabili erakutsiko dugu, dei diezaiegun v1 eta v2. Bertsio bakoitzak bere Kubernetes podan exekutatzen du, eta modu lehenetsian round robin bideratze orekatua egiten du. Pod bakoitzak bere eskaeren zatia jasotzen du bere mikrozerbitzuen instantzia kopuruaren arabera, hau da, erreplikak. Istio-k balantze hori eskuz aldatzeko aukera ematen du.

Demagun gure gomendio zerbitzuaren bi bertsio zabaldu ditugula OpenShift-en, gomendio-v1 eta gomendio-v2.
Irudian. 1. irudiak erakusten du zerbitzu bakoitza instantzia batean adierazten denean, eskaerak berdin txandakatzen direla: 1-2-1-2-... Honela funtzionatzen du Kubernetes-en bideratzeak lehenespenez:

Istio Service Mesh-en mezu sorta bat

Bertsioen arteko banaketa haztatua

Irudian. 2. irudiak erakusten du zer gertatzen den v2 zerbitzuen erreplika kopurua batetik bitara handitzen baduzu (oc scale β€”replicas=2 deployment/recommendation-v2 komandoarekin egiten da). Ikus dezakezunez, v1 eta v2 arteko eskaerak bat-hiru ratio batean banatzen dira: 1-2-2-1-2-2-...:

Istio Service Mesh-en mezu sorta bat

Ez ikusi bertsioa Istio erabiliz

Istio errazten du eskaeren banaketa behar dugun moduan aldatzea. Adibidez, bidali trafiko guztia gomendio-v1-era soilik Istio yaml fitxategi hau erabiliz:

Istio Service Mesh-en mezu sorta bat

Honi arreta jarri behar diozu: lekak etiketen arabera hautatzen dira. Gure adibideak v1 etiketa erabiltzen du. "Pisua: 100" parametroak esan nahi du trafikoaren % 100 v1 etiketa duten zerbitzu-pod guztietara bideratuko dela.

Zuzentarauaren banaketa bertsioen artean (Canary Deployment)

Ondoren, pisu-parametroa erabiliz, trafikoa bi podetara bideratu dezakezu, horietako bakoitzean exekutatzen diren mikrozerbitzuen instantzia kopuruari jaramonik egin gabe. Adibidez, hemen trafikoaren % 90 v1era bideratzen dugu eta % 10 v2ra:

Istio Service Mesh-en mezu sorta bat

Erabiltzaile mugikorrentzako bideratze bereizia

Bukatzeko, mugikorreko erabiltzaileen trafikoa v2 zerbitzura bideratzera behartu erakutsiko dugu, eta beste guztiak v1era. Horretarako, adierazpen erregularrak erabiltzen ditugu eskaeraren goiburuko erabiltzaile-agentearen balioa aztertzeko:

Istio Service Mesh-en mezu sorta bat

Orain zure txanda da

Goiburuak analizatzeko adierazpen erregularrak dituen adibideak Istio bideratze-arauen erabilera propioak aurkitzeko motibatu behar zaitu. Gainera, hemen aukerak nahiko zabalak dira, goiburuko balioak aplikazioaren iturburu-kodean osa daitezkeelako.

Eta gogoratu Ops, ez Dev

Goiko adibideetan erakutsi dugun guztia iturburu-kodean aldaketa txikienik gabe egiten da, tira, eskaera-goiburu bereziak sortzea beharrezkoa den kasuetan izan ezik. Istio baliagarria izango da bai garatzaileentzat, zeinek, adibidez, proba-fasean erabili ahal izango baitute, bai informatika-sistemen funtzionamenduan adituentzat, zeinentzat asko lagunduko baitu ekoizpenean.

Beraz, errepika dezagun mezu sorta honen leitmotiva: ez duzu ezer aldatu behar kodean. Ez dago irudi berriak eraikitzeko edo edukiontzi berriak abiarazteko beharrik. Hori guztia kodetik kanpo inplementatzen da.

Erabili zure irudimena

Imajinatu besterik ez dago adierazpen erregularrak erabiliz goiburuak aztertzeko aukerak. Zure bezero handiena zure bertsio berezi batera birbideratu nahi duzu mikrozerbitzuak? Erraz! Chrome arakatzailearen bertsio bereizi bat behar duzu? Arazorik ez! Trafikoa ia edozein ezaugarriren arabera bideratu dezakezu.

Saiatu zeure burua

Istio, Kubernetes eta OpenShift-i buruz irakurtzea gauza bat da, baina zergatik ez dena ukitu zuk zeuk? Taldea Red Hat garatzaileen programa teknologia hauek ahalik eta azkarren menderatzen lagunduko dizun gida zehatza prestatu du (ingelesez). Eskuliburua ere kode irekikoa da %100, eta, beraz, domeinu publikoan argitaratzen da. Fitxategiak macOS, Linux eta Windows-en funtzionatzen du, eta iturburu kodea Java eta node.js bertsioetan dago eskuragarri (laster beste hizkuntza batzuetako bertsioak). Ireki dagokion git biltegia zure arakatzailean Red Hat Developer Demo.

Hurrengo postan: arazoak ederki lantzen ditugu

Istio bideratze-arauek zer egin dezaketen ikusi duzu gaur. Orain imajinatu gauza bera, baina erroreen kudeaketari dagokionez soilik. Hau da, hain zuzen, hurrengo postan hitz egingo duguna.

Iturria: www.habr.com

Gehitu iruzkin berria