Istio na Kubernetes na mmepụta. Nkebi 2. Nchọgharị

Na nke ikpeazu ederede Anyị lere anya na akụkụ ndị bụ isi nke Service Mesh Istio, mara usoro ahụ ma zaa ajụjụ ndị bụ isi na-ebilite mgbe ịmalite ịrụ ọrụ na Istio. N'akụkụ a, anyị ga-eleba anya ka esi ahazi nchịkọta ozi n'ime netwọkụ.

Istio na Kubernetes na mmepụta. Nkebi 2. Nchọgharị

Ihe mbụ na-abata n'uche maka ọtụtụ ndị mmepe na ndị na-ahụ maka sistemụ mgbe ha nụrụ okwu Mesh Service na-achọ. N'ezie, anyị na-agbakwunye ihe nkesa proxy pụrụ iche na ọnụ netwọk ọ bụla nke okporo ụzọ TCP niile na-agafe. Ọ dị ka ọ ga-ekwe omume ugbu a izipu ozi gbasara mmekọrịta netwọkụ niile na netwọkụ. O di nwute, n'eziokwu enwere otutu nuances nke kwesiri iburu n'uche. Ka anyị lee ha anya.

Nọmba ezighi ezi: anyị nwere ike nweta data njem n'ịntanetị n'efu.

N'ezie, n'ihi na dịtụ free, anyị nwere ike na-enweta naanị ọnụ nke anyị usoro ejikọrọ akụ na data ọnụego na-agafe n'etiti ọrụ (n'ezie, naanị ọnụ ọgụgụ nke bytes kwa unit nke oge). Agbanyeghị, n'ọtụtụ oge, ọrụ anyị na-ekwurịta okwu n'ụdị protocol oyi akwa ngwa, dị ka HTTP, gRPC, Redis, na ndị ọzọ. Ma, n'ezie, anyị chọrọ ịhụ ịchọta ozi kpọmkwem maka usoro iwu ndị a; anyị chọrọ ịhụ ọnụego arịrịọ, ọ bụghị ọnụego data. Anyị chọrọ ịghọta latency nke arịrịọ site na iji protocol anyị. N'ikpeazụ, anyị chọrọ ịhụ ụzọ zuru ezu nke arịrịọ na-ewe site na ịbanye n'ime usoro anyị iji nweta nzaghachi n'aka onye ọrụ. Nsogbu a adịkwaghị mfe idozi.

Nke mbụ, ka anyị leba anya n'ihe izipu oge nchọta dị ka n'echiche ụkpụrụ ụlọ na Istio. Dịka anyị na-echeta site na akụkụ nke mbụ, Istio nwere ihe dị iche iche akpọrọ Mixer maka ịnakọta telemetry. Otú ọ dị, na ụdị 1.0 dị ugbu a.*, a na-ezigara ya ozugbo site na sava proxy, ya bụ, site na proxy ndị nnọchiteanya. Onye nnọchi anya onye nnọchi anya na-akwado izipu oge nchọta site na iji usoro zipkin pụọ na igbe ahụ. Ọ ga-ekwe omume ijikọ protocol ndị ọzọ, mana naanị site na ngwa mgbakwunye. Site na Istio, anyị ga-enweta proxy onye nnọchi anya gbakọtara na ahaziri, nke na-akwado naanị zipkin protocol. Ọ bụrụ na anyị chọrọ iji, dị ka ihe atụ, Jaeger protocol na zipu tracing spans site na UDP, mgbe ahụ anyị ga-mkpa na-ewu anyị onwe anyị istio-proxy image. Enwere nkwado maka plugins omenala maka istio-proxy, mana ọ ka dị na ụdị alfa. Ya mere, ọ bụrụ na anyị chọrọ ime na-enweghị ọnụ ọgụgụ dị ukwuu nke ntọala omenala, a na-ebelata ihe dị iche iche nke teknụzụ ndị a na-eji maka ịchekwa na ịnweta nchọta oge. N'ime isi usoro, n'ezie, ugbu a ị nwere ike iji Zipkin n'onwe ya, ma ọ bụ Jaeger, ma ziga ihe niile n'ebe ahụ site na iji zipkin dakọtara protocol (nke bụ nnọọ obere arụmọrụ). Usoro zipkin n'onwe ya gụnyere izipu ozi nchọta niile na ndị nchịkọta site na protocol HTTP, nke dị oke ọnụ.

Dịka m kwurula, anyị chọrọ ịchọpụta usoro ọkwa ọkwa ngwa. Nke a pụtara na sava proxy na-eguzo n'akụkụ ọrụ ọ bụla ga-aghọtarịrị ụdị mmekọrịta na-eme ugbu a. Site na ndabara, Istio na-ahazi ọdụ ụgbọ mmiri niile ka ọ bụrụ TCP dị larịị, nke pụtara na agaghị ezipụ akara ọ bụla. Iji zipu tracets, ị ga-ebu ụzọ mee ka nhọrọ a dị na nhazi mesh isi na, nke dị oke mkpa, kpọọ aha ọdụ ụgbọ mmiri niile nke ụlọ ọrụ kubernetes dị ka usoro a na-eji na ọrụ ahụ si dị. Ya bụ, ọmụmaatụ, dị ka nke a:

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

Ịnwekwara ike iji aha ndị dị ka http-magic (Istio ga-ahụ http wee mata ọdụ ụgbọ mmiri ahụ dị ka njedebe http). Usoro a bụ: proto-extra.

Ka ị ghara ịkwanye ọnụ ọgụgụ dị ukwuu nke nhazi iji chọpụta usoro iwu ahụ, ị ​​​​nwere ike iji ebe arụrụ arụrụ arụ: kpachie akụrụngwa pilot n'oge ọ dị. na-arụ ọrụ nkọwa nkọwa protocol. Na njedebe, n'ezie, ọ ga-adị mkpa ịgbanwe echiche a na ọkọlọtọ ma gbanwee gaa na mgbakọ aha maka ọdụ ụgbọ mmiri niile.

Iji ghọta ma a kọwapụtara usoro ahụ nke ọma, ịkwesịrị ịbanye n'ime igbe akụkụ ọ bụla yana proxy onye nnọchite ma rịọ arịrịọ n'ọdụ ụgbọ mmiri nke onye ozi nwere ọnọdụ / config_dump. Na nhazi nke arụpụta, ịkwesịrị ileba anya na mpaghara ọrụ nke ọrụ achọrọ. A na-eji ya na Istio dị ka ihe nchọpụta maka ebe a rịọrọ arịrịọ. Iji hazie uru nke paramita a na Istio (anyị ga-ahụ ya na sistemụ nchụso anyị), ọ dị mkpa ịkọwapụta ọkọlọtọ ụyọkọ ọrụ na ọkwa nke ịmalite akpa sidecar. Dịka ọmụmaatụ, enwere ike gbakọọ ya dịka nke a site na mgbanwe ndị enwetara site na kubernetes API ala:

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

Ezi ihe atụ iji ghọta ka ịchụ nta ọrụ n'ime ndị ozi bụ ebe a.

A ga-akọwarịrị ebe njedebe n'onwe ya maka izipu oge nchụso n'ime ọkọlọtọ mmalite proxy, dịka ọmụmaatụ: --zipkinAddress tracing-collector.tracing:9411

Nọmba ezighi ezi nke abụọ: anyị nwere ike nweta n'ụzọ zuru oke nke arịrịọ site na sistemụ site na igbe

N'ụzọ dị mwute, ọ bụghị. Mgbagwoju anya nke mmejuputa dabere na otu i siri mejuputa mmekọrịta nke ọrụ. Gịnị kpatara nke ahụ?

Nke bụ eziokwu bụ na ka istio-proxy nwee ike ịghọta akwụkwọ ozi nke arịrịọ na-abata na ọrụ na ndị na-ahapụ otu ọrụ ahụ, ọ gaghị ezuru naanị igbochi okporo ụzọ niile. Ịkwesịrị ịnwe ụdị njirimara nzikọrịta ozi. Onye nnọchi anya HTTP na-eji nkụnye eji isi mee pụrụ iche, nke onye nnọchi anya na-aghọta nke arịrịọ a kapịrị ọnụ maka ọrụ ahụ na-ewepụta arịrịọ akọwapụtara maka ọrụ ndị ọzọ. Ndepụta nke nkụnye ndị dị otú ahụ:

  • x-arịrịọ-id
  • x-b3 - akara,
  • x-b3 - spain,
  • x-b3-nne na nna,
  • x-b3 - atụnyere,
  • x-b3-ọkọlọtọ,
  • x-ot-span-okwu.

Ọ bụrụ na ị nwere otu isi ihe, dịka ọmụmaatụ, onye ahịa bụ isi, nke ị nwere ike itinye mgbagha dị otú ahụ, mgbe ahụ, ihe niile dị mma, naanị ị ga-echere ka ọbá akwụkwọ a ka emelite maka ndị ahịa niile. Ma ọ bụrụ na ị nwere usoro dị iche iche na enweghị njikọ na ịkwaga site na ọrụ gaa na netwọk, mgbe ahụ nke a ga-abụ nnukwu nsogbu. Na-agbakwunyeghị mgbagha dị otú ahụ, ozi nchọta niile ga-abụ naanị "otu ọkwa". Ya bụ, anyị ga-enweta mmekọrịta niile n'etiti ọrụ, mana agaghị etinye ha n'otu eriri nke ụzọ site na netwọkụ.

nkwubi

Istio na-enye ngwá ọrụ dị mma maka ịnakọta ozi n'ime netwọkụ, mana ị ga-aghọta na maka mmejuputa, ị ga-achọ ịgbanwe usoro gị ma buru n'uche njirimara nke mmejuputa Istio. N'ihi ya, ọ dị mkpa ka edozi isi ihe abụọ bụ isi: ịkọwapụta usoro ọkwa ọkwa ngwa (nke onye nnọchiteanya ahụ ga-akwadorịrị) na ịmepụta nnyefe ozi gbasara njikọ nke arịrịọ na ọrụ site na arịrịọ sitere na ọrụ (iji nkụnye eji isi mee ihe). , n'ihe gbasara protocol HTTP). Mgbe edozi nsogbu ndị a, anyị nwere ngwá ọrụ dị ike nke na-enye anyị ohere ịnakọta ozi na netwọk n'ụzọ doro anya, ọbụlagodi na usoro dị iche iche nke edere n'asụsụ dị iche iche na nhazi.

N'okwu na-esote banyere Mesh Service, anyị ga-eleba anya na otu n'ime nsogbu kachasị na Istio - nnukwu oriri RAM site na igbe proxy nke ọ bụla ma tụlee otu ị ga-esi merie ya.

isi: www.habr.com

Tinye a comment