
Zindikirani. transl.: Ma meshes a ntchito akhaladi yankho loyenera pazomangamanga zamakono pazogwiritsa ntchito motsatira kamangidwe ka microservice. Ngakhale Istio ikhoza kukhala pamilomo ya akatswiri ambiri a DevOps, ndi chinthu chatsopano chomwe, ngakhale chiri chokwanira malinga ndi luso lomwe limapereka, chingafunike nthawi yochuluka kuti muzolowerane nazo. Katswiri wa ku Germany Rinor Maloku, yemwe ali ndi udindo woyang'anira cloud computing kwa makasitomala akuluakulu ku kampani ya telecommunications Orange Networks, adalemba mndandanda wodabwitsa wa zipangizo zomwe zimakulolani kuti mulowe mu Istio mofulumira komanso mozama. Amayamba nkhani yake ndi zomwe Istio angachite nthawi zambiri komanso momwe mungadziwonere mwachangu ndi maso anu.
Istio - Pulojekiti ya Open Source yopangidwa mogwirizana ndi magulu a Google, IBM ndi Lyft. Imathetsa zovuta zomwe zimabwera muzogwiritsa ntchito ma microservices, monga:
- Kuwongolera Magalimoto: kutha kwa nthawi, kuyesanso, kusanja katundu;
- Chitetezo: kutsimikizika kwa ogwiritsa ntchito kumapeto ndi chilolezo;
- Kuwoneka: kufufuza, kuyang'anira, kudula mitengo.
Zonsezi zitha kuthetsedwa pamlingo wofunsira, koma pambuyo pake mautumiki anu sadzakhalanso "micro". Khama lowonjezerapo kuti athetse mavutowa ndikuwononga chuma chamakampani chomwe chingagwiritsidwe ntchito mwachindunji pamtengo wabizinesi. Tiyeni tione chitsanzo:
Project Manager: Zimatenga nthawi yayitali bwanji kuti muwonjezere ndemanga?
Madivelopa: Mipikisano iwiri.MP: Bwanji?.. Ndi CRUD basi!
R: Kuchita CRUD ndi gawo losavuta, koma tifunikabe kutsimikizira ndi kuvomereza ogwiritsa ntchito ndi ntchito. Popeza maukonde ndi osadalirika, muyenera kukhazikitsa zopempha mobwerezabwereza, komanso mu makasitomala. Komanso, kuti muwonetsetse kuti dongosolo lonse silikuwonongeka, mudzafunika nthawi yopuma komanso (kuti mumve zambiri zamitundu yonse yomwe yatchulidwa, onani pambuyo pake m'nkhaniyo - pafupifupi transl.), ndi kuti muwone zovuta, kuyang'anira, kufufuza, [...]MP: O, ndiye tiyeni tingoyika izi mu ntchito ya Product.
Ndikuganiza kuti lingaliro liri lomveka bwino: kuchuluka kwa masitepe ndi khama lofunikira kuti muwonjezere ntchito imodzi ndi yayikulu. M'nkhaniyi, tiwona momwe Istio imachotsera zovuta zonse zomwe tazitchula pamwambapa (zomwe sizinapangidwe kuti zikhale zomveka zamalonda) kuchokera ku mautumiki.

ndemanga: Nkhaniyi ikuganiza kuti muli ndi chidziwitso chogwira ntchito cha Kubernetes. Apo ayi, ndikupangira kuwerenga ndipo pambuyo pake pitirizani kuwerenga nkhaniyi.
Istio lingaliro
M'dziko lopanda Istio, ntchito imodzi imapanga zopempha zachindunji kwa wina, ndipo ngati zitalephera, ntchitoyi iyenera kudzigwira yokha: kuyesera kwatsopano, perekani nthawi yopuma, tsegulani woyendetsa dera, ndi zina zotero.

Kuchuluka kwa ma network ku Kubernetes
Istio imapereka yankho lapadera, lolekanitsidwa kwathunthu ndi mautumiki ndikugwira ntchito mwa kusokoneza kulankhulana kwa intaneti. Ndiye imagwiritsa ntchito:
- kulekerera zolakwika: Kutengera code code mu yankho, imamvetsetsa ngati pempholo lalephera ndikuyambiranso.
- Kutulutsa kwa Canary: imangowongolera kuchuluka kwa zopempha ku mtundu watsopano wa ntchito.
- Monitoring ndi metrics: Zinatenga nthawi yayitali bwanji kuti utumikiwo uyankhe?
- Kufufuza ndi Kuwona: Imawonjezera mitu yapadera pa pempho lililonse ndikutsata gulu lonse.
- Chitetezo: Imapeza chizindikiro cha JWT, imatsimikizira ndi kuvomereza ogwiritsa ntchito.
Izi ndi zochepa chabe mwa mwayi (zochepa kwenikweni!) kuti zikusangalatseni. Tsopano tiyeni tilowe muzambiri zaukadaulo!
Zomangamanga za Istio
Istio imalepheretsa kuchuluka kwa magalimoto pamanetiweki ndikuyikapo malamulo angapo, ndikuyika projekiti yanzeru ngati chidebe cham'mbali mu pod iliyonse. Ma proxies omwe amayatsa mphamvu zonse amapanga a Ndege ya Data, ndipo amatha kusinthidwa mosinthika pogwiritsa ntchito Control Ndege.
Ndege ya Data
Ma proxies olowetsedwa mu ma pod amalola Istio kukwaniritsa zofunikira zomwe tikufuna. Mwachitsanzo, tiyeni tiyesenso ndi ntchito za circuit breaker.

Momwe kuyesanso ndi kuswa madera kumakhazikitsidwa mu Envoy
Mwachidule:
- nthumwi (tikulankhula za proxy yomwe ili mu chidebe cham'mbali, chomwe chimagawidwa ngati - pafupifupi. transl.) imatumiza pempho ku nthawi yoyamba ya utumiki B ndipo ikulephera.
- Evoy Sidecar ayesanso (yesanso). (1)
- Pempho lalephera ndipo libwezeredwa kwa woyitanira yemwe adayitcha.
- Izi zimatsegula Circuit Breaker ndikuyitanitsa msonkhano wotsatira pazopempha zotsatila. (2)
Izi zikutanthauza kuti simuyenera kugwiritsa ntchito laibulale ina Yesaninso, simuyenera kupanga nokha kukhazikitsa kwa Circuit Breaking ndi Service Discovery m'chinenero cha pulogalamu X, Y kapena Z. Zonsezi ndi zina zambiri zikupezeka m'bokosi. mu Istio ndipo safuna ayi kusintha kwa code.
Zabwino! Tsopano mungafune kupita paulendo ndi Istio, koma muli ndi kukayikira, mafunso otseguka. Ngati ili ndi yankho lachilengedwe pazochitika zonse m'moyo, ndiye kuti muli ndi chikayikiro chachilengedwe: pambuyo pake, mayankho onsewa amakhala osayenera pazochitika zilizonse.
Ndipo pamapeto pake mumafunsa kuti: "Kodi ndi makonda?"
Tsopano mwakonzekera ulendo wa panyanja, tiyeni tidziwe Control Plane.
Control Ndege
Lili ndi zigawo zitatu: Woyendetsa, Wosakaniza и Citadel, zomwe zimagwirira ntchito limodzi kukonza Nthumwi kuti ziyendetse magalimoto, kutsata ndondomeko, ndi kusonkhanitsa deta ya telemetry. Mwadongosolo zonse zikuwoneka motere:

Kuyanjana kwa Control Plane ndi Data Plane
Nthumwi (i.e. dataplane) zimakonzedwa pogwiritsa ntchito (Custom Resource Definitions) yofotokozedwa ndi Istio ndipo cholinga chake ndi ichi. Zomwe zikutanthauza kwa inu ndikuti akuwoneka ngati chida china ku Kubernetes chokhala ndi mawu odziwika bwino. Akapangidwa, gweroli lidzatengedwa ndi ndege yoyang'anira ndikugwiritsidwa ntchito kwa Nthumwi.
Ubale wa mautumiki ku Istio
Tafotokoza za ubale wa Istio ndi mautumiki, koma osati mobwerera: kodi mautumikiwa amagwirizana bwanji ndi Istio?
Kunena zowona, mautumiki amadziŵa kukhalapo kwa Istio monga momwe nsomba zilili ndi madzi pamene amadzifunsa kuti, "Kodi madzi ndi chiyani?"

Chitsanzo : - Mumakonda madzi bwanji? - Madzi ndi chiyani?
Choncho, mukhoza kutenga gulu logwira ntchito ndipo mutatha kuyika zigawo za Istio, mautumiki omwe ali mmenemo adzapitiriza kugwira ntchito, ndipo mutatha kuchotsa zigawozi, zonse zidzakhala bwino. Zikuwonekeratu kuti mu nkhani iyi mudzataya mphamvu zoperekedwa ndi Istio.
Chiphunzitso chokwanira - tiyeni tigwiritse ntchito chidziwitsochi!
Istio mukuchita
Istio imafuna gulu la Kubernetes lokhala ndi osachepera 4 vCPU ndi 8 GB ya RAM yomwe ilipo. Kuti mukhazikitse gulu mwachangu ndikutsata malangizo a nkhaniyi, ndikupangira kugwiritsa ntchito Google Cloud Platform, yomwe imapereka ogwiritsa ntchito atsopano. .
Mutapanga gulu ndikusintha mwayi wofikira Kubernetes kudzera pa chothandizira, mutha kukhazikitsa Istio kudzera pa Helm package manager.
Kuyika helm
Ikani kasitomala wa Helm pa kompyuta yanu, monga tafotokozera mu . Tidzagwiritsa ntchito izi kupanga ma tempuleti oyika Istio mu gawo lotsatira.
Kukhazikitsa Istio
Tsitsani zothandizira za Istio kuchokera (ulalo wa wolemba woyamba ku mtundu 1.0.5 wasinthidwa kukhala wamakono, mwachitsanzo 1.0.6 - approx. transl.), chotsani zomwe zili m'ndandanda umodzi, zomwe ndidzaimbira [istio-resources].
Kuti muzindikire zida za Istio mosavuta, pangani malo a mayina mugulu la K8s istio-system:
$ kubectl create namespace istio-system Malizitsani kukhazikitsa popita ku chikwatu [istio-resources] ndi kuyendetsa lamulo:
$ helm template install/kubernetes/helm/istio
--set global.mtls.enabled=false
--set tracing.enabled=true
--set kiali.enabled=true
--set grafana.enabled=true
--namespace istio-system > istio.yaml Lamuloli litulutsa zigawo zazikulu za Istio ku fayilo istio.yaml. Tidasintha template yokhazikika kuti igwirizane ndi ife, kutchula magawo awa:
-
global.mtls.enabledadayikidwa mufalse(i.e. kutsimikizika kwa mTLS kwayimitsidwa - pafupifupi.)kufewetsa zibwenzi zathu; -
tracing.enabledkumaphatikizapo kufufuza kupempha pogwiritsa ntchito Jaeger; -
kiali.enabledimayika Kiali mumagulu kuti muwonetsetse ntchito ndi magalimoto; -
grafana.enabledimayika Grafana kuti muwone ma metric osonkhanitsidwa.
Tiyeni tigwiritse ntchito zinthu zopangidwa ndi lamulo:
$ kubectl apply -f istio.yaml Kuyika kwa Istio pagulu kwatha! Dikirani mpaka masamba onse ali mumphika wamadzi istio-system adzatha Running kapena Completedpoyendetsa lamulo ili pansipa:
$ kubectl get pods -n istio-systemTsopano ndife okonzeka kupitiriza mu gawo lotsatira, pamene tiyamba kugwiritsa ntchito pulogalamuyi.
Zomangamanga za Sentiment Analysis application
Tiyeni tigwiritse ntchito chitsanzo cha Sentiment Analysis microservice application yomwe yatchulidwa kale . Ndizovuta mokwanira kuwonetsa kuthekera kwa Istio pochita.
Ntchitoyi imakhala ndi ma microservices anayi:
- utumiki SA-Frondend, yomwe imakhala kutsogolo kwa pulogalamu ya Reactjs;
- utumiki SA-WebApp, yomwe imapereka mafunso a Sentiment Analysis;
- utumiki SA-Logic, yomwe imachita yokha ;
- utumiki SA - Ndemanga, yomwe imalandira ndemanga kuchokera kwa ogwiritsa ntchito ponena za kulondola kwa kusanthula.

Muchithunzichi, kuwonjezera pa mautumiki, tikuwonanso Ingress Controller, yomwe ku Kubernetes imayendetsa zopempha zomwe zikubwera ku mautumiki oyenera. Istio imagwiritsa ntchito lingaliro lofananalo mkati mwa Ingress Gateway, zambiri zomwe zidzatsatidwe.
Kugwiritsa ntchito ndi projekiti yochokera ku Istio
Kuti mugwiritse ntchito zina zomwe zatchulidwa m'nkhaniyi, phatikizani nkhokwe yanu . Ili ndi kugwiritsa ntchito komanso mawonekedwe a Kubernetes ndi Istio.
Kuyika ma sidecars
Kuyika kungatheke basi kapena pamanja. Kuti muyike zokha zotengera zam'mbali, mufunika kuyika chizindikiro pamalo a mayina istio-injection=enabled, zomwe zimachitika ndi lamulo ili:
$ kubectl label namespace default istio-injection=enabled
namespace/default labeled Tsopano pod iliyonse yomwe idzayikidwa mu malo osasintha (default) adzalandira chidebe chake cham'mbali. Kuti titsimikizire izi, tiyeni titumize ntchito yoyeserera popita ku bukhu la nkhokwe [istio-mastery] ndikuyendetsa lamulo ili:
$ kubectl apply -f resource-manifests/kube
persistentvolumeclaim/sqlite-pvc created
deployment.extensions/sa-feedback created
service/sa-feedback created
deployment.extensions/sa-frontend created
service/sa-frontend created
deployment.extensions/sa-logic created
service/sa-logic created
deployment.extensions/sa-web-app created
service/sa-web-app created Pambuyo potumiza mautumikiwa, tiyeni tiwone ngati ma pod ali ndi zotengera ziwiri (ndi utumiki womwewo ndi galimoto yake yam'mbali) poyendetsa lamulo. kubectl get pods ndi kuonetsetsa kuti pansi pa mzati READY mtengo watchulidwa 2/2, kusonyeza kuti zotengera zonse zikuyenda:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
sa-feedback-55f5dc4d9c-c9wfv 2/2 Running 0 12m
sa-frontend-558f8986-hhkj9 2/2 Running 0 12m
sa-logic-568498cb4d-2sjwj 2/2 Running 0 12m
sa-logic-568498cb4d-p4f8c 2/2 Running 0 12m
sa-web-app-599cf47c7c-s7cvd 2/2 Running 0 12mZowoneka zikuwoneka motere:

Woyimira nthumwi mu imodzi mwa ma pod
Tsopano popeza pulogalamuyo yayamba kugwira ntchito, tidzafunika kulola magalimoto omwe akubwera kuti alowe mu pulogalamuyi.
Ingress Gateway
Njira yabwino yokwaniritsira izi (lolani magalimoto mumagulu) ndikudutsa Ingress Gateway ku Istio, yomwe ili pa "m'mphepete" mwa gululo ndipo imakulolani kuti muthe kuyika zinthu za Istio monga njira, kusanja katundu, chitetezo ndi kuyang'anira magalimoto omwe akubwera.
Chigawo cha Ingress Gateway ndi ntchito yomwe imatumiza kunja idayikidwa mgululi panthawi yoyika Istio. Kuti mudziwe adilesi yakunja ya IP ya ntchitoyo, yesani:
$ kubectl get svc -n istio-system -l istio=ingressgateway
NAME TYPE CLUSTER-IP EXTERNAL-IP
istio-ingressgateway LoadBalancer 10.0.132.127 13.93.30.120Tipitiliza kupeza pulogalamuyi pogwiritsa ntchito IP iyi (ndiyitchula kuti EXTERNAL-IP), kuti zikhale zosavuta tidzalemba mtengowo kuti ukhale wosinthika:
$ EXTERNAL_IP=$(kubectl get svc -n istio-system
-l app=istio-ingressgateway
-o jsonpath='{.items[0].status.loadBalancer.ingress[0].ip}')Ngati muyesa kupeza IP iyi kudzera pa msakatuli tsopano, mudzalandira cholakwika cha Utumiki Chosapezeka, chifukwa mwachisawawa Istio imaletsa magalimoto onse omwe akubwera, Gateway sinafotokozedwebe.
Chithandizo cha Gateway
Gateway ndi CRD (Custom Resource Definition) ku Kubernetes, yomwe imatanthauzidwa pambuyo pa kukhazikitsa Istio mumagulu ndikuthandizira kufotokozera madoko, protocol ndi makamu omwe tikufuna kulola magalimoto obwera.
Kwa ife, tikufuna kulola kuchuluka kwa HTTP padoko 80 kwa onse omwe ali nawo. Ntchitoyi ikugwiridwa ndi tanthauzo ili ():
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: http-gateway
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*" Kukonzekera uku sikufuna kufotokozera kupatula kwa wosankha istio: ingressgateway. Ndi chosankha ichi titha kufotokozera kuti Ingress Gateway iti tigwiritse ntchito kasinthidwe. Kwa ife, uyu ndiye woyang'anira Chipata cha Ingress, chomwe chinakhazikitsidwa mwachisawawa ku Istio.
Kukonzekera kumagwiritsidwa ntchito poyitana lamulo ili:
$ kubectl apply -f resource-manifests/istio/http-gateway.yaml gateway.networking.istio.io/http-gateway createdChipata tsopano chimalola mwayi wopita ku doko 80, koma sadziwa komwe angatumize zopempha. Kwa ichi mudzafunika Ntchito Zabwino.
Chida cha VirtualService
VirtualService imauza Ingress Gateway momwe mungayendetsere zopempha zomwe zimaloledwa mkati mwa tsango.
Zopempha ku pulogalamu yathu yobwera kudzera pa http-gateway ziyenera kutumizidwa ku sa-frontend, sa-web-app ndi ntchito zoyankha:

Njira zomwe ziyenera kukonzedwa ndi VirtualServices
Tiyeni tiwone zopempha zomwe ziyenera kutumizidwa ku SA-Frontend:
- Kufanana kwenikweni panjira
/iyenera kutumizidwa ku SA-Frontend kuti ipeze index.html; - Njira zokhazikika
/static/*iyenera kutumizidwa ku SA-Frontend kuti ilandire mafayilo osasunthika omwe amagwiritsidwa ntchito kutsogolo, monga CSS ndi JavaScript; - Njira zofananira ndi mawonekedwe anthawi zonse
'^.*.(ico|png|jpg)$', iyenera kutumizidwa ku SA-Frontend, chifukwa Izi ndi zithunzi zowonetsedwa patsamba.
Kukhazikitsa kumatheka ndi kasinthidwe kotsatira ():
kind: VirtualService
metadata:
name: sa-external-services
spec:
hosts:
- "*"
gateways:
- http-gateway # 1
http:
- match:
- uri:
exact: /
- uri:
exact: /callback
- uri:
prefix: /static
- uri:
regex: '^.*.(ico|png|jpg)$'
route:
- destination:
host: sa-frontend # 2
port:
number: 80Mfundo zofunika:
- VirtualService iyi imatanthawuza zopempha zomwe zikubwera http-chipata;
- В
destinationNtchito zomwe zopempha zimatumizidwa zimatsimikiziridwa.
ndemanga: Zosintha pamwambapa zimasungidwa mufayilo sa-virtualservice-external.yaml, yomwe ilinso ndi zoikamo zoyendetsera mu SA-WebApp ndi SA-Feedback, koma yafupikitsidwa apa m'nkhaniyo kuti ikhale yofupikitsa.
Tiyeni tigwiritse ntchito VirtualService poyimba:
$ kubectl apply -f resource-manifests/istio/sa-virtualservice-external.yaml
virtualservice.networking.istio.io/sa-external-services createdndemanga: Tikamadya zinthu za Istio, Kubernetes API Server imapanga chochitika chomwe chimalandiridwa ndi Istio Control Plane, ndipo pambuyo pake kusinthika kwatsopano kumagwiritsidwa ntchito kwa ma proxies a pod iliyonse. Ndipo wolamulira wa Ingress Gateway akuwoneka kuti ndi nthumwi ina yokonzedwa mu Control Plane. Zonsezi zikuwoneka ngati izi mujambula:

Kukonzekera kwa Istio-IngressGateway pakufunsira njira
Sentiment Analysis application ikupezeka pa http://{EXTERNAL-IP}/. Osadandaula ngati simunapezeke: Nthawi zina zimatenga nthawi yayitali kuti kasinthidwe ayambe kugwira ntchito ndipo ma cache a Envoy asinthe.
Musanayambe, sewerani ndi pulogalamuyi pang'ono kuti mupange magalimoto. (kukhalapo kwake ndikofunikira kuti zimveke bwino pazotsatira - pafupifupi transl.).
Kiali: kuwonera
Kuti mufike pa mawonekedwe a Kiali, yendetsani lamulo ili:
$ kubectl port-forward
$(kubectl get pod -n istio-system -l app=kiali
-o jsonpath='{.items[0].metadata.name}')
-n istio-system 20001... ndi kutsegula , kulowa ngati admin/admin. Apa mupeza zinthu zambiri zothandiza, mwachitsanzo, kuyang'ana kasinthidwe ka zigawo za Istio, kuwona mautumiki pogwiritsa ntchito zidziwitso zomwe zasonkhanitsidwa kuchokera pakufunsira zofunsira pa netiweki, pezani mayankho a mafunso "Ndani akulumikizana ndi ndani?", "Ndi mtundu uti wautumiki womwe ukukumana nawo. zolephera?” ndi zina zotero. Nthawi zambiri, fufuzani zomwe Kiali ali nazo musanayambe kuwonera ma metric ndi Grafana.

Grafana: mawonekedwe a metrics
Ma metric omwe amasonkhanitsidwa ku Istio amapita ku Prometheus ndipo amawonetsedwa ndi Grafana. Kuti mufike ku Grafana administrative interface, yendetsani lamulo ili pansipa ndikutsegula :
$ kubectl -n istio-system port-forward
$(kubectl -n istio-system get pod -l app=grafana
-o jsonpath={.items[0].metadata.name}) 3000Kusindikiza pa menyu Kunyumba pamwamba kumanzere ndi kusankha Istio Service Dashboard pamwamba kumanzere ngodya, kuyamba ndi utumiki sa-web-appkuti muwone ma metric omwe asonkhanitsidwa:

Zomwe zikutiyembekezera pano ndizopanda kanthu komanso zotopetsa - oyang'anira sangavomereze izi. Tiyeni tipange katundu wochepa ndi lamulo ili:
$ while true; do
curl -i http://$EXTERNAL_IP/sentiment
-H "Content-type: application/json"
-d '{"sentence": "I love yogobella"}';
sleep .8; doneTsopano tili ndi ma graph abwino kwambiri, ndipo kuwonjezera pa iwo, zida zabwino za Prometheus zowunikira ndi Grafana zowonera ma metric omwe angatithandizire kuphunzira za magwiridwe antchito, thanzi, kusintha / kutsika kwa ntchito pakapita nthawi.
Pomaliza, tiyeni tiyang'ane kutsata zopempha mu ntchito.
Jaeger: kutsatira
Tidzafunika kufufuza chifukwa ntchito zambiri zomwe tili nazo, zimakhala zovuta kwambiri kuti tipeze zomwe zalephereka. Tiyeni tiwone vuto losavuta kuchokera pachithunzi pansipa:

Chitsanzo chodziwika bwino cha pempho lolephera mwachisawawa
Pempho likubwera, likugwa - chifukwa chake ndi chiyani? Utumiki woyamba? Kapena wachiwiri? Pali zosiyana mu zonse ziwiri - tiyeni tiwone zipika za iliyonse. Kodi mwadzipeza bwanji mukuchita izi? Ntchito yathu ili ngati ofufuza mapulogalamu kuposa opanga ...
Ili ndi vuto lodziwika bwino mu ma microservices ndipo limathetsedwa ndi njira zotsatirira zogawa, momwe mautumiki amadutsa mutu wapadera kwa wina ndi mzake, pambuyo pake chidziwitsochi chimatumizidwa kumayendedwe otsatirira, pomwe amafananizidwa ndi zopempha. Nachi chithunzi:

TraceId imagwiritsidwa ntchito kuzindikira pempho
Istio imagwiritsa ntchito Jaeger Tracer, yomwe imagwiritsa ntchito ndondomeko ya OpenTracing API yodziyimira pawokha. Mutha kugwiritsa ntchito mawonekedwe a Jaeger ndi lamulo ili:
$ kubectl port-forward -n istio-system
$(kubectl get pod -n istio-system -l app=jaeger
-o jsonpath='{.items[0].metadata.name}') 16686Tsopano pitani ku ndikusankha ntchito sa-web-app. Ngati ntchitoyo sinawonetsedwe mumenyu yotsitsa, onetsani / pangani zochitika patsamba ndikusintha mawonekedwe. Pambuyo pake, dinani batani Pezani Ma traces, yomwe iwonetsa zotsatizana zaposachedwa - sankhani chilichonse - mwatsatanetsatane pazotsatira zonse zidzawonekera:

Chizindikiro ichi chikuwonetsa:
- Pempho likubwera istio-ingressgateway (uku ndiko kuyanjana koyamba ndi imodzi mwamautumiki, ndipo Trace ID imapangidwa kuti ifunsidwe), pambuyo pake chipata chimatumiza pempho ku ntchitoyo. sa-web-app.
- Mu utumiki sa-web-app pempho likutengedwa ndi Evoy sidecar, "mwana" amapangidwa mu span (ndicho chifukwa ife tikuziwona izo mu mayendedwe) ndi kutumizidwa ku chidebe. sa-web-app. ( - gawo lomveka la ntchito ku Jaeger, lomwe lili ndi dzina, nthawi yoyambira kugwira ntchito ndi nthawi yake. Spans ikhoza kukhazikitsidwa ndikuyitanitsa. Chithunzi chowongolera cha acyclic cha spans chimapanga trace. - pafupifupi. transl.)
- Apa pempho likukonzedwa ndi njira sentimentAnalysis. Zotsatirazi zapangidwa kale ndi ntchito, i.e. anafunika kusintha ma code.
- Kuyambira pano, pempho la POST likuyambika sa-logic. Trace ID iyenera kutumizidwa kuchokera sa-web-app.
- ...
ndemanga: Mu sitepe 4, ntchitoyo iyenera kuwona mitu yopangidwa ndi Istio ndikuipereka ku zopempha zotsatila monga momwe tawonetsera pachithunzichi:

(A) Istio ili ndi udindo wotumiza mitu; (B) Ntchito zili ndi udindo pamitu
Istio imagwira ntchito zambiri chifukwa ... imapanga mitu yazofunsira zomwe zikubwera, imapanga mipata yatsopano m'mbali zonse ndikuzipititsa patsogolo. Komabe, popanda kugwira ntchito ndi mitu mkati mwa mautumiki, njira yonse yofunsira idzatayika.
Mitu yotsatirayi iyenera kuganiziridwa:
x-request-id
x-b3-traceid
x-b3-spanid
x-b3-parentspanid
x-b3-sampled
x-b3-flags
x-ot-span-contextIyi si ntchito yovuta, koma kufewetsa kukhazikitsa kwake kulipo kale - mwachitsanzo, mu ntchito ya sa-web-app, kasitomala wa RestTemplate amatumiza mitu iyi ngati mungowonjezera malaibulale a Jaeger ndi OpenTracing ku .
Dziwani kuti ntchito ya Sentiment Analysis ikuwonetsa zomwe zachitika mu Flask, Spring, ndi ASP.NET Core.
Tsopano zikuwonekeratu zomwe timatuluka m'bokosi (kapena pafupifupi kuchokera m'bokosi), tiyeni tiwone njira zowongoka bwino, kasamalidwe ka magalimoto pamaneti, chitetezo, ndi zina zambiri!
Zindikirani. transl.: Werengani za izi mu gawo lotsatira la zolemba za Istio kuchokera kwa Rinor Maloku, zomasulira zomwe zidzatsatira pa blog yathu posachedwa. PEZANI (March 14): zasindikizidwa kale.
PS kuchokera kwa womasulira
Werenganinso pa blog yathu:
- "Kubwerera ku microservices ndi Istio": , ;
- «";
- «";
- «";
- «".
Source: www.habr.com
