Istio ndi Kubernetes pakupanga. Gawo 2. Kutsata

Pomaliza nkhani Tidayang'ana pazigawo zoyambira za Service Mesh Istio, tidadziwa bwino dongosololi ndikuyankha mafunso akulu omwe nthawi zambiri amayamba kugwira ntchito ndi Istio. Mugawoli tiwona momwe tingasankhire zosonkhanitsira zofufuza pamaneti.

Istio ndi Kubernetes pakupanga. Gawo 2. Kutsata

Chinthu choyamba chomwe chimabwera m'maganizo kwa opanga ambiri ndi oyang'anira makina akamva mawu akuti Service Mesh akutsatira. Zowonadi, timawonjezera seva yapadera ya proxy pa node iliyonse ya netiweki yomwe magalimoto onse a TCP amadutsa. Zikuwoneka kuti tsopano ndizotheka kutumiza mosavuta zambiri zokhudzana ndi maukonde onse pamaneti. Tsoka ilo, kwenikweni pali ma nuances ambiri omwe ayenera kuganiziridwa. Tiyeni tiyang'ane pa iwo.

Malingaliro olakwika nambala wani: titha kupeza zambiri zapaintaneti kwaulere.

M'malo mwake, kwaulere, titha kungopeza ma node a dongosolo lathu lolumikizidwa ndi mivi komanso kuchuluka kwa data komwe kumadutsa pakati pa mautumiki (kwenikweni, kuchuluka kwa ma byte pa nthawi imodzi). Komabe, nthawi zambiri, mautumiki athu amalumikizana pamtundu wina wa protocol wosanjikiza, monga HTTP, gRPC, Redis, ndi zina zotero. Ndipo, inde, tikufuna kuwona zambiri zakutsata ma protocol awa; tikufuna kuwona kuchuluka kwa zopempha, osati kuchuluka kwa data. Tikufuna kumvetsetsa kuchedwa kwa zopempha pogwiritsa ntchito protocol yathu. Pomaliza, tikufuna kuwona njira yonse yomwe pempho limatenga kuyambira pakulowa mudongosolo lathu mpaka kulandira yankho kuchokera kwa wogwiritsa ntchito. Vutoli sililinso losavuta kulithetsa.

Choyamba, tiyeni tiwone momwe kutumiza ma spans kumawonekera kuchokera pamawonekedwe omanga ku Istio. Monga tikukumbukira kuchokera ku gawo loyamba, Istio ili ndi chigawo china chotchedwa Mixer chosonkhanitsa telemetry. Komabe, mu mtundu wamakono wa 1.0. *, kutumiza kumachitika mwachindunji kuchokera ku ma seva oyimira, omwe ndi ochokera ku nthumwi. Envoy proxy imathandizira kutumiza mipata yolondolera pogwiritsa ntchito zipkin protocol kunja kwa bokosi. Ndizotheka kulumikiza ma protocol ena, koma kudzera pa plugin. Ndi Istio nthawi yomweyo timapeza woyimira nthumwi wosonkhana komanso wokonzedwa, womwe umangothandizira zipkin protocol. Ngati tikufuna kugwiritsa ntchito, mwachitsanzo, protocol ya Jaeger ndikutumiza maulendo otsatizana kudzera ku UDP, ndiye kuti tifunika kupanga chithunzi chathu cha istio-proxy. Pali chithandizo cha mapulagini amtundu wa istio-proxy, koma akadali mu mtundu wa alpha. Choncho, ngati tikufuna kuchita popanda chiwerengero chachikulu cha makonda, mitundu yosiyanasiyana ya matekinoloje omwe amagwiritsidwa ntchito posungira ndi kulandira maulendo afupikitsa amachepetsedwa. Mwa machitidwe akuluakulu, tsopano mutha kugwiritsa ntchito Zipkin palokha, kapena Jaeger, koma tumizani zonse kumeneko pogwiritsa ntchito zipkin yogwirizana ndi protocol (yomwe imakhala yochepa kwambiri). Protocol ya zipkin imaphatikizapo kutumiza zidziwitso zonse kwa otolera kudzera pa HTTP protocol, yomwe ndiyokwera mtengo kwambiri.

Monga ndanenera kale, tikufuna kutsatira ma protocol apulogalamu. Izi zikutanthauza kuti ma seva a proxy omwe amaima pafupi ndi ntchito iliyonse ayenera kumvetsetsa mtundu wa kuyanjana komwe kukuchitika tsopano. Mwachikhazikitso, Istio imakonza madoko onse kuti akhale TCP wamba, zomwe zikutanthauza kuti palibe njira zomwe zidzatumizidwe. Kuti zotsatira zitumizidwe, muyenera, choyamba, yambitsani njirayi mu ma mesh config ndipo, chofunika kwambiri, tchulani madoko onse a mabungwe a utumiki wa kubernetes molingana ndi ndondomeko yomwe imagwiritsidwa ntchito muutumiki. Izi, mwachitsanzo, monga izi:

apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  ports:
  - port: 80
    targetPort: 80
    name: http
  selector:
    app: nginx

Mungagwiritsenso ntchito mayina apawiri monga http-matsenga (Istio adzawona http ndikuzindikira doko ngati http endpoint). Mtunduwu ndi: proto-owonjezera.

Kuti musaphatikize masinthidwe ambiri kuti mudziwe protocol, mutha kugwiritsa ntchito njira yonyansa: sungani gawo la Pilot panthawi yomwe ili bwino. imapanga logic yotanthauzira protocol. Pamapeto pake, padzakhala kofunikira kusintha malingalirowa kukhala okhazikika ndikusintha ku msonkhano wa mayina a madoko onse.

Kuti mumvetse ngati ndondomekoyi ikufotokozedwa bwino, muyenera kulowa muzitsulo zilizonse zam'mbali zomwe zili ndi nthumwi ya nthumwi ndikupempha ku doko la admin la mawonekedwe a nthumwi ndi malo / config_dump. Pazotsatira zosinthika, muyenera kuyang'ana gawo la ntchito yomwe mukufuna. Amagwiritsidwa ntchito ku Istio ngati chizindikiritso cha komwe pempho lapangidwa. Kuti musinthe makonda a parameter iyi ku Istio (tidzawona mumayendedwe athu), ndikofunikira kufotokozera mbendera ya serviceCluster poyambitsa chidebe cham'mbali. Mwachitsanzo, itha kuwerengedwa motere kuchokera kumitundu yochokera ku kubernetes API yotsika:

--serviceCluster ${POD_NAMESPACE}.$(echo ${POD_NAME} | sed -e 's/-[a-z0-9]*-[a-z0-9]*$//g')

Chitsanzo chabwino chomvetsetsa momwe kufufuza kumagwirira ntchito mwa nthumwi apa.

Mapeto pawokha potumiza mipata yolondolera akuyeneranso kufotokozedwa mu mbendera zotsegulira zoyimira nthumwi, mwachitsanzo: --zipkinAddress tracing-collector.tracing:9411

Malingaliro olakwika achiwiri: titha kupeza zopempha zonse motsika mtengo kudzera m'bokosilo

Mwatsoka, sichoncho. Kuvuta kwa kukhazikitsa kumadalira momwe mwagwiritsira ntchito kale kuyanjana kwa mautumiki. Ndichoncho chifukwa chiyani?

Chowonadi ndi chakuti kuti istio-proxy athe kumvetsetsa kulemberana kwa zopempha zomwe zikubwera ku ntchito ndi omwe akusiya ntchito yomweyo, sikokwanira kungoletsa magalimoto onse. Muyenera kukhala ndi chozindikiritsira chamtundu wina. Woyimira nthumwi wa HTTP amagwiritsa ntchito mitu yapadera, yomwe nthumwi imamvetsetsa kuti ndi pempho liti lautumiki lomwe limapanga zopempha zenizeni kuzinthu zina. Mndandanda wamitu yotere:

  • x-pempho ID,
  • x-b3-kutsata,
  • x-b3-spanid,
  • x-b3-makolospanid,
  • x-b3-chitsanzo,
  • x-b3-mbendera,
  • x-ot-span-context.

Ngati muli ndi mfundo imodzi, mwachitsanzo, kasitomala wofunikira, momwe mungawonjezere malingaliro otere, ndiye kuti zonse zili bwino, muyenera kungodikirira kuti laibulale iyi isinthidwe kwa makasitomala onse. Koma ngati muli ndi dongosolo losiyana kwambiri ndipo palibe kugwirizana pakusuntha kuchoka ku utumiki kupita kuntchito pa intaneti, ndiye kuti izi zikhoza kukhala vuto lalikulu. Popanda kuwonjezera malingaliro otere, zidziwitso zonse zotsata zizikhala "pamlingo umodzi". Ndiko kuti, tidzalandira mayanjano onse apakati pa mautumiki, koma sangakokedwe mu unyolo umodzi wodutsa pa intaneti.

Pomaliza

Istio imapereka chida chosavuta chosonkhanitsira zidziwitso pamaneti, koma muyenera kumvetsetsa kuti kuti mugwiritse ntchito muyenera kusintha dongosolo lanu ndikuganizira zomwe Istio ikukhazikitsa. Chotsatira chake, mfundo zazikulu ziwiri ziyenera kuthetsedwa: kufotokozera ndondomeko ya mlingo wa ntchito (yomwe iyenera kuthandizidwa ndi nthumwi ya nthumwi) ndi kukhazikitsa kutumiza kwa chidziwitso chokhudzana ndi kugwirizana kwa zopempha ku utumiki kuchokera ku zopempha kuchokera ku utumiki (pogwiritsa ntchito mitu. , pankhani ya HTTP protocol). Nkhanizi zikathetsedwa, timakhala ndi chida champhamvu chomwe chimatilola kusonkhanitsa zidziwitso kuchokera pa netiweki momveka bwino, ngakhale m'makina osasinthika olembedwa m'zilankhulo ndi zomangira zosiyanasiyana.

M'nkhani yotsatira yokhudza Service Mesh, tiwona imodzi mwamavuto akulu kwambiri ndi Istio - kugwiritsa ntchito kwakukulu kwa RAM ndi chotengera chilichonse cham'mbali ndikukambirana momwe mungathanirane nazo.

Source: www.habr.com

Kuwonjezera ndemanga