Cyfres o bostiadau ar Rhwyll Gwasanaeth Istio

Rydym yn dechrau cyfres o swyddi sy'n dangos rhai o nodweddion niferus y Rhwyll Gwasanaeth Istio mewn cyfuniad â Red Hat OpenShift a Kubernetes.

Cyfres o bostiadau ar Rhwyll Gwasanaeth Istio

Rhan un heddiw:

  • Gadewch i ni egluro cysyniad cynwysyddion car ochr Kubernetes a llunio leitmotif y gyfres hon o bostiadau: "Nid oes angen i chi newid unrhyw beth yn eich cod".
  • Gadewch i ni ddychmygu peth sylfaenol Istio - rheolau llwybro. Mae holl nodweddion eraill Istio wedi'u hadeiladu arnynt, gan mai'r rheolau sy'n caniatáu ichi gyfeirio traffig at ficrowasanaethau gan ddefnyddio ffeiliau YAML y tu allan i'r cod gwasanaeth. Rydym hefyd yn ystyried y cynllun lleoli Canary Deploy. Bonws Blwyddyn Newydd - 10 Gwers Istio Rhyngweithiol


Bydd rhan dau, sy'n dod allan yn fuan, yn dweud wrthych:

  • Sut mae Istio yn gweithredu Pool Ejection ar y cyd â Circuit Breaker ac yn dangos sut mae Istio yn caniatáu ichi dynnu pod segur neu sy'n perfformio'n wael o'r cynllun cydbwysedd.
  • Byddwn hefyd yn edrych ar y pwnc Circuit Breaker o'r post cyntaf ar sut y gellir defnyddio Istio yma. Byddwn yn dangos sut i gyfeirio traffig a thrin gwallau rhwydwaith heb y newid lleiaf yn y cod gwasanaeth gan ddefnyddio ffeiliau cyfluniad YAML a gorchmynion terfynell.

Rhan tri:

  • Stori am olrhain a monitro sydd eisoes wedi'i chynnwys yn Istio neu'n hawdd ei hychwanegu ati. Byddwn yn dangos i chi sut i ddefnyddio offer fel Prometheus, Jaeger, a Grafana ar y cyd â graddio OpenShift i reoli eich pensaernïaeth microwasanaeth yn ddiymdrech.
  • Rydym yn symud o fonitro a thrin gwallau i’w cyflwyno i’r system yn fwriadol. Mewn geiriau eraill, rydyn ni'n dysgu sut i chwistrellu bai heb newid y cod ffynhonnell, sy'n bwysig iawn o safbwynt profi - oherwydd os byddwch chi'n newid y cod ei hun ar gyfer hyn, yna mae risg o gyflwyno gwallau ychwanegol.

Yn olaf, yn y post olaf ar Istio Service Mesh:

  • Gadewch i ni fynd i'r Ochr Dywyll. Yn fwy manwl gywir, byddwn yn dysgu defnyddio'r cynllun Dark Launch, pan fydd y cod yn cael ei ddefnyddio a'i brofi'n uniongyrchol ar ddata cynhyrchu, ond nid yw'n effeithio ar weithrediad y system mewn unrhyw ffordd. Dyma lle mae gallu Istio i hollti traffig yn dod yn ddefnyddiol. A'r gallu i berfformio profion ar ddata cynhyrchu byw heb effeithio ar weithrediad y system ymladd mewn unrhyw ffordd yw'r ffordd fwyaf argyhoeddiadol i wirio.
  • Gan adeiladu ar Dark Launch, byddwn yn dangos i chi sut i ddefnyddio'r model Canary Deployment i leihau risg a'i gwneud hi'n haws cael cod newydd i gynhyrchu. Mae Canary Deploy ei hun ymhell o fod yn newydd, ond mae Istio yn caniatáu ichi weithredu'r cynllun hwn gyda dim ond ffeiliau YAML syml.
  • I gloi, byddwn yn dangos sut i ddefnyddio Istio Egress i roi mynediad i wasanaethau i'r rhai sydd y tu allan i'ch clystyrau er mwyn defnyddio galluoedd Istio wrth weithio gyda'r Rhyngrwyd.

Felly, i ffwrdd â ni…

Offer monitro a rheoli - popeth sydd ei angen arnoch i drefnu microwasanaethau mewn rhwyll gwasanaeth rhwyll gwasanaeth.

Beth yw Rhwyll Gwasanaeth Istio

Mae'r rhwyll gwasanaeth yn gweithredu ar gyfer grŵp o wasanaethau megis monitro traffig, rheoli mynediad, darganfod, diogelwch, goddefgarwch namau a phethau defnyddiol eraill. Mae Istio yn caniatáu ichi wneud hyn i gyd heb y newid lleiaf yng nghod y gwasanaethau eu hunain. Beth yw cyfrinach hud? Mae Istio yn gosod ei ddirprwy ei hun i bob gwasanaeth ar ffurf cynhwysydd car ochr (car ochr beic modur yw car ochr), ac ar ôl hynny mae'r holl draffig i'r gwasanaeth hwn yn mynd trwy'r dirprwy, sydd, dan arweiniad y polisïau penodedig, yn penderfynu sut, pryd ac a yw hyn dylai traffig gyrraedd y gwasanaeth o gwbl. Mae Istio hefyd yn rhoi'r gallu i chi weithredu technegau DevOps datblygedig fel lleoli caneri, torwyr cylchedau, pigiad namau, a mwy.

Sut mae Istio yn gweithio gyda chynwysyddion a Kubernetes

Mae rhwyll gwasanaeth Istio yn weithrediad car ochr o bopeth sydd ei angen arnoch i greu a rheoli microwasanaethau: monitro, olrhain, torwyr cylchedau, llwybro, cydbwyso llwythi, pigiad namau, ailgynnig, goramser, adlewyrchu, rheoli mynediad, cyfyngu ar gyfraddau, a mwy. Ac er bod yna dunelli o lyfrgelloedd heddiw i weithredu'r nodweddion hyn yn uniongyrchol mewn cod, gydag Istio gallwch chi gael yr un peth yn union heb newid unrhyw beth yn eich cod.

Yn ôl y model car ochr, mae Istio yn rhedeg mewn cynhwysydd Linux, sydd wedi'i leoli mewn un Kubernetes-pod gyda gwasanaeth rheoledig ac yn gweithredu (chwistrellu) a detholiadau (dyfyniad) ymarferoldeb a gwybodaeth yn ôl y ffurfwedd a roddir. Rydym yn pwysleisio mai eich cyfluniad eich hun yw hwn, ac mae'n byw y tu allan i'ch cod. Felly, mae'r cod yn dod yn llawer symlach ac yn fyrrach.

Yn bwysicach fyth, nid yw cydran weithredol microwasanaethau yn gysylltiedig mewn unrhyw ffordd â'r cod ei hun, sy'n golygu y gellir trosglwyddo eu gweithrediad yn ddiogel i arbenigwyr TG. Yn wir, pam ddylai datblygwr fod yn gyfrifol am torwyr cylched a chwistrelliad fai? Ymateb, ie, ond eu prosesu a'u creu? Os byddwch chi'n tynnu hyn i gyd o'r cod, gall rhaglenwyr ganolbwyntio'n llawn ar ymarferoldeb cymhwysiad. A bydd y cod ei hun yn dod yn fyrrach ac yn symlach.

Rhwyll gwasanaeth

Mae Istio, sy'n gweithredu swyddogaethau ar gyfer rheoli microwasanaethau y tu allan i'w cod, yn gysyniad Rhwyll Gwasanaeth. Mewn geiriau eraill, mae'n grŵp cydgysylltiedig o un neu fwy o ddeuawdau sy'n ffurfio rhwyll o swyddogaethau rhwydwaith.

Sut mae Istio yn gweithio gyda microwasanaethau

Dyma sut mae cynwysyddion ceir ochr yn gweithio ar y cyd â Kubernetes и shifft mini golwg aderyn: lansio enghraifft o Minishift, creu prosiect ar gyfer Istio (gadewch i ni ei alw'n “istio-system”), gosod a rhedeg yr holl gydrannau sy'n gysylltiedig â Istio. Yna, wrth i chi greu prosiectau a phodiau, rydych chi'n ychwanegu gwybodaeth ffurfweddu at eich gosodiadau, ac mae'ch codennau'n dechrau defnyddio Istio. Mae diagram syml yn edrych fel hyn:

Cyfres o bostiadau ar Rhwyll Gwasanaeth Istio

Nawr gallwch chi newid gosodiadau Istio i, er enghraifft, drefnu pigiad bai, cefnogaeth Dedwyddiad Dedwydd neu nodweddion Istio eraill - a hyn i gyd heb gyffwrdd â chod y cymwysiadau eu hunain. Gadewch i ni ddweud eich bod am ailgyfeirio'r holl draffig gwe oddi wrth ddefnyddwyr eich cleient mwyaf (Foo Corporation) i fersiwn newydd o'r wefan. I wneud hyn, crëwch reol llwybro Istio a fydd yn edrych am @foocorporation.com yn yr ID defnyddiwr ac yn ailgyfeirio yn unol â hynny. I bob defnyddiwr arall, ni fydd unrhyw beth yn newid. Yn y cyfamser, byddwch yn profi fersiwn newydd y wefan yn dawel. A nodwch nad oes angen i chi gynnwys datblygwyr o gwbl ar gyfer hyn.

A faint sy'n rhaid i chi dalu amdano?

Dim o gwbl. Mae Istio yn eithaf cyflym, mae wedi'i ysgrifennu i mewn Go ac yn creu ychydig iawn o uwchben. Yn ogystal, mae colled posibl mewn cynhyrchiant ar-lein yn cael ei wrthbwyso gan gynnydd mewn cynhyrchiant datblygwyr. O leiaf mewn theori: peidiwch ag anghofio bod amser datblygwyr yn werthfawr. O ran costau meddalwedd, mae Istio yn feddalwedd ffynhonnell agored, felly mae'n rhad ac am ddim i'w gael a'i ddefnyddio.

Meistrolwch ef eich hun

Mae Tîm Profiad Datblygwr Red Hat wedi datblygu sesiwn ymarferol fanwl arweinyddiaeth gan Istio (yn Saesneg). Mae'n rhedeg ar Linux, MacOS a Windows, ac mae'r cod ar gael yn Java a Node.js.

10 Gwers Rhyngweithiol Istio

Bloc 1 - Ar gyfer dechreuwyr

Cyflwyniad i Istio
Cofnodion 30
Rydyn ni'n dod yn gyfarwydd â Service Mesh, yn dysgu sut i osod Istio yng nghlwstwr Kubernetes OpenShift.
Post

Defnyddio microwasanaethau yn Istio
Cofnodion 30
Rydym yn defnyddio Istio i ddefnyddio tri microwasanaeth gyda Spring Boot a Vert.x.
Post

Bloc 2 - lefel ganolradd

Monitro ac olrhain yn Istio
Cofnodion 60
Archwiliwch offer monitro adeiledig Istio, metrigau arfer, ac OpenTracing trwy Prometheus a Grafana.
Post

Llwybro syml yn Istio
Cofnodion 60
Dysgwch sut i reoli llwybro yn Istio gan ddefnyddio rheolau syml.
Post

Rheolau Llwybro Uwch
Cofnodion 60
Rydyn ni'n dod yn gyfarwydd â llwybro smart yn Istio, rheoli mynediad, cydbwyso llwythi a chyfyngu ar gyfraddau.
Post

Bloc 3 - Defnyddiwr Uwch

Chwistrelliad Nam yn Istio
Cofnodion 60
Rydym yn astudio senarios trin methiant mewn cymwysiadau dosbarthedig, gan greu gwallau HTTP ac oedi rhwydwaith, ac yn dysgu sut i gymhwyso peirianneg anhrefn i adfer yr amgylchedd.
Post

Torrwr Cylchdaith yn Istio
Cofnodion 30
Rydyn ni'n gosod Gwarchae ar gyfer safleoedd profi straen ac yn dysgu sut i sicrhau goddefgarwch o fai backend gan ddefnyddio ailgynnig, torrwr cylched a alldaflu pwll.
Post

Egress ac Istio
Cofnodion 10
Rydym yn defnyddio llwybrau Egress i greu rheolau ar gyfer rhyngweithio gwasanaethau mewnol ag APIs a gwasanaethau allanol.
Post

Istio a Kiali
Cofnodion 15
Dysgwch sut i ddefnyddio Kiali i gael trosolwg o'r rhwyll gwasanaeth ac archwilio llifau ceisiadau a data.
Post

TLS Mutual yn Istio
Cofnodion 15
Rydym yn creu Istio Gateway a VirtualService, yna'n astudio TLS cydfuddiannol (mTLS) a'i osodiadau yn fanwl.
Post

Blwch 3.1 - Plymio Dwfn: Rhwyll Gwasanaeth Istio ar gyfer Microwasanaethau

Cyfres o bostiadau ar Rhwyll Gwasanaeth Istio
Am beth mae'r llyfr yn sôn:

  • Beth yw rhwyll gwasanaeth?
  • System Istio a'i rôl mewn pensaernïaeth microwasanaeth.
  • Defnyddio Istio ar gyfer y tasgau canlynol:
    • Goddefgarwch bai;
    • Llwybro;
    • Profi anhrefn;
    • Diogelwch;
    • Casgliad o delemetreg gan ddefnyddio olrhain, metrigau a Grafana.

I lawrlwytho llyfr

Cyfres o erthyglau ar rwyllau gwasanaeth a Istio....

Rhowch gynnig arni'ch hun

Nid yw'r gyfres hon o bostiadau wedi'u bwriadu i ddarparu plymio dwfn i fyd Istio. Rydyn ni eisiau eich cyflwyno i'r cysyniad ac efallai eich ysbrydoli i roi cynnig ar Istio drosoch eich hun. Mae'n hollol rhad ac am ddim i'w wneud, ac mae Red Hat yn darparu'r holl offer sydd eu hangen arnoch i ddechrau gydag OpenShift, Kubernetes, cynwysyddion Linux, ac Istio, gan gynnwys: Datblygwr Red Hat Llwyfan Cynhwysydd OpenShift, ein canllaw i Istio ac adnoddau eraill ar ein safle meicro rhwyll gwasanaeth. Peidiwch ag oedi, dechreuwch heddiw!

‘Rheolau llwybro’: cyfeirio ceisiadau am wasanaeth i’r lle iawn

shifft agored и Kubernetes yn ardderchog am ddelio â nhw microwasanaethau cael eu cyfeirio at y codennau gofynnol. Dyma un o'r rhesymau dros fodolaeth Kubernetes - llwybro a chydbwyso llwythi. Ond beth os oes angen llwybro mwy cynnil a soffistigedig arnoch chi? Er enghraifft, defnyddio dwy fersiwn o ficrowasanaeth ar yr un pryd. Sut gall Istio Route Rules helpu yma?

Rheolau llwybro yw'r rheolau sydd, mewn gwirionedd, yn pennu'r dewis o lwybr. Waeth beth yw cymhlethdod y system, mae'r egwyddor gyffredinol y tu ôl i'r rheolau hyn yn parhau i fod yn syml: mae ceisiadau'n cael eu cyfeirio yn seiliedig ar baramedrau penodol a gwerthoedd pennawd HTTP.
Edrychwn ar enghreifftiau:

Kubernetes Diofyn: Dibwys "50/50"

Yn ein hesiampl, byddwn yn dangos sut i ddefnyddio dwy fersiwn o ficrowasanaeth ar yr un pryd yn OpenShift, gadewch i ni eu galw yn v1 a v2. Mae pob fersiwn yn rhedeg yn ei pod Kubernetes ei hun, ac yn ddiofyn mae'n rhedeg llwybr robin crwn cytbwys. Mae pob pod yn derbyn ei gyfran o geisiadau yn seiliedig ar nifer ei achosion microwasanaeth, mewn geiriau eraill, atgynyrchiadau. Mae Istio yn caniatáu ichi newid y balans hwn â llaw.

Gadewch i ni ddweud ein bod wedi defnyddio dwy fersiwn o'n gwasanaeth argymell, argymhelliad-v1 ac argymhelliad-v2, ar OpenShift.
Ar ffig. Mae Ffigur 1 yn dangos pan fydd pob gwasanaeth yn cael ei gynrychioli mewn un achos, mae ceisiadau wedi'u rhyngddalennu'n gyfartal rhyngddynt: 1-2-1-2-… Dyma sut mae llwybro Kubernetes yn gweithio yn ddiofyn:

Cyfres o bostiadau ar Rhwyll Gwasanaeth Istio

Dosbarthiad pwysol rhwng fersiynau

Ar ffig. Mae Ffigur 2 yn dangos beth sy'n digwydd os cynyddwch nifer y copïau gwasanaeth v2 o un i ddau (gwneir hyn gyda'r gorchymyn oc scale --replicas=2 deployment/recommendation-v2). Fel y gwelwch, mae ceisiadau rhwng v1 a v2 bellach wedi'u rhannu'n berthynas un i dri: 1-2-2-1-2-2-…:

Cyfres o bostiadau ar Rhwyll Gwasanaeth Istio

Anwybyddu fersiwn gyda Istio

Mae Istio yn ei gwneud hi'n hawdd newid dosbarthiad ceisiadau yn y ffordd sydd ei angen arnom. Er enghraifft, anfonwch yr holl draffig yn unig i Argymhelliad-v1 gyda'r ffeil Istio yaml ganlynol:

Cyfres o bostiadau ar Rhwyll Gwasanaeth Istio

Yma mae angen i chi roi sylw i hyn: dewisir codennau yn ôl labeli. Yn ein hesiampl ni, defnyddir y label v1. Mae'r paramedr "pwysau: 100" yn golygu y bydd 100% o'r traffig yn cael ei gyfeirio i bob cod gwasanaeth sydd â'r label v1.

Dosbarthiad y Gyfarwyddeb rhwng fersiynau (Defnydd Dedwydd)

Ymhellach, gan ddefnyddio'r paramedr pwysau, gallwch gyfeirio traffig i'r ddau god, gan anwybyddu nifer yr achosion microwasanaeth sy'n rhedeg ym mhob un ohonynt. Er enghraifft, yma rydym yn cyfeirio 90% o draffig yn uniongyrchol i f1 a 10% i v2:

Cyfres o bostiadau ar Rhwyll Gwasanaeth Istio

Llwybro ar wahân ar gyfer defnyddwyr ffonau symudol

I gloi, byddwn yn dangos sut i orfodi traffig defnyddwyr ffonau symudol i gael eu cyfeirio at wasanaeth v2, a phob defnyddiwr arall i f1. I wneud hyn, rydym yn defnyddio ymadroddion rheolaidd i ddosrannu'r gwerth asiant-defnyddiwr ym mhennyn y cais:

Cyfres o bostiadau ar Rhwyll Gwasanaeth Istio

Nawr mae'n tro ti

Dylai'r enghraifft regex ar gyfer dosrannu penawdau eich ysgogi i archwilio eich ffyrdd eich hun o gymhwyso rheolau llwybro Istio. Ar ben hynny, mae'r posibiliadau yma yn helaeth iawn, oherwydd gellir ffurfio'r gwerthoedd pennawd yn y cod ffynhonnell cymwysiadau.

A chofiwch mai Ops, nid Dev

Mae popeth a ddangoswyd gennym yn yr enghreifftiau uchod yn cael ei wneud heb y newid lleiaf yn y cod ffynhonnell, wel, ac eithrio'r achosion hynny pan fydd angen ffurfio penawdau cais arbennig. Bydd Istio yn ddefnyddiol i ddatblygwyr, a fydd, er enghraifft, yn gallu ei ddefnyddio yn y cam profi, ac i arbenigwyr mewn gweithredu systemau TG, y bydd yn helpu'n fawr wrth gynhyrchu.

Felly gadewch i ni ailadrodd leitmotif y gyfres hon o bostiadau: nid oes angen i chi newid unrhyw beth yn eich cod. Nid oes angen adeiladu delweddau newydd na lansio cynwysyddion newydd. Gweithredir hyn i gyd y tu allan i'r cod.

trowch eich dychymyg ymlaen

Dychmygwch y posibiliadau o ddadansoddi penawdau gan ddefnyddio ymadroddion rheolaidd. Eisiau ailgyfeirio eich cwsmer mwyaf i fersiwn arbennig o'ch microwasanaethau? Yn hawdd! Angen fersiwn ar wahân ar gyfer y porwr Chrome? Dim problem! Gallwch lwybro traffig yn ôl bron unrhyw nodwedd.

Rhowch gynnig arni'ch hun

Mae darllen am Istio, Kubernetes, ac OpenShift yn un peth, ond beth am gyffwrdd y cyfan eich hun? Tîm Rhaglen Datblygwyr Red Hat paratoi canllaw manwl (yn Saesneg) a fydd yn eich helpu i feistroli'r technolegau hyn cyn gynted â phosibl. Mae'r llawlyfr hefyd yn 100% ffynhonnell agored, felly mae'n cael ei bostio yn y parth cyhoeddus. Mae'r ffeil yn gweithio ar macOS, Linux, a Windows, ac mae'r cod ffynhonnell ar gael mewn fersiynau Java a node.js (mwy o ieithoedd yn dod yn fuan). Dim ond agor y storfa git cyfatebol yn eich porwr Demo Datblygwr Red Hat.

Yn y post nesaf: rydym yn gweithio allan problemau yn hyfryd

Heddiw fe welsoch chi beth all rheolau llwybro Istio ei wneud. Nawr dychmygwch yr un peth, ond dim ond mewn perthynas â thrin gwallau. Dyma'r union beth y byddwn yn siarad amdano yn y post nesaf.

Ffynhonnell: hab.com

Ychwanegu sylw