I-Istio Circuit Breaker: ikhubaza izikhongozeli ezingalunganga

Iiholide ziphelile kwaye sibuyile nesithuba sethu sesibini kuthotho lwe-Istio Service Mesh.

I-Istio Circuit Breaker: ikhubaza izikhongozeli ezingalunganga

Isihloko sanamhlanje siCurcuit Breaker, esiguqulelwe kubunjineli bombane baseRashiya sithetha "umqhekezi wesiphaluka", ngolwimi oluqhelekileyo - "umqhekezi wesiphaluka". Kuphela kwi-Istio lo matshini awuqhawuli isekethe emfutshane okanye egcwele kakhulu, kodwa izikhongozeli ezingalunganga.

Oku kufuneka kusebenze ngokufanelekileyo

Xa ii-microservices zilawulwa yi-Kubernetes, umzekelo ngaphakathi kweqonga le-OpenShift, ngokuzenzekelayo zinyuka kwaye ziphantsi ngokuxhomekeke kumthwalo. Ngenxa yokuba ii-microservices ziqhutywa kwiipods, kunokubakho iimeko ezininzi ze-container microservice kwindawo enye, kwaye i-Kubernetes iya kwenza izicelo kunye nomthwalo wokulinganisela phakathi kwabo. Kwaye - ngokufanelekileyo - konke oku kufuneka kusebenze ngokugqibeleleyo.

Siyakhumbula ukuba ii-microservices zincinci kwaye zi-ephemeral. I-Ephemerality, apha ithetha ukukhululeka kokuvela kunye nokunyamalala, ihlala ijongelwa phantsi. Ukuzalwa kunye nokufa komnye umzekelo we-microservice kwi-pod zizinto ezilindelekileyo, i-OpenShift kunye ne-Kubernetes ziphethe kakuhle, kwaye yonke into isebenza kakuhle - kodwa kwakhona kwithiyori.

Indlela esebenza ngayo ngokwenene

Ngoku khawufane ucinge ukuba umzekelo othile we-microservice, oko kukuthi, isitya, uye waba yinto engenakusebenziseka: mhlawumbi ayiphenduli (impazamo ye-503), okanye, yintoni engathandekiyo, iphendula, kodwa ngokukhawuleza. Ngamanye amazwi, iba yi-glitchy okanye ayiphenduli kwizicelo, kodwa ayisuswa ngokuzenzekelayo echibini. Kufuneka kwenziwe ntoni kule meko? Ukuzama kwakhona? Ngaba ndiyisuse kwisikimu sendlela? Kwaye kuthetha ukuthini "ukucotha kakhulu" - bangaphi ngamanani, kwaye ngubani omiselayo? Mhlawumbi yinike ikhefu kwaye uzame kwakhona kamva? Ukuba kunjalo, lingakanani kamva?

Yintoni i-Pool Ejection e-Istio

Kwaye nantsi i-Istio iza kuhlangula kunye noomatshini bayo bokukhusela i-Circuit Breaker, esusa okwethutyana izitya eziphosakeleyo ukusuka kwi-router balancing pool, ukuphumeza inkqubo ye-Pool Ejection.

Ukusebenzisa iqhinga lokubona elingaphandle, i-Istio ifumanisa iipod ezigobileyo eziphuma kumgca kwaye ziwasuse kwi-pool yomthombo ngexesha elithile, elibizwa ngokuba yifestile yokulala.

Ukubonisa indlela oku kusebenza ngayo kwi-Kubernetes kwiqonga le-OpenShift, masiqale nge-screenshot yee-microservices eziqhelekileyo zokusebenza ukusuka kumzekelo kwindawo yokugcina. Iidemo zoMphuhlisi we-Red Hat. Apha sineepod ezimbini, i-v1 kunye ne-v2, nganye iqhuba isikhongozeli esinye. Xa imithetho yendlela ye-Istio ingasetyenziswanga, i-Kubernetes iyasilela kwindlela elinganayo engqukuva:

I-Istio Circuit Breaker: ikhubaza izikhongozeli ezingalunganga

Ukulungiselela ingozi

Ngaphambi kokuba wenze i-Pool Ejection, kufuneka udale umgaqo womzila we-Istio. Masithi sifuna ukusasaza izicelo phakathi kweepod kumlinganiselo we50/50. Ukongeza, siya kwandisa inani lezikhongozeli ze-v2 ukusuka kwesinye ukuya kwezimbini, ngolu hlobo:

oc scale deployment recommendation-v2 --replicas=2 -n tutorial

Ngoku sibeka umgaqo wokuhamba ukuze i-traffic isasazwe phakathi kweepod kwi-50/50 ratio.

I-Istio Circuit Breaker: ikhubaza izikhongozeli ezingalunganga
Nantsi indlela isiphumo salo mgaqo sijongeka ngayo:

I-Istio Circuit Breaker: ikhubaza izikhongozeli ezingalunganga
Unokufumana iphutha kwinto yokuba esi sikrini asikho i-50/50, kodwa i-14: 9, kodwa ekuhambeni kwexesha imeko iya kuphucula.

Ukwenza i-glitch

Ngoku makhe sikhubaze esinye sezikhongozeli ezibini ze-v2 ukuze sibe nesitya esinye esisempilweni se-v1, isitya esinye esisempilweni se-v2 kunye nesitya esingalunganga se-v2:

I-Istio Circuit Breaker: ikhubaza izikhongozeli ezingalunganga

Ukulungisa ingxaki

Ke, sinesingxobo esingalunganga, kwaye lixesha lokukhutshelwa kwePool. Ukusebenzisa uqwalaselo olulula kakhulu, siya kukhuphela ngaphandle esi sikhongozeli singaphumelelanga kuso nasiphi na isikimu sendlela yemizuzwana eyi-15 ngethemba lokuba siya kubuyela kwisimo esisempilweni (inokuba siqalise kwakhona okanye sibuyisele ukusebenza). Nantsi indlela olu qwalaselo lujongeka ngayo kunye neziphumo zomsebenzi walo:

I-Istio Circuit Breaker: ikhubaza izikhongozeli ezingalunganga
I-Istio Circuit Breaker: ikhubaza izikhongozeli ezingalunganga
Njengoko ubona, isikhongozeli esingaphumelelanga se-v2 asisasetyenziswa kwizicelo zendlela kuba sisusiwe echibini. Kodwa emva kwemizuzwana eyi-15 iya kubuyela ngokuzenzekelayo echibini. Ngokwenyani, sibonisa nje ukuba iPool Ejection isebenza njani.

Masiqale ukwakha izakhiwo

I-Pool Ejection, idibene ne-Istio's monitoring capabilities, ikuvumela ukuba uqale ukwakha isakhelo sokutshintsha ngokuzenzekelayo izitya eziphosakeleyo zokunciphisa, ukuba kungabikho ukuphelisa, ixesha lokunciphisa kunye nokungaphumeleli.
 
I-NASA ine-motto enye enkulu-ukungaphumeleli akusiyo inketho, umbhali wayo uthathwa njengomlawuli wenqwelomoya. Gene Kranz. Inokuguqulelwa kwisiRashiya ngokuthi "Ukungaphumeleli akusiyo inketho," kwaye intsingiselo apha kukuba yonke into inokwenziwa ukuba isebenze ukuba unentando eyaneleyo. Nangona kunjalo, ebomini bokwenene, ukungaphumeleli akwenzeki nje, akunakuphepheka, kuyo yonke indawo nakuyo yonke into. Kwaye indlela yokujongana nabo kwimeko ye-microservices? Ngokombono wethu, kungcono ukuba ungathembeli kumandla, kodwa kwizakhono zezikhongozeli, Kubernetes, I-Red Hat OpenShiftkwaye Istio.

I-Istio, njengoko sibhale ngasentla, izalisekisa ingcamango ye-circuit breakers, eye yazibonakalisa kakuhle kwihlabathi elibonakalayo. Kwaye nje ngokuba i-breaker circuit yombane icima icandelo lengxaki yesekethe, i-software ye-Istio ye-Circuit Breaker ivula uxhulumaniso phakathi komlambo wezicelo kunye nesitya sengxaki xa kukho into engalunganga kunye nesiphelo, umzekelo, xa umncedisi ephazamisekile okanye eqala ukuphosakela. Yehlisa isantya.

Ngaphezu koko, kwimeko yesibini kukho iingxaki ezininzi kuphela, kuba iibhuleki zesitya esinye azibangeli nje ukulibaziseka kweenkonzo ezifikelela kuyo kwaye, ngenxa yoko, zinciphisa ukusebenza kwenkqubo iyonke, kodwa ziphinda zivelise ngokuphindaphindiweyo. izicelo kwinkonzo esele iqhuba kancinane, nto leyo eyenza imeko ibe mandundu .

I-Circuit Breaker kwithiyori

I-Circuit Breaker yi-proxy elawula ukuhamba kwezicelo kwi-endpoint. Xa le ngongoma iyeka ukusebenza okanye, ngokuxhomekeke kwimimiselo ekhankanyiweyo, iqala ukucotha, i-proxy iphula umdibaniso kunye nesitya. I-traffic iphinda ithunyelwe kwezinye izikhongozeli, ngenxa nje yokulinganisa ukulayisha. Uqhagamshelo luhlala luvulekile kwifestile yokulala enikiweyo, yithi imizuzu emibini, kwaye emva koko kuthathwa njengesiqingatha-evulekileyo. Umzamo wokuthumela isicelo esilandelayo umisela imeko eyongezelelweyo yoqhagamshelwano. Ukuba yonke into ilungile ngenkonzo, unxibelelwano lubuyela kwimeko yokusebenza kwaye luvalwe kwakhona. Ukuba kusekho into engalunganga ngenkonzo, uxhulumaniso lunqanyuliwe kwaye ifestile yokulala ivuliwe kwakhona. Nantsi into ejongeka njani umzobo wemo yeSekethe yeSekethe eyenziwe lula:

I-Istio Circuit Breaker: ikhubaza izikhongozeli ezingalunganga
Kubalulekile ukuqaphela apha ukuba konke oku kwenzeka kwinqanaba, ngoko kuthetha, ulwakhiwo lwenkqubo. Ngoko ngexesha elithile kuya kufuneka ufundise izicelo zakho ukuba zisebenze kunye ne-Circuit Breaker, njengokubonelela ngexabiso elingagqibekanga ekuphenduleni okanye, ukuba kunokwenzeka, ukutyeshela ubukho benkonzo. Ipateni ye-bulkhead isetyenziselwa oku, kodwa ingaphaya kobubanzi beli nqaku.

I-Circuit Breaker ekusebenzeni

Umzekelo, siya kuqhuba iinguqulelo ezimbini zeengcebiso zethu ezincinci kwi-OpenShift. Uguqulelo 1 luya kusebenza kakuhle, kodwa kwi-v2 siya kwakha ngokulibaziseka ukulinganisa ukucotha komncedisi. Ukujonga iziphumo, sebenzisa isixhobo ungqingo:

siege -r 2 -c 20 -v customer-tutorial.$(minishift ip).nip.io

I-Istio Circuit Breaker: ikhubaza izikhongozeli ezingalunganga
Yonke into ibonakala isebenza, kodwa ngexabiso elingakanani? Xa ujonga kuqala, sinokufumaneka kwe-100%, kodwa jonga ngakumbi - ixesha lentengiselwano liphezulu kangangemizuzwana eyi-12. Oku ngokucacileyo ngumqobo kwaye kufuneka kwandiswe.

Ukwenza oku, siya kusebenzisa i-Istio ukuphelisa iifowuni zokucotha izikhongozeli. Yile nto uqwalaselo oluhambelanayo lujongeka ngathi usebenzisa iSekethe Breaker:

I-Istio Circuit Breaker: ikhubaza izikhongozeli ezingalunganga
Umgca wokugqibela kunye ne-httpMaxRequestsPerConnection ipharamitha ibonisa ukuba uxhulumaniso kufuneka luqhawulwe xa uzama ukwenza enye - okwesibini - uxhulumaniso ngaphezu kolukhoyo. Kuba isikhongozeli sethu silinganisa inkonzo ecothayo, iimeko ezinjalo ziya kuvela ngamaxesha athile, emva koko i-Istio iya kubuya impazamo ye-503, kodwa yile nto iya kubonisa ukungqingwa:

I-Istio Circuit Breaker: ikhubaza izikhongozeli ezingalunganga

Kulungile, sineCircuit Breaker, yintoni elandelayo?

Ke, siphumeze ukuvala ngokuzenzekelayo ngaphandle kokuchukumisa ikhowudi yomthombo weenkonzo ngokwazo kwaphela. Ukusebenzisa i-Circuit Breaker kunye nenkqubo ye-Pool Ejection echazwe ngasentla, sinokususa izitya ze-brake kwi-pool yomthombo kuze kube yilapho zibuyela kwisiqhelo, kwaye zikhangele isimo sazo kwi-frequency ecacisiweyo - kumzekelo wethu, le yimizuzu emibini (i-parameter ye-sleepWindow).

Qaphela ukuba ukukwazi kwesicelo ukuphendula kwimpazamo ye-503 kusasetwa kwinqanaba lekhowudi yomthombo. Kukho izicwangciso ezininzi zokusebenzisa i-Circuit Breaker, kuxhomekeke kwimeko.

Kwiposi elandelayo: Siza kuthetha ngokulandelela kunye nokubeka iliso esele yakhelwe ngaphakathi okanye eyongeziweyo ngokulula kwi-Istio, kunye nendlela yokwazisa ngabom iimpazamo kwinkqubo.

umthombo: www.habr.com

Yongeza izimvo