Sreath de phuist air Istio Service Mesh

Tha sinn a’ tòiseachadh sreath de phuist a’ taisbeanadh cuid de na h-iomadh comas a th’ aig an Istio Service Mesh nuair a thèid sinn còmhla ri Red Hat OpenShift agus Kubernetes.

Sreath de phuist air Istio Service Mesh

Pàirt a h-aon, an-diugh:

  • Mìnichidh sinn bun-bheachd soithichean taobh càr Kubernetes agus cruthaich sinn leitmotif an t-sreath phuist seo: "Chan fheum thu dad sa chòd agad atharrachadh".
  • Bheir sinn a-steach an rud bunaiteach mu riaghailtean slighe Istio. Tha a h-uile feart Istio eile air a thogail orra, leis gur e na riaghailtean a leigeas leat trafaic a stiùireadh gu microservices, a’ cleachdadh faidhlichean YAML taobh a-muigh còd na seirbheis. Tha sinn cuideachd a’ beachdachadh air sgeama cleachdadh Canary Deploy. Bonus na Bliadhn 'Ùire - 10 leasanan eadar-ghnìomhach air Istio


Innsidh pàirt a dhà, a’ tighinn a dh’ aithghearr, dhut:

  • Mar a bhios Istio a’ cleachdadh Pool Ejection ann an co-bhonn ri Circuit Breaker agus seallaidh e mar a leigeas Istio leat pod marbh no droch choileanadh a thoirt air falbh bhon chuairt cothromachaidh.
  • Bheir sinn sùil cuideachd air a’ chuspair Circuit Breaker bhon chiad phost gus faicinn mar a ghabhas Istio a chleachdadh an seo. Seallaidh sinn dhut mar as urrainn dhut trafaic a stiùireadh agus mearachdan lìonra a làimhseachadh a’ cleachdadh faidhlichean rèiteachaidh YAML agus òrdughan crìochnachaidh às aonais na h-atharrachaidhean as lugha ann an còd na seirbheis.

Pàirt a trì:

  • Sgeulachd mu lorg agus sgrùdadh, a tha mar-thà air a thogail a-steach no air a chur ri Istio gu furasta. Seallaidh sinn dhut mar a chleachdas tu innealan mar Prometheus, Jaeger, agus Grafana an co-bhonn ri sgèileadh OpenShift gus ailtireachd microservice a riaghladh gun oidhirp.
  • Bidh sinn a’ gluasad bho bhith a’ sgrùdadh agus a’ làimhseachadh mhearachdan gu bhith gan toirt a-steach don t-siostam a dh’aona ghnothach. Ann am faclan eile, bidh sinn ag ionnsachadh mar a nì sinn in-stealladh locht gun a bhith ag atharrachadh a ’chòd stòr, rud a tha glè chudromach bho shealladh deuchainn - oir ma dh’ atharraicheas tu an còd fhèin airson seo, tha cunnart ann mearachdan a bharrachd a thoirt a-steach.

Mu dheireadh, anns an dreuchd mu dheireadh air Istio Service Mesh:

  • Rachamaid chun an Taobh Dorcha. Nas mionaidiche, ionnsaichidh sinn an sgeama Dark Launch a chleachdadh, nuair a thèid an còd a chleachdadh agus a dhearbhadh gu dìreach air dàta toraidh, ach nach toir e buaidh air gnìomhachd an t-siostaim ann an dòigh sam bith. Seo far a bheil comas Istio airson trafaic a sgaradh a’ tighinn gu feum. Agus is e an comas deuchainn a dhèanamh air dàta cinneasachaidh beò gun a bhith a’ toirt buaidh air gnìomhachd an t-siostam sabaid ann an dòigh sam bith an dòigh dearbhaidh as cinntiche.
  • A’ togail air Dark Launch, seallaidh sinn dhut mar a chleachdas tu am modal Canary Deployment gus cunnart a lughdachadh agus a dhèanamh nas fhasa còd ùr a thoirt gu cinneasachadh. Tha Canary Deployment fhèin fada bho bhith ùr, ach leigidh Istio leat an sgeama seo a chuir an gnìomh le dìreach faidhlichean YAML sìmplidh.
  • Mu dheireadh, seallaidh sinn dhut mar a chleachdas tu Istio Egress gus cothrom air seirbheisean a thoirt dhaibhsan a tha taobh a-muigh na cruinneachaidhean agad gus comasan Istio a chleachdadh nuair a bhios tu ag obair leis an eadar-lìn.

Mar sin, seo sinn ...

Innealan sgrùdaidh is riaghlaidh Istio - a h-uile dad a dh ’fheumas tu gus microservices a chuir air dòigh ann am mogal seirbheis mogal seirbheis.

Dè a th’ ann an Istio Service Mesh

Bidh mogal seirbheis a’ cur an gnìomh gnìomhan leithid sgrùdadh trafaic, smachd ruigsinneachd, lorg, tèarainteachd, fulangas sgàinidhean agus rudan feumail eile airson buidheann de sheirbheisean. Leigidh Istio leat seo a dhèanamh às aonais na h-atharrachaidhean as lugha air còd nan seirbheisean fhèin. Dè an dìomhair a th’ aig draoidheachd? Bidh Istio a’ ceangal an neach-ionaid aige fhèin ri gach seirbheis ann an cruth inneal-càr taobh (is e càr-baidhsagal a th’ ann an càr-taobh), agus às deidh sin bidh a h-uile trafaic chun t-seirbheis seo a’ dol tron ​​​​neach-ionaid, a bhios, air a stiùireadh le poileasaidhean sònraichte, a’ co-dhùnadh ciamar, cuin agus co-dhiù a tha an trafaic seo bu chòir an t-seirbheis a ruighinn idir. Tha Istio cuideachd ga dhèanamh comasach dòighean adhartach DevOps a chuir an gnìomh leithid cleachdadh canary, brisidh chuairtean, in-stealladh sgàinidhean agus mòran eile.

Mar a tha Istio ag obair le soithichean agus Kubernetes

Tha mogal seirbheis Istio na bhuileachadh taobh-chàr de gach nì a dh’ fheumar gus meanbh-sheirbheisean a chruthachadh agus a riaghladh: sgrùdadh, lorg, luchd-brisidh chuairtean, slighe, cothromachadh luchdan, in-stealladh sgàinidhean, ath-chuiridhean, amannan a-mach, sgàthan, smachd ruigsinneachd, cuingealachadh reataichean agus mòran a bharrachd. Agus ged a tha tunna de leabharlannan ann an-diugh gus na gnìomhan sin a chuir an gnìomh gu dìreach ann an còd, le Istio gheibh thu na h-aon rudan gun a bhith ag atharrachadh dad sa chòd agad.

A rèir a 'mhodail sidecar, tha Istio a' ruith ann an soitheach Linux, a tha suidhichte ann an aon Kubernetes-pod le seirbheis fo smachd agus a’ stealladh agus a’ toirt a-mach comas-gnìomh agus fiosrachadh a rèir an rèiteachaidh a chaidh a thoirt seachad. Tha sinn a’ daingneachadh gur e seo an rèiteachadh agad fhèin, agus gu bheil e a’ fuireach taobh a-muigh do chòd. Mar sin, bidh an còd tòrr nas sìmplidh agus nas giorra.

Is e an rud a tha cudromach cuideachd gu bheil e coltach nach eil am pàirt obrachaidh de mhicro-sheirbheisean ceangailte ann an dòigh sam bith ris a ’chòd fhèin, a tha a’ ciallachadh gum faodar an obair aca a ghluasad gu sàbhailte gu eòlaichean IT. Gu dearbh, carson a bu chòir don leasaiche a bhith cunntachail airson luchd-brisidh cuairteachaidh agus in-stealladh sgàinidhean? React, tha, ach pròiseas iad agus cruthaich iad? Ma bheir thu air falbh seo uile bhon chòd, bidh e comasach dha prògramadairean fòcas iomlan a chuir air gnìomhachd an tagraidh. Agus bidh an còd fhèin nas giorra agus nas sìmplidh.

Mogal seirbheis

Tha Istio, a bhios a’ cur an gnìomh gnìomhan airson a bhith a’ riaghladh meanbh-sheirbheisean taobh a-muigh a’ chòd aca, na bhun-bheachd air mogal seirbheis. Ann am faclan eile, is e buidheann co-òrdanaichte de aon binaries no barrachd a th’ ann a tha nam mogal de ghnìomhan lìonra.

Mar a tha Istio ag obair le microservices

Seo mar a tha obair shoithichean taobh-chàraichean coltach ann an co-bhonn ris Kubernetes и Minishift sealladh sùla eun: cuir air bhog eisimpleir de Minishift, cruthaich pròiseact airson Istio (canaidh sinn “istio-system”) ris, stàlaich agus ruith a h-uile pàirt co-cheangailte ri Istio. An uairsin, mar a bhios tu a’ cruthachadh phròiseactan agus pods, cuiridh tu fiosrachadh rèiteachaidh ris na cleachdaidhean agad, agus tòisichidh na pods agad a’ cleachdadh Istio. Tha diagram nas sìmplidh a 'coimhead mar seo:

Sreath de phuist air Istio Service Mesh

A-nis faodaidh tu roghainnean Istio atharrachadh ann an òrdugh, mar eisimpleir, gus in-stealladh locht, taic a chuir air dòigh Cleachdadh Canary no feartan Istio eile - agus seo uile gun a bhith a’ beantainn ri còd nan tagraidhean fhèin. Canaidh sinn gu bheil thu airson a h-uile trafaic lìn ath-stiùireadh bho luchd-cleachdaidh an neach-dèiligidh as motha agad (Foo Corporation) gu dreach ùr den làrach. Gus seo a dhèanamh, dìreach cruthaich riaghailt slighe Istio a choimheadas airson @foocorporation.com anns an ID cleachdaiche agus ath-stiùireadh a rèir sin. Airson a h-uile neach-cleachdaidh eile, chan atharraich dad. Anns an eadar-ama, nì thu deuchainn gu socair air an dreach ùr den làrach. Agus thoir an aire, chan fheum thu luchd-leasachaidh a thoirt a-steach idir airson seo.

Agus am feum thu pàigheadh ​​gu daor air a shon?

Chan eil idir. Tha Istio gu math luath agus sgrìobhte a-steach Go agus a 'cruthachadh glè bheag os cionn. A bharrachd air an sin, tha an call a dh’ fhaodadh a bhith ann an cinneasachd air-loidhne air a chothromachadh le àrdachadh ann an cinneasachd leasaiche. Co-dhiù ann an teòiridh: na dì-chuimhnich gu bheil ùine luchd-leasachaidh luachmhor. A thaobh cosgaisean bathar-bog, is e bathar-bog stòr fosgailte a th’ ann an Istio, gus am faigh thu agus gun cleachd thu e an-asgaidh.

Maighstir e thu fhèin

Tha Sgioba Eòlas Leasachaidh Red Hat air eòlas-làimhe domhainn a leasachadh stiùireadh by Istio (ann am Beurla). Bidh e a’ ruith air Linux, macOS agus Windows, agus tha an còd ri fhaighinn ann an Java agus Node.js.

10 leasanan eadar-ghnìomhach air Istio

Bloc 1 - Airson luchd-tòiseachaidh

Ro-ràdh do Istio
Mionaidean 30
Nach faigh sinn eòlas air Service Mesh, ionnsaich mar a stàlaicheas tu Istio ann am brabhsair OpenShift Kubernetes.
tòiseachadh

A’ cleachdadh microservices ann an Istio
Mionaidean 30
Bidh sinn a’ cleachdadh Istio gus trì meanbh-sheirbheisean a chleachdadh le Spring Boot agus Vert.x.
tòiseachadh

Bloc 2 - ìre eadar-mheadhanach

Sgrùdadh agus lorg ann an Istio
Mionaidean 60
Nì sinn sgrùdadh air innealan sgrùdaidh togte Istio, metrics àbhaisteach, agus OpenTracing tro Prometheus agus Grafana.
tòiseachadh

Slighe sìmplidh ann an Istio
Mionaidean 60
Ionnsaich mar a stiùireas tu slighe ann an Istio a’ cleachdadh riaghailtean sìmplidh.
tòiseachadh

Riaghailtean slighe adhartach
Mionaidean 60
Bheir sinn sùil air slighe snasail Istio, smachd ruigsinneachd, cothromachadh luchdan agus cuingealachadh reataichean.
tòiseachadh

Bloc 3 - cleachdaiche adhartach

In-stealladh sgàineadh ann an Istio
Mionaidean 60
Bidh sinn a’ sgrùdadh shuidheachaidhean làimhseachaidh fàilligidh ann an tagraidhean sgaoilte, a’ cruthachadh mhearachdan HTTP agus dàil lìonraidh, agus ag ionnsachadh innleadaireachd chaos a chleachdadh gus an àrainneachd ath-nuadhachadh.
tòiseachadh

Circuit Breaker ann an Istio
Mionaidean 30
Bidh sinn a’ stàladh Sèist airson làraich deuchainn cuideam agus ag ionnsachadh mar a nì sinn cinnteach à fulangas cùl-taic le bhith a’ cleachdadh ath-chuiridhean, inneal-brisidh agus cuir a-mach amar.
tòiseachadh

Egress agus Istio
Mionaidean 10
Bidh sinn a’ cleachdadh slighean Egress gus riaghailtean a chruthachadh airson eadar-obrachadh sheirbheisean a-staigh le APIan agus seirbheisean taobh a-muigh.
tòiseachadh

Istio agus Kiali
Mionaidean 15
Ionnsaich mar a chleachdas tu Kiali gus sealladh farsaing fhaighinn air mogal na seirbheis agus sgrùdadh a dhèanamh air sruthan iarrtasan is dàta.
tòiseachadh

TLS dha chèile ann an Istio
Mionaidean 15
Bidh sinn a’ cruthachadh Istio Gateway agus VirtualService, an uairsin bidh sinn a’ sgrùdadh TLS (mTLS) agus na roghainnean aige gu mionaideach.
tòiseachadh

Bloc 3.1 - Dàibheadh ​​​​domhainn: Istio Service Mesh airson Microservices

Sreath de phuist air Istio Service Mesh
Cò mu dheidhinn a tha an leabhar:

  • Dè a th’ ann am mogal seirbheis?
  • An siostam Istio agus a dhreuchd ann an ailtireachd microservice.
  • A’ cleachdadh Istio gus na duilgheadasan a leanas fhuasgladh:
    • Fulangas lochdan;
    • Ruith;
    • deuchainn caos;
    • Tèarainteachd;
    • Cruinneachadh telemetry a’ cleachdadh lorgan, meatrach agus Grafana.

Gus leabhar a luchdachadh sìos

Sreath de artaigilean air meshes seirbheis agus Istio

Feuch e fhèin

Chan eil an t-sreath phuist seo an dùil dàibheadh ​​​​domhainn a thoirt a-steach do shaoghal Istio. Tha sinn dìreach airson do thoirt a-steach don bhun-bheachd agus is dòcha do bhrosnachadh gus Istio fheuchainn dhut fhèin. Tha e gu tur an-asgaidh a dhèanamh, agus tha Red Hat a’ toirt seachad na h-innealan gu lèir a dh’ fheumas tu airson tòiseachadh le OpenShift, Kubernetes, soithichean Linux, agus Istio, a’ toirt a-steach: Àrd-ùrlar gleidhidh OpenShift leasaiche Red Hat, ar treòir do Istio agus goireasan eile air ar son microsite air seirbheis mogal. Na cuir dàil, tòisich an-diugh!

Istio riaghailtean slighe: a’ stiùireadh iarrtasan seirbheis far am feum iad a dhol

openshift и Kubernetes dean obair ionmholta a thaobh sheòladh meanbh-sheirbheisean air a ghluasad gu na pods riatanach. Is e seo aon de na h-adhbharan airson gu bheil Kubernetes ann - slighe agus cothromachadh luchdan. Ach dè ma tha feum agad air slighe nas seòlta agus nas ionnsaichte? Mar eisimpleir, aig an aon àm a 'cleachdadh dà dhreach de microservice. Ciamar a chuidicheas Istio Route Rules an seo?

Is e riaghailtean slighe na riaghailtean a tha a’ dearbhadh an roghainn slighe. A dh'aindeoin ìre iom-fhillteachd an t-siostaim, tha prionnsabal obrachaidh coitcheann nan riaghailtean sin fhathast sìmplidh: tha iarrtasan air an stiùireadh a rèir crìochan sònraichte agus luachan cinn HTTP.
Bheir sinn sùil air eisimpleirean:

Kubernetes bunaiteach: beag "50/50"

Anns an eisimpleir againn, seallaidh sinn mar a chleachdas tu dà dhreach de mhicro-sheirbheis aig an aon àm ann an OpenShift, canaidh sinn iad v1 agus v2. Bidh gach dreach a’ ruith na pod Kubernetes fhèin, agus gu gnàthach bidh e a’ ruith slighe robin cruinn cothromach. Bidh gach pod a ’faighinn a chuibhreann de dh’ iarrtasan stèidhichte air an àireamh de shuidheachaidhean microservice, ann am faclan eile, mac-samhail. Leigidh Istio leat an cothromachadh seo atharrachadh le làimh.

Canaidh sinn gun do chleachd sinn dà dhreach den t-seirbheis molaidh againn air OpenShift, moladh-v1 agus moladh-v2.
Ann am Fig. Tha Figear 1 a’ sealltainn nuair a tha gach seirbheis air a riochdachadh ann an aon suidheachadh, gu bheil iarrtasan a’ dol eadar iad gu cothromach: 1-2-1-2-... Seo mar a bhios slighe Kubernetes ag obair gu bunaiteach:

Sreath de phuist air Istio Service Mesh

Sgaoileadh cuideam eadar dreachan

Ann am Fig. Tha Figear 2 a’ sealltainn dè thachras ma mheudaicheas tu an àireamh de mhac-samhail seirbheis v2 bho aon gu dhà (tha seo air a dhèanamh leis an sgèile oc -replicas = 2 cleachdadh / moladh-v2 àithne). Mar a chì thu, tha iarrtasan eadar v1 agus v2 a-nis air an roinn ann an co-mheas aon-gu-trì: 1-2-2-1-2-2-…:

Sreath de phuist air Istio Service Mesh

Leig seachad an dreach a’ cleachdadh Istio

Tha Istio ga dhèanamh furasta cuairteachadh iarrtasan atharrachadh san dòigh a dh’ fheumas sinn. Mar eisimpleir, cuir a h-uile trafaic a-mhàin gu moladh-v1 a’ cleachdadh am faidhle Istio yaml a leanas:

Sreath de phuist air Istio Service Mesh

An seo feumaidh tu aire a thoirt dha seo: tha pods air an taghadh a rèir nan bileagan. Bidh an eisimpleir againn a’ cleachdadh leubail v1. Tha am paramadair “cuideam: 100” a’ ciallachadh gun tèid 100% den trafaic a chuir gu gach pod seirbheis aig a bheil an leubail v1.

Sgaoileadh stiùiridh eadar dreachan (Cleachdadh Canary)

An ath rud, a’ cleachdadh am paramadair cuideam, faodaidh tu trafaic a stiùireadh chun an dà pod, gun aire a thoirt don àireamh de shuidheachaidhean microservice a tha a’ ruith anns gach fear dhiubh. Mar eisimpleir, an seo bidh sinn a’ stiùireadh 90% den trafaic gu v1 agus 10% gu v2:

Sreath de phuist air Istio Service Mesh

Slighe air leth airson luchd-cleachdaidh gluasadach

Gu crìch, seallaidh sinn mar a bheir sinn air trafaic luchd-cleachdaidh gluasadach a chuir gu seirbheis v2, agus a h-uile duine eile gu v1. Gus seo a dhèanamh, bidh sinn a’ cleachdadh abairtean cunbhalach gus luach neach-cleachdaidh a sgrùdadh ann am bann-cinn an iarrtais:

Sreath de phuist air Istio Service Mesh

A-nis is e do chothrom a th’ ann

Bu chòir don eisimpleir le abairtean cunbhalach airson parsadh cinn-cinn do bhrosnachadh gus na cleachdaidhean agad fhèin a lorg de riaghailtean slighe Istio. A bharrachd air an sin, tha na cothroman an seo gu math farsaing, oir faodar luachan cinn a chruthachadh ann an còd stòr an tagraidh.

Agus cuimhnich gur e Ops, chan e Dev

Tha a h-uile dad a sheall sinn anns na h-eisimpleirean gu h-àrd air a dhèanamh às aonais na h-atharrachaidhean as lugha anns a’ chòd stòr, uill, ach a-mhàin na cùisean sin far a bheil feum air cinn-cinn iarrtasan sònraichte a ghineadh. Bidh Istio feumail an dà chuid do luchd-leasachaidh, a bhios, mar eisimpleir, comasach air a chleachdadh aig ìre deuchainn, agus do eòlaichean ann an obrachadh siostaman IT, dha bheil e na chuideachadh mòr ann an cinneasachadh.

Mar sin dèanamaid ath-aithris air leitmotif an t-sreath phuist seo: chan fheum thu dad atharrachadh sa chòd agad. Chan eil feum air ìomhaighean ùra a thogail no soithichean ùra a chuir air bhog. Tha seo uile air a chuir an gnìomh taobh a-muigh còd.

Cleachd do mhac-meanmna

Dìreach smaoinich air na cothroman air mion-sgrùdadh cinn a’ cleachdadh abairtean cunbhalach. A bheil thu airson an neach-ceannach as motha agad ath-stiùireadh gu dreach sònraichte de do chuid meanbh-sheirbheisean? Gu furasta! A bheil feum agad air dreach air leth airson brabhsair Chrome? Chan eil duilgheadas ann! Faodaidh tu trafaic a stiùireadh a rèir cha mhòr feart sam bith.

Feuch e fhèin

Tha leughadh mu Istio, Kubernetes agus OpenShift na aon rud, ach carson nach suathadh thu a h-uile dad thu fhèin? Sgioba Prògram leasaiche red hat air stiùireadh mionaideach ullachadh (ann am Beurla) a chuidicheas tu gus na teicneòlasan sin a mhaighstir cho luath ‘s a ghabhas. Tha an leabhar-làimhe cuideachd 100% stòr fosgailte, agus mar sin tha e air a phostadh san raon phoblach. Bidh am faidhle ag obair air macOS, Linux agus Windows, agus tha an còd tùsail ri fhaighinn ann an dreachan Java agus node.js (dreachan ann an cànanan eile a’ tighinn a dh’ aithghearr). Dìreach fosgail an stòr git co-fhreagarrach sa bhrobhsair agad Demo leasaiche Red Hat.

Anns an ath phost: bidh sinn ag obrachadh a-mach duilgheadasan gu breagha

An-diugh chunnaic thu dè as urrainn do riaghailtean slighe Istio a dhèanamh. A-nis smaoinich air an aon rud, ach a-mhàin a thaobh làimhseachadh mhearachdan. Is e seo dìreach na bhios sinn a’ bruidhinn anns an ath phost.

Source: www.habr.com

Cuir beachd ann