Kuyambitsidwa Kwamdima ku Istio: Ntchito Zachinsinsi

"Ngozi ndi dzina langa lapakati," Austin Powers, munthu wodabwitsa padziko lonse, ankakonda kunena. Koma zomwe zimalemekezedwa kwambiri ndi ma super agents ndi ntchito zanzeru sizoyenera konse ntchito zamakompyuta, pomwe kutopa kuli bwino kuposa ngozi.

Kuyambitsidwa Kwamdima ku Istio: Ntchito Zachinsinsi

Ndipo Istio, pamodzi ndi OpenShift ndi Kubernetes, imapangitsa kutumiza ma microservices kukhala otopetsa komanso odziwikiratu - ndipo ndizabwino. Tikambirana za izi ndi zina zambiri mu gawo lachinayi komanso lomaliza mu mndandanda wa Istio.

Pamene kutopa kuli bwino

Kwa ife, kunyong'onyeka kumachitika pamapeto omaliza, pomwe chotsalira ndikukhala ndikuwona momwe zikuchitika. Koma pa izi muyenera kukonza zonse poyamba, ndipo zinthu zambiri zosangalatsa zikukuyembekezerani pano.

Mukatumiza mtundu watsopano wa pulogalamu yanu, ndikofunikira kulingalira njira zonse zochepetsera zoopsa. Kuthamanga mofanana ndi njira yamphamvu kwambiri komanso yotsimikiziridwa yoyesera, ndipo Istio imakulolani kuti mugwiritse ntchito "utumiki wachinsinsi" (mawonekedwe obisika a microservice yanu) kuti muchite izi popanda kusokoneza dongosolo la kupanga. Pali ngakhale mawu apadera pa izi - "Kuyambitsa Kwamdima", komwe kumayendetsedwa ndi ntchito yokhala ndi dzina laukazitape lofanana "kuyang'ana magalimoto".

Chonde dziwani kuti chiganizo choyamba cha ndime yapitayi chimagwiritsa ntchito mawu oti "deploy" osati "kutulutsa". Muyenera kutumiza-ndipo, kugwiritsa ntchito-microservice yanu nthawi zonse momwe mukufunira. Utumikiwu uyenera kulandira ndi kukonza magalimoto, kutulutsa zotsatira, komanso kulembera zipika ndikuwunika. Koma panthawi imodzimodziyo, ntchitoyi palokha sikuyenera kumasulidwa kuti ipangidwe. Kutumiza ndi kutulutsa mapulogalamu sizinthu zofanana nthawi zonse. Mutha kutumiza nthawi iliyonse yomwe mukufuna, koma kumasula pokhapokha mwakonzeka.

Kukonzekera kunyong'onyeka ndikosangalatsa

Yang'anani pa lamulo lotsatira la Istio, lomwe limapereka zopempha zonse za HTTP ku malingaliro a microservice v1 (zitsanzo zonse zotengedwa kuchokera Istio Tutorial GitHub repo), kwinaku akuwawonetsera ku malingaliro a v2 microservice:

Kuyambitsidwa Kwamdima ku Istio: Ntchito Zachinsinsi
Samalani chizindikirocho mirror: m'munsi mwa chinsalu - ndi ichi chimene chimayika magalimoto galasi. Inde, ndizosavuta!

Zotsatira za lamuloli zikhala kuti makina anu opangira (v1) apitiliza kuyankha zopempha zomwe zikubwera, koma zopemphazo zidzawonetsedwa molingana ndi v2, ndiye kuti, zobwereza zonse zidzapita kumeneko. Mwanjira iyi, mutha kuyesa v2 muzochitika zenizeni - pa data yeniyeni ndi magalimoto - popanda kusokoneza mwanjira iliyonse ndi machitidwe opangira. Kodi izi zimapangitsa kuyesa kuyesa kukhala kotopetsa? Inde, ndithudi. Koma zachitika mwachidwi.

Tiyeni tiwonjezere sewero

Chonde dziwani kuti mu v2 code ndikofunikira kuti pakhale zochitika zomwe zopempha zomwe zikubwera zingayambitse kusintha kwa data. Zopemphazo zimawonetsedwa mosavuta komanso momveka bwino, koma kusankha njira yopangira mayeso kuli ndi inu - ndipo izi ndizodetsa nkhawa.

Tiyeni tibwereze mfundo yofunika

Kukhazikitsa mwachinsinsi ndi magalasi a magalimoto (Kuyambitsa Kwamdima / Kufunsira Mirroring) kumatha kuchitika popanda kukhudza code mwanjira iliyonse.

Chakudya choganiza

Nanga bwanji ngati malo omwe zopempha zikuwonetsedwa zimatumiza zina osati ku v1, koma ku v2? Mwachitsanzo, 2 peresenti ya zopempha zonse kapena zongopempha kuchokera kwa gulu linalake la ogwiritsa ntchito. Ndiyeno, kuyang'ana kale momwe v1 imagwirira ntchito, pang'onopang'ono tumizani zopempha zonse ku mtundu watsopano. Kapena mosemphanitsa, bweretsani chilichonse ku v2 ngati china chake sichikuyenda bwino ndi vXNUMX. Ndikuganiza kuti imatchedwa Canary Deployment. amabwerera ku migodi, ndipo ngati zinali zochokera ku Chirasha, mwina zikanakhala ndi mawu ofotokoza amphaka), ndipo tsopano tiwona izi mwatsatanetsatane.

Kutumiza kwa Canary ku Istio: kufewetsa ntchito

Mosamala komanso pang'onopang'ono

Chofunikira cha mtundu wa Canary Deployment deployment ndi wosavuta kwambiri: mukakhazikitsa pulogalamu yanu yatsopano (kwa ife, microservice), mumapereka mwayi kwa kagulu kakang'ono ka ogwiritsa ntchito. Ngati zonse zikuyenda bwino, mumawonjezera gululi pang'onopang'ono mpaka mtundu watsopano utayamba kuchitapo kanthu, kapena - ngati sichoncho - pomaliza amasamutsa onse ogwiritsa ntchito. Poyambitsa mwanzeru komanso pang'onopang'ono mtundu watsopano ndikusintha ogwiritsa ntchito mowongolera, mutha kuchepetsa zoopsa ndikuwonjezera mayankho.

Zachidziwikire, Istio imathandizira Canary Deployment popereka zosankha zingapo zabwino zofunsira mwanzeru. Ndipo inde, zonsezi zitha kuchitika popanda kukhudza gwero lanu mwanjira iliyonse.

Kusefa msakatuli

Imodzi mwa njira zosavuta zosinthira ndikuwongolera motengera osatsegula. Tinene kuti mukufuna zopempha zokha kuchokera ku Safari osatsegula kupita ku v2. Umu ndi momwe zimachitikira:

Kuyambitsidwa Kwamdima ku Istio: Ntchito Zachinsinsi
Tiyeni tigwiritse ntchito lamulo la mayendedwe ndikugwiritsa ntchito lamulo curl Tidzatengera zopempha zenizeni ku microservice mu loop. Monga mukuwonera pachithunzichi, onse amapita ku v1:

Kuyambitsidwa Kwamdima ku Istio: Ntchito Zachinsinsi
Kodi magalimoto ali kuti pa v2? Popeza mu chitsanzo chathu zopempha zonse zidangochokera ku mzere wathu wolamula, kulibe. Koma tcherani khutu ku mizere yapansi pa chinsalu pamwambapa: izi ndi zomwe tidapempha kuchokera kwa msakatuli wa Safari, womwe unapanga izi:

Kuyambitsidwa Kwamdima ku Istio: Ntchito Zachinsinsi

Mphamvu zopanda malire

Talemba kale kuti mawu okhazikika amapereka mphamvu zamphamvu pakufunsira njira. Yang'anani chitsanzo chotsatirachi (tikuganiza kuti mumvetsetsa zomwe chimachita):

Kuyambitsidwa Kwamdima ku Istio: Ntchito Zachinsinsi
Pofika pano mwina muli ndi lingaliro la zomwe mawu okhazikika angachite.

Act Smart

Kuwongolera mwanzeru, makamaka kukonza mitu yapaketi pogwiritsa ntchito mawu okhazikika, kumakupatsani mwayi wowongolera magalimoto momwe mukufunira. Ndipo izi zimathandizira kwambiri kukhazikitsa kachidindo katsopano - ndikosavuta, sikufuna kusintha kachidindo komweko, ndipo ngati kuli kofunikira, zonse zitha kubwezeredwa mwachangu momwe zinalili.

Wokonda?

Kodi mukufunitsitsa kuyesa Istio, Kubernetes ndi OpenShift pakompyuta yanu? Gulu Gulu la Red Hat Developer anakonza zabwino kwambiri zolemba pamutuwu ndipo adapangitsa kuti mafayilo onse omwe ali nawo apezeke poyera. Choncho pitirirani ndipo musadzikanize nokha kalikonse.
 

Istio Egress: tulukani mu shopu ya zikumbutso

Pogwiritsa ntchito Istio pamodzi ndi Red Hat OpenShift ndi Kubernetes, mutha kupanga moyo wanu ndi ma microservices kukhala osavuta. Ma mesh a Istio amabisika mkati mwa Kubernetes pods, ndipo nambala yanu imayenda (makamaka) payokha. Kuchita, kusintha kosavuta, kufufuza, ndi zina zotero - zonsezi ndizosavuta kugwiritsa ntchito chifukwa chogwiritsa ntchito zida zam'mbali. Koma bwanji ngati microservice yanu ikufunika kulumikizana ndi mautumiki ena omwe ali kunja kwa dongosolo lanu la OpenShift-Kubernetes?

Apa ndipamene Istio Egress amabwera kudzapulumutsa. Mwachidule, zimangokulolani kuti mupeze zothandizira (werengani: "ntchito") zomwe sizili gawo la dongosolo lanu la Kubernetes pods. Ngati simupanga makonzedwe owonjezera, ndiye kuti mu Istio Egress chilengedwe magalimoto amayendetsedwa kokha mkati mwamagulu a pods ndi pakati pa masango oterowo pogwiritsa ntchito matebulo amkati a IP. Ndipo kubadwa kotereku kumagwira ntchito bwino bola ngati simukufunika kupeza ntchito kuchokera kunja.

Egress imakupatsani mwayi wolambalala matebulo a IP omwe ali pamwambapa, mwina kutengera malamulo a Egress kapena ma adilesi angapo a IP.

Tinene kuti tili ndi pulogalamu ya Java yomwe imapanga pempho la GET ku httpbin.org/headers.

(httpbin.org ndi njira yosavuta yoyesera zopempha zomwe zimatuluka.)

Ngati mulowa pa mzere wolamula curl http://httpbin.org/headers, tiwona izi:

Kuyambitsidwa Kwamdima ku Istio: Ntchito Zachinsinsi
Kapena mutha kutsegula adilesi yomweyo mu msakatuli:

Kuyambitsidwa Kwamdima ku Istio: Ntchito Zachinsinsi
Monga mukuwonera, ntchito yomwe ili pamenepo imangobweza mitu yomwe yadutsa.

Tikusintha zinthu zomwe zimachokera kunja

Tsopano tiyeni titenge Java code ya utumiki uwu, kunja kwa dongosolo lathu, ndikuyendetsa tokha, kumene, kumbukirani, Istio imayikidwa. (Mungathe kuchita izi nokha polumikizana maphunziro athu a Istio.) Popeza tapanga chithunzi choyenera ndikuchiyambitsa pa nsanja ya OpenShift, tidzatcha utumiki uwu ndi lamulo curl egresshttpbin-istioegress.$(minishift ip).nip.io, pambuyo pake tiwona izi pazenera:

Kuyambitsidwa Kwamdima ku Istio: Ntchito Zachinsinsi
O, chachitika ndi chiyani? Chirichonse chinangogwira ntchito. Kodi Not Found zikutanthauza chiyani? Ife tinangomuchitira izo curl.

Kukulitsa matebulo a IP ku intaneti yonse

Istio iyenera kuimbidwa mlandu (kapena kuyamikiridwa) chifukwa cha izi. Kupatula apo, Istio ndi zotengera zam'mbali zomwe zimayang'anira kuzindikira ndikuwongolera (ndi zina zambiri zomwe tidazinena kale). Pachifukwa ichi, matebulo a IP amangodziwa zomwe zili mkati mwa gulu lanu lamagulu. Ndipo httpbin.org ili kunja kotero sikutheka. Ndipo apa ndipamene Istio Egress amabwera kudzapulumutsa - popanda kusintha pang'ono pa code yanu.

Lamulo la Egress pansipa limakakamiza Istio kuti afufuze (ngati kuli kofunikira, ndiye pa intaneti yonse) pa ntchito yofunikira, munkhaniyi, httpbin.org. Monga mukuwonera pafayilo iyi (egress_httpbin.yml), magwiridwe antchito apa ndi osavuta:

Kuyambitsidwa Kwamdima ku Istio: Ntchito Zachinsinsi
Chotsalira ndikutsata lamulo ili:

istioctl create -f egress_httpbin.yml -n istioegress

Mutha kuwona malamulo a Egress ndi lamulo istioctl get egressrules:

Kuyambitsidwa Kwamdima ku Istio: Ntchito Zachinsinsi
Ndipo potsiriza, timayendetsanso lamulo kupiringa - ndipo tikuwona kuti zonse zimagwira ntchito:

Kuyambitsidwa Kwamdima ku Istio: Ntchito Zachinsinsi

Timaganiza momasuka

Monga mukuonera, Istio imakulolani kuti mukonzekere kuyanjana ndi dziko lakunja. Mwanjira ina, mutha kupangabe ntchito za OpenShift ndikuziwongolera kudzera Kubernetes, ndikusunga chilichonse m'matumba omwe amakwera ndi kutsika ngati pakufunika. Ndipo nthawi yomweyo, mutha kupeza mautumiki akunja kwa chilengedwe chanu. Ndipo inde, tikubwerezanso kuti zonsezi zitha kuchitika popanda kukhudza nambala yanu mwanjira iliyonse.

Ili linali positi yomaliza pamndandanda wa Istio. Khalani tcheru - pali zinthu zambiri zosangalatsa kutsogolo!

Source: www.habr.com

Kuwonjezera ndemanga