Cur air bhog dorcha ann an Istio: Seirbheisean Dìomhair

“Is e cunnart an t-ainm meadhanach agam,” thuirt Austin Powers, fear dìomhaireachd eadar-nàiseanta. Ach chan eil na tha air a mheas gu mòr le sàr riochdairean agus seirbheisean fiosrachaidh idir freagarrach airson seirbheisean coimpiutair, far a bheil dòrainn mòran nas fheàrr na cunnart.

Cur air bhog dorcha ann an Istio: Seirbheisean Dìomhair

Agus tha Istio, còmhla ri OpenShift agus Kubernetes, a’ dèanamh a bhith a’ cleachdadh microservices dha-rìribh dòrainneach agus ro-innseach - agus tha sin sgoinneil. Bruidhnidh sinn mu dheidhinn seo agus mòran a bharrachd anns a’ cheathramh agus post mu dheireadh san t-sreath Istio.

Nuair a tha dòrainn ceart

Anns a 'chùis againn, chan eil sgìth a' tachairt ach anns an ìre mu dheireadh, nuair nach eil air fhàgail ach suidhe agus coimhead air a 'phròiseas. Ach airson seo feumaidh tu a h-uile càil a rèiteachadh an toiseach, agus tha tòrr rudan inntinneach a’ feitheamh riut an seo.

Nuair a bhios tu a’ cleachdadh dreach ùr den bhathar-bog agad, is fhiach beachdachadh air a h-uile roghainn airson cunnartan a lughdachadh. Tha ruith ann an co-shìnte na dhòigh fìor chumhachdach agus dearbhte airson deuchainn, agus leigidh Istio leat “seirbheis dhìomhair” (dreach falaichte den microservice agad) a chleachdadh gus seo a dhèanamh gun a bhith a’ cur bacadh air an t-siostam toraidh. Tha eadhon teirm sònraichte ann airson seo - “Dark Launch”, a tha e fhèin air a chuir an gnìomh le gnìomh leis an aon ainm brathaidh “trafaic mirroring”.

Thoir an aire gu bheil a’ chiad seantans den pharagraf roimhe a’ cleachdadh an fhacail “deploy” seach “release”. Bu chòir dhut a bhith comasach air am meanbh-sheirbheis agad a chuir a-steach - agus, gu dearbh, a chleachdadh cho tric ‘s a thogras tu. Feumaidh an t-seirbheis seo a bhith comasach air trafaic fhaighinn agus a phròiseasadh, toraidhean a thoirt gu buil, agus cuideachd sgrìobhadh gu logaichean agus sgrùdadh. Ach aig an aon àm, chan fheum an t-seirbheis seo fhèin a bhith air a leigeil ma sgaoil gu cinneasachadh. Chan eil cleachdadh agus leigeil às bathar-bog an-còmhnaidh an aon rud. Faodaidh tu cleachdadh uair sam bith a tha thu ag iarraidh, ach leig às dìreach nuair a bhios tu deiseil.

Tha eagrachadh dòrainn inntinneach

Thoir sùil air an riaghailt slighe Istio a leanas, a bhios a’ stiùireadh gach iarrtas HTTP gu moladh microservice v1 (a h-uile eisimpleir air a thoirt bho Istio Tutorial Repo GitHub), agus aig an aon àm gan sgàthan don mholadh v2 microservice:

Cur air bhog dorcha ann an Istio: Seirbheisean Dìomhair
Thoir aire don leubail mirror: aig bonn na sgrìn - is e seo a tha a 'suidheachadh sgàthan trafaig. Tha, tha e cho sìmplidh sin!

Is e toradh na riaghailt seo gun lean an siostam toraidh agad (v1) a’ làimhseachadh iarrtasan a tha a’ tighinn a-steach, ach bidh na h-iarrtasan iad fhèin air an nochdadh gu neo-chinnteach gu v2, is e sin, thèid na dùblaidhean iomlan aca ann. San dòigh seo, faodaidh tu deuchainn a dhèanamh air v2 ann an suidheachaidhean fìor - air dàta fìor agus trafaic - gun a bhith a ’cur bacadh air dòigh sam bith air obrachadh an t-siostam toraidh. A bheil seo a’ fàgail deuchainn eagrachaidh dòrainneach? Tha, gu cinnteach. Ach tha e air a dhèanamh ann an dòigh inntinneach.

Cuireamaid drama ris

Thoir an aire gu bheil e riatanach sa chòd v2 ullachadh airson suidheachaidhean far am faodadh iarrtasan a thig a-steach leantainn gu atharrachaidhean dàta. Tha na h-iarrtasan fhèin air an nochdadh gu furasta agus gu follaiseach, ach tha an roghainn dòigh giollachd san deuchainn an urra riut fhèin - agus tha seo beagan draghail.

Dèanamaid puing chudromach a-rithist

Faodar cur air bhog dìomhair le sgàthan trafaic (Dork Launch / Request Mirroring) a dhèanamh gun a bhith a ’toirt buaidh air a’ chòd ann an dòigh sam bith.

Biadh airson smaoineachadh

Dè ma tha an t-àite far a bheilear a’ sealltainn iarrtasan a’ cur cuid dhiubh chan ann gu v1, ach gu v2? Mar eisimpleir, aon sa cheud de na h-iarrtasan air fad no dìreach iarrtasan bho bhuidheann sònraichte de luchd-cleachdaidh. Agus an uairsin, mar-thà a 'coimhead air mar a tha v2 ag obair, mean air mhean gluais a h-uile iarrtas chun dreach ùr. No a chaochladh, till a h-uile càil gu v1 ma thèid rudeigin ceàrr air v2. Tha mi a’ smaoineachadh gur e Canary Deployment a chanar ris. a 'dol air ais gu mèinneadh, agus nam biodh e bho thùs Ruiseanach, is dòcha gum biodh iomradh ann air cait), agus a-nis bheir sinn sùil nas mionaidiche air seo.

Cleachdadh Canary ann an Istio: coimiseanadh nas sìmplidhe

Gu cùramach agus mean air mhean

Tha brìgh a’ mhodail cleachdadh Canary Deploy gu math sìmplidh: nuair a chuireas tu air bhog dreach ùr den bhathar-bog agad (anns a’ chùis againn, meanbh-sheirbheis), bheir thu cothrom air an toiseach do bhuidheann bheag de luchd-cleachdaidh. Ma thèid a h-uile càil gu math, bidh thu ag àrdachadh a’ chuantail seo gu slaodach gus an tòisich an dreach ùr ag obair, no - mura dèan e - mu dheireadh imrich a h-uile neach-cleachdaidh thuige. Le bhith a’ toirt a-steach dreach ùr gu smaoineachail agus mean air mhean agus ag atharrachadh luchd-cleachdaidh thuige ann an dòigh fo smachd, faodaidh tu cunnartan a lughdachadh agus fios air ais a mheudachadh.

Gu dearbh, bidh Istio a’ sìmpleachadh Cleachdadh Canary le bhith a’ tabhann grunn roghainnean math airson slighe iarrtasan tuigseach. Agus tha, faodar seo uile a dhèanamh gun a bhith a’ beantainn ris a’ chòd stòr agad ann an dòigh sam bith.

A 'sìoladh a' bhrabhsair

Is e aon de na slatan-tomhais slighe as sìmplidh ath-stiùireadh stèidhichte air brabhsair. Canaidh sinn nach eil thu ag iarraidh ach iarrtasan bho bhrobhsairean Safari a dhol gu v2. Seo mar a tha e air a dhèanamh:

Cur air bhog dorcha ann an Istio: Seirbheisean Dìomhair
Feuch an cuir sinn an riaghailt slighe seo an sàs agus an uairsin cleachd an àithne curl Samhlaichidh sinn fìor iarrtasan don microservice ann an lùb. Mar a chì thu san dealbh, thèid iad uile gu v1:

Cur air bhog dorcha ann an Istio: Seirbheisean Dìomhair
Càite bheil an trafaic air v2? Leis gun tàinig a h-uile iarrtas nar n-eisimpleir a-mhàin bhon loidhne-àithne againn fhìn, dìreach chan eil e ann. Ach thoir aire do na loidhnichean as ìsle air an sgrion gu h-àrd: tha seo na fhreagairt don fhìrinn gun do chuir sinn an gnìomh iarrtas bhon bhrobhsair Safari, a rinn seo an uair sin:

Cur air bhog dorcha ann an Istio: Seirbheisean Dìomhair

Cumhachd gun chrìoch

Tha sinn mu thràth air sgrìobhadh gu bheil abairtean cunbhalach a’ toirt seachad comasan fìor chumhachdach airson iarrtasan slighe. Thoir sùil air an eisimpleir a leanas (tha sinn a’ smaoineachadh gun tuig thu dè nì e):

Cur air bhog dorcha ann an Istio: Seirbheisean Dìomhair
Roimhe seo is dòcha gu bheil beachd agad air dè as urrainn abairtean cunbhalach a dhèanamh.

Dèan Glic

Leigidh slighe glic, gu sònraichte a bhith a’ giullachd cinn pacaidean a’ cleachdadh abairtean cunbhalach, leat trafaic a stiùireadh mar a tha thu ag iarraidh. Agus tha seo gu mòr a 'sìmpleachadh buileachadh còd ùr - tha e sìmplidh, chan fheum e an còd fhèin atharrachadh, agus ma tha sin riatanach, faodar a h-uile càil a thilleadh gu luath mar a bha e.

A bheil ùidh agad?

A bheil thu airson feuchainn air Istio, Kubernetes agus OpenShift air a’ choimpiutair agad? Sgioba Sgioba leasaiche Red Hat ullachadh sàr-mhath leabhar-teacs air a’ chuspair seo agus rinn e na faidhlichean uile na chois rim faighinn gu poblach. Mar sin rachaibh air adhart agus na diùlt dad dhut fhèin.

Istio Egress: falbh tron ​​​​bhùth cuimhneachaidh

Le bhith a’ cleachdadh Istio còmhla ri Red Hat OpenShift agus Kubernetes, faodaidh tu do bheatha a dhèanamh le microservices gu math nas fhasa. Tha mogal seirbheis Istio falaichte am broinn pods Kubernetes, agus tha do chòd a’ ruith (sa mhòr-chuid) leis fhèin. Coileanadh, furasta atharrachadh, lorg, msaa - tha seo uile furasta a chleachdadh le taing do bhith a ’cleachdadh soithichean taobh càr. Ach dè ma dh’ fheumas am microservice agad conaltradh le seirbheisean eile a tha taobh a-muigh an t-siostam OpenShift-Kubernetes agad?

Seo far a bheil Istio Egress a’ tighinn gu teasairginn. Ann an ùine ghoirid, leigidh e leat faighinn gu goireasan (leugh: “seirbheisean”) nach eil nam pàirt den t-siostam agad de pods Kubernetes. Mura dèan thu rèiteachadh a bharrachd, an uairsin ann an àrainneachd àrainneachd Istio Egress chan eil trafaic air a stiùireadh ach taobh a-staigh cruinneachadh de pods agus eadar cruinneachaidhean mar sin stèidhichte air clàran IP a-staigh. Agus bidh an leithid de chuilean ag obair glè mhath fhad ‘s nach fheum thu cothrom air seirbheisean bhon taobh a-muigh.

Leigidh Egress leat na clàran IP gu h-àrd a sheachnadh, an dàrna cuid stèidhichte air riaghailtean Egress no air raon de sheòlaidhean IP.

Canaidh sinn gu bheil prògram Java againn a nì iarrtas GET gu httpbin.org/headers.

(Tha httpbin.org na ghoireas freagarrach airson a bhith a’ dèanamh deuchainn air iarrtasan seirbheis a tha a’ dol a-mach.)

Ma chuireas tu a-steach air an loidhne-àithne curl http://httpbin.org/headers, chì sinn na leanas:

Cur air bhog dorcha ann an Istio: Seirbheisean Dìomhair
No faodaidh tu an aon sheòladh fhosgladh sa bhrobhsair:

Cur air bhog dorcha ann an Istio: Seirbheisean Dìomhair
Mar a chì thu, tha an t-seirbheis a tha suidhichte an sin dìreach a’ tilleadh na cinn a chaidh a thoirt thuige.

Tha sinn a’ dol an àite in-mhalairt ceann-air

A-nis gabhamaid còd Java na seirbheis seo, taobh a-muigh ar siostam, agus ruith e leinn fhìn, far a bheil, cuimhnich, tha Istio air a chuir a-steach. (Faodaidh tu seo a dhèanamh leat fhèin le bhith a’ cur fios gu ar teagasg Istio.) An dèidh dhuinn an ìomhaigh iomchaidh a thogail agus a chuir air bhog air an àrd-ùrlar OpenShift, canaidh sinn an t-seirbheis seo leis an àithne curl egresshttpbin-istioegress.$(minishift ip).nip.io, às deidh sin chì sinn seo air an sgrion:

Cur air bhog dorcha ann an Istio: Seirbheisean Dìomhair
Oops, dè thachair? Bha a h-uile dad dìreach ag obair. Dè a tha an sloinneadh Not Found a' ciallachadh? Rinn sinn dìreach e dha curl.

Leudachadh clàran IP chun an eadar-lìn gu lèir

Bu chòir a’ choire (no taing) a thoirt do Istio airson seo. Às deidh na h-uile, is e dìreach soithichean taobh-càr a tha ann an Istio a tha an urra ri lorg agus slighe (agus tòrr rudan eile air an do bhruidhinn sinn na bu thràithe). Air an adhbhar seo, chan eil fios aig clàran IP ach dè a tha taobh a-staigh an t-siostam brabhsair agad. Agus tha httpbin.org taobh a-muigh agus mar sin ruigsinneach. Agus seo far a bheil Istio Egress a’ tighinn gu teasairginn - às aonais an atharrachadh as lugha air a’ chòd stòr agad.

Tha an riaghailt Egress gu h-ìosal a’ toirt air Istio sgrùdadh a dhèanamh (ma tha sin riatanach, an uairsin air feadh an eadar-lìn gu lèir) airson an t-seirbheis a tha a dhìth, sa chùis seo, httpbin.org. Mar a chì thu bhon fhaidhle seo (egress_httpbin.yml), tha an gnìomh an seo gu math sìmplidh:

Cur air bhog dorcha ann an Istio: Seirbheisean Dìomhair
Chan eil air fhàgail ach an riaghailt seo a chur an gnìomh:

istioctl create -f egress_httpbin.yml -n istioegress

Chì thu riaghailtean Egress leis an àithne istioctl get egressrules:

Cur air bhog dorcha ann an Istio: Seirbheisean Dìomhair
Agus mu dheireadh, bidh sinn a 'ruith an àithne a-rithist curl - agus chì sinn gu bheil a h-uile càil ag obair:

Cur air bhog dorcha ann an Istio: Seirbheisean Dìomhair

Tha sinn a’ smaoineachadh gu fosgailte

Mar a chì thu, leigidh Istio leat eadar-obrachadh leis an t-saoghal a-muigh a chuir air dòigh. Ann am faclan eile, faodaidh tu fhathast seirbheisean OpenShift a chruthachadh agus an riaghladh tro Kubernetes, a ’cumail a h-uile càil ann am pods a tha a’ dol suas is sìos mar a dh ’fheumar. Agus aig an aon àm, faodaidh tu faighinn gu sàbhailte gu seirbheisean taobh a-muigh na h-àrainneachd agad. Agus tha, bidh sinn a-rithist a-rithist gum faodar seo a dhèanamh gun a bhith a’ beantainn ris a’ chòd agad ann an dòigh sam bith.

B’ e seo am post mu dheireadh san t-sreath air Istio. Cùm sùil - tha tòrr rudan inntinneach romhainn!

Source: www.habr.com

Cuir beachd ann