Istio agus Kubernetes i dtáirgeadh. Cuid 2. Rianú

Sa cheann deireanach Airteagal D'fhéachamar ar bhunghnéithe Mogall Seirbhíse Istio, fuaireamar aithne ar an gcóras agus d'fhreagair muid na príomhcheisteanna a thagann chun cinn de ghnáth agus muid ag tosú ag obair le Istio. Sa chuid seo féachfaimid ar conas bailiú faisnéise rianaithe thar líonra a eagrú.

Istio agus Kubernetes i dtáirgeadh. Cuid 2. Rianú

Is é an chéad rud a thagann chun cuimhne go leor forbróirí agus riarthóirí córais nuair a chloiseann siad na focail atá á rianú ag Service Mogaill. Go deimhin, cuirimid seachfhreastalaí speisialta le gach nód líonra trína dtéann gach trácht TCP. Dealraíonn sé go bhfuil sé indéanta anois faisnéis a sheoladh go héasca faoi gach idirghníomhaíocht líonra ar an líonra. Ar an drochuair, i ndáiríre tá go leor nuances nach mór a chur san áireamh. Breathnaímid orthu.

Míthuiscint uimhir a haon: is féidir linn sonraí fánaíochta ar líne a fháil saor in aisce.

Go deimhin, le haghaidh réasúnta saor in aisce, ní féidir linn a fháil ach nóid ár gcóras ceangailte le saigheada agus an ráta sonraí a théann idir seirbhísí (i ndáiríre, ach líon na mbeart in aghaidh an aonaid ama). Mar sin féin, i bhformhór na gcásanna, cuireann ár gcuid seirbhísí cumarsáid thar chineál éigin de phrótacal ciseal iarratais, mar shampla HTTP, gRPC, Redis, agus mar sin de. Agus, ar ndóigh, ba mhaith linn faisnéis a rianú go sonrach do na prótacail seo; ba mhaith linn an ráta iarratais a fheiceáil, ní an ráta sonraí. Ba mhaith linn tuiscint a fháil ar fhollas na n-iarratas ag baint úsáide as ár bprótacal. Ar deireadh, ba mhaith linn an cosán iomlán a thógann iarratas ó logáil isteach inár gcóras go dtí freagra a fháil ón úsáideoir a fheiceáil. Níl an fhadhb seo chomh furasta a réiteach a thuilleadh.

Ar dtús, déanaimis féachaint ar an gcuma atá ar raonta rianaithe seolta ó thaobh ailtireachta de in Istio. Mar is cuimhin linn ón gcéad chuid, tá comhpháirt ar leith ag Istio ar a dtugtar Meascthóir chun teiliméadracht a bhailiú. Mar sin féin, sa leagan reatha 1.0.*, seoltar go díreach ó sheachfhreastalaithe, eadhon, ó sheachvótálaí toscaire. Tacaíonn seachfhreastalaí Toscaire le raonta rianaithe a sheoladh ag baint úsáide as an bprótacal zipkin as an mbosca. Is féidir prótacail eile a nascadh, ach trí bhreiseán amháin. Le Istio faighimid láithreach seachfhreastalaí toscaire comhchruinnithe agus cumraithe, a thacaíonn leis an bprótacal zipkin amháin. Más mian linn, mar shampla, prótacal Jaeger a úsáid agus raonta rianaithe a sheoladh trí UDP, ansin beidh orainn ár n-íomhá istio-seachfhreastalaí féin a thógáil. Tá tacaíocht ann do fhorlíontáin saincheaptha le haghaidh istio-seachfhreastalaí, ach tá sé fós sa leagan alfa. Dá bhrí sin, más mian linn a dhéanamh gan líon mór socruithe saincheaptha, laghdaítear an raon teicneolaíochtaí a úsáidtear chun raonta rianaithe a stóráil agus a fháil. De na príomhchórais, go deimhin, is féidir leat Zipkin féin, nó Jaeger a úsáid anois, ach seol gach rud ann ag baint úsáide as an bprótacal comhoiriúnach zipkin (nach bhfuil i bhfad níos éifeachtaí). Baineann an prótacal zipkin féin le gach faisnéis rianaithe a sheoladh chuig bailitheoirí tríd an bprótacal HTTP, rud atá costasach go leor.

Mar a dúirt mé cheana, ba mhaith linn prótacail ar leibhéal an fheidhmchláir a rianú. Ciallaíonn sé seo go gcaithfidh na freastalaithe seachfhreastalaí a sheasann in aice le gach seirbhís a thuiscint cén cineál idirghníomhaíochta atá ag tarlú anois. De réir réamhshocraithe, cumraíonn Istio gach calafort mar TCP simplí, rud a chiallaíonn nach seolfar aon rianta. Chun rianta a sheoladh, ní mór duit, ar an gcéad dul síos, an rogha seo a chumasú sa phríomh-chumraíocht mogalra agus, rud atá an-tábhachtach, gach calafort de chuid aonán seirbhíse kubernetes a ainmniú de réir an phrótacail a úsáidtear sa tseirbhís. Is é sin, mar shampla, mar seo:

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

Is féidir leat comhainmneacha cosúil le http-draíochta a úsáid freisin (feicfidh Istio http agus aithneoidh sé an port sin mar chríochphointe http). Is é an fhormáid: proto-extra.

D'fhonn gan líon mór cumraíochtaí a phaisteáil chun an prótacal a chinneadh, is féidir leat réiteach oibre salach a úsáid: paiste an chomhpháirt Píolótach i láthair na huaire nuair atá sé díreach feidhmíonn sé loighic sainmhínithe prótacail. Sa deireadh, ar ndóigh, beidh sé riachtanach an loighic seo a athrú go caighdeán agus athrú chuig coinbhinsiún ainmniúcháin do gach calafort.

Chun a thuiscint an bhfuil an prótacal sainithe i gceart, ní mór duit dul isteach in aon cheann de na coimeádáin taobhcharr le seachfhreastalaí toscaire agus iarratas a dhéanamh chuig calafort riaracháin an chomhéadain toscaire le suíomh /config_dump. Sa chumraíocht mar thoradh air, ní mór duit féachaint ar an réimse oibríochta na seirbhíse atá ag teastáil. Úsáidtear é in Istio mar aitheantóir don áit a ndéantar an t-iarratas. D'fhonn luach an pharaiméadar seo a shaincheapadh in Istio (feicfimid é inár gcóras rianaithe ina dhiaidh sin), is gá an bhratach serviceCluster a shonrú nuair a sheoltar an coimeádán taobhcharr. Mar shampla, is féidir é a ríomh mar seo ó athróga a fuarthas ón API kubernetes anuas:

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

Sampla maith é chun tuiscint a fháil ar an gcaoi a n-oibríonn rianú in thoscaire anseo.

Ní mór an críochphointe féin chun raonta rianaithe a sheoladh a shonrú freisin i mbratacha seoladh seachfhreastalaí an toscaire, mar shampla: --zipkinAddress tracing-collector.tracing:9411

Míthuiscint uimhir a dó: is féidir linn rianta iomlán na n-iarratas a fháil tríd an gcóras as an mbosca

Ar an drochuair, nach bhfuil sé. Braitheann castacht an chur chun feidhme ar an gcaoi a bhfuil idirghníomhú na seirbhísí curtha i bhfeidhm agat cheana féin. Cén fáth é sin?

Is é fírinne an scéil, ionas go mbeidh istio-seachfhreastalaí in ann comhfhreagras na n-iarratas isteach ar sheirbhís leo siúd a fhágann an tseirbhís chéanna a thuiscint, ní leor an trácht go léir a thascradh. Ní mór duit aitheantóir cumarsáide de chineál éigin a bheith agat. Úsáideann seachfhreastalaí toscaire HTTP ceanntásca speisialta, trína dtuigeann an toscaire cén iarratas sonrach ar an tseirbhís a ghineann iarratais shonracha ar sheirbhísí eile. Liosta ceanntásca dá leithéid:

  • x-iarratas-aitheantas,
  • x-b3-traceid,
  • x-b3-spanid,
  • x-b3-tuismitheora,
  • x-b3-shampláilte,
  • bratacha x-b3,
  • x-ot-span-comhthéacs.

Má tá pointe amháin agat, mar shampla, cliant bunúsach, inar féidir leat loighic den sórt sin a chur leis, ansin tá gach rud go breá, ní mór duit ach fanacht leis an leabharlann seo a nuashonrú do gach cliant. Ach má tá córas an-ilchineálach agat agus nach bhfuil aontú ann maidir le bogadh ó sheirbhís go seirbhís thar an líonra, is dócha gur fadhb mhór a bheidh ann. Gan an loighic sin a chur leis, ní bheidh sa fhaisnéis rianaithe go léir ach “aon leibhéal”. Is é sin, gheobhaidh muid gach idirghníomhaíocht idirseirbhíse, ach ní bheidh siad greamaithe isteach slabhraí aonair pasáiste tríd an líonra.

Conclúid

Soláthraíonn Istio uirlis áisiúil chun faisnéis rianaithe a bhailiú thar líonra, ach caithfidh tú a thuiscint go mbeidh ort do chóras a oiriúnú agus gnéithe chur i bhfeidhm Istio a chur san áireamh chun é a chur i bhfeidhm. Mar thoradh air sin, is gá dhá phríomhphointe a réiteach: prótacal leibhéal an fheidhmchláir a shainiú (a chaithfidh an seachfhreastalaí toscaire tacú leis) agus cur ar aghaidh faisnéise a shocrú maidir le ceangal iarratas chuig an tseirbhís ó iarratais ón tseirbhís (ag baint úsáide as ceanntásca , i gcás an phrótacail HTTP). Nuair a réitítear na saincheisteanna seo, tá uirlis chumhachtach againn a ligeann dúinn faisnéis a bhailiú go trédhearcach ón líonra, fiú i gcórais an-ilchineálacha atá scríofa i go leor teangacha agus creataí éagsúla.

Sa chéad alt eile faoi Mhogaill Seirbhíse, féachfaimid ar cheann de na fadhbanna is mó le Istio - an tomhaltas mór RAM ag gach seachfhreastalaí taobhcharr agus pléifimid conas is féidir leat déileáil leis.

Foinse: will.com

Add a comment