Istio ati Kubernetes ni iṣelọpọ. Apá 2. Ipasẹ

Ni ikẹhin article A wo awọn paati ipilẹ ti Mesh Mesh Service, ti mọ eto naa ati dahun awọn ibeere akọkọ ti o waye nigbagbogbo nigbati o bẹrẹ lati ṣiṣẹ pẹlu Istio. Ni apakan yii a yoo wo bi a ṣe le ṣeto akojọpọ alaye wiwa lori nẹtiwọki kan.

Istio ati Kubernetes ni iṣelọpọ. Apá 2. Ipasẹ

Ohun akọkọ ti o wa si ọkan fun ọpọlọpọ awọn idagbasoke ati awọn alabojuto eto nigbati wọn gbọ awọn ọrọ Iṣẹ Mesh n wa wiwa. Nitootọ, a ṣafikun olupin aṣoju pataki kan si ipade nẹtiwọọki kọọkan nipasẹ eyiti gbogbo ijabọ TCP kọja. O dabi pe o ṣee ṣe bayi lati firanṣẹ alaye ni irọrun nipa gbogbo awọn ibaraẹnisọrọ nẹtiwọọki lori nẹtiwọọki. Laanu, ni otitọ ọpọlọpọ awọn nuances wa ti o nilo lati ṣe akiyesi. Jẹ ki a wo wọn.

Nọmba aṣiṣe aṣiṣe: a le gba data irin-ajo ori ayelujara fun ọfẹ.

Ni otitọ, fun ọfẹ, a le gba awọn apa ti eto wa ni asopọ nipasẹ awọn ọfa ati oṣuwọn data ti o kọja laarin awọn iṣẹ (ni otitọ, nikan nọmba awọn baiti fun ẹyọkan akoko). Bibẹẹkọ, ni ọpọlọpọ awọn ọran, awọn iṣẹ wa ibasọrọ lori iru iru ilana Layer ohun elo, gẹgẹbi HTTP, gRPC, Redis, ati bẹbẹ lọ. Ati pe, nitorinaa, a fẹ lati rii alaye wiwa ni pataki fun awọn ilana wọnyi; a fẹ lati rii oṣuwọn ibeere, kii ṣe oṣuwọn data naa. A fẹ lati loye lairi ti awọn ibeere nipa lilo ilana wa. Lakotan, a fẹ lati rii ọna kikun ti ibeere kan gba lati wọle sinu eto wa si gbigba esi lati ọdọ olumulo. Iṣoro yii ko rọrun mọ lati yanju.

Ni akọkọ, jẹ ki a wo kini awọn akoko wiwa wiwa dabi lati oju wiwo ayaworan ni Istio. Bi a ṣe ranti lati apakan akọkọ, Istio ni paati lọtọ ti a pe ni Mixer fun gbigba telemetry. Sibẹsibẹ, ninu ẹya lọwọlọwọ 1.0.*, fifiranṣẹ ni a ṣe taara lati awọn olupin aṣoju, eyun, lati ọdọ aṣoju aṣoju. Aṣoju aṣoju ṣe atilẹyin fifiranṣẹ awọn akoko wiwa kakiri nipa lilo ilana zipkin jade kuro ninu apoti. O ṣee ṣe lati sopọ awọn ilana miiran, ṣugbọn nipasẹ ohun itanna nikan. Pẹlu Istio a lesekese apejọ ati atunto aṣoju aṣoju, eyiti o ṣe atilẹyin ilana zipkin nikan. Ti a ba fẹ lati lo, fun apẹẹrẹ, Ilana Jaeger ati firanṣẹ awọn itọpa wiwa nipasẹ UDP, lẹhinna a yoo nilo lati kọ aworan istio-proxy tiwa. Atilẹyin wa fun awọn afikun aṣa fun istio-proxy, ṣugbọn o tun wa ninu ẹya alpha. Nitorinaa, ti a ba fẹ ṣe laisi nọmba nla ti awọn eto aṣa, iwọn awọn imọ-ẹrọ ti a lo fun titoju ati gbigba awọn akoko wiwa ti dinku. Ninu awọn ọna ṣiṣe akọkọ, ni otitọ, bayi o le lo Zipkin funrararẹ, tabi Jaeger, ṣugbọn firanṣẹ ohun gbogbo nibẹ ni lilo ilana ibaramu zipkin (eyiti o kere pupọ). Ilana zipkin funrararẹ pẹlu fifiranṣẹ gbogbo alaye wiwa kakiri si awọn olugba nipasẹ ilana HTTP, eyiti o jẹ gbowolori pupọ.

Gẹgẹbi Mo ti sọ tẹlẹ, a fẹ lati wa kakiri awọn ilana ipele-elo. Eyi tumọ si pe awọn olupin aṣoju ti o duro lẹgbẹẹ iṣẹ kọọkan gbọdọ loye iru ibaraenisepo ti n ṣẹlẹ ni bayi. Nipa aiyipada, Istio tunto gbogbo awọn ebute oko oju omi lati jẹ TCP itele, eyiti o tumọ si pe ko si awọn itọpa ti yoo firanṣẹ. Ni ibere fun awọn itọpa lati firanṣẹ, o gbọdọ, ni akọkọ, mu aṣayan yii ṣiṣẹ ni atunto mesh akọkọ ati, kini o ṣe pataki, lorukọ gbogbo awọn ebute oko oju omi ti awọn ile-iṣẹ iṣẹ kubernetes ni ibamu pẹlu ilana ti o lo ninu iṣẹ naa. Iyẹn ni, fun apẹẹrẹ, bii eyi:

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

O tun le lo awọn orukọ agbo bi http-magic (Istio yoo rii http ati mọ ibudo yẹn bi aaye ipari http). Ọna kika jẹ: proto-extra.

Ni ibere ki o maṣe parẹ nọmba nla ti awọn atunto lati pinnu ilana naa, o le lo ibi-iṣẹ idọti: patch paati Pilot ni akoko ti o kan. performs bèèrè itumo kannaa. Ni ipari, nitorinaa, yoo jẹ pataki lati yi ọgbọn yii pada si boṣewa ki o yipada si apejọ orukọ fun gbogbo awọn ebute oko oju omi.

Lati le loye boya ilana naa jẹ asọye ni deede, o nilo lati lọ sinu eyikeyi awọn apoti ẹgbẹ ẹgbẹ pẹlu aṣoju aṣoju ati ṣe ibeere si ibudo abojuto ti wiwo aṣoju pẹlu ipo / config_dump. Ninu iṣeto abajade, o nilo lati wo aaye iṣẹ ti iṣẹ ti o fẹ. O ti wa ni lo ni Istio bi ohun idamo fun ibi ti awọn ìbéèrè ti wa ni ṣe. Lati le ṣe akanṣe iye paramita yii ni Istio (a yoo rii lẹhinna ninu eto wiwa wa), o jẹ dandan lati ṣalaye asia iṣẹpọ iṣẹ ni ipele ti ifilọlẹ eiyan ẹgbẹ. Fun apẹẹrẹ, o le ṣe iṣiro bii eyi lati awọn oniyipada ti a gba lati kubernetes API isalẹ:

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

Apẹẹrẹ ti o dara lati ni oye bi wiwa ṣe n ṣiṣẹ ni aṣoju jẹ nibi.

Aaye ipari funrararẹ fun fifiranṣẹ awọn akoko wiwa tun gbọdọ jẹ pato ninu awọn asia ifilọlẹ aṣoju aṣoju, fun apẹẹrẹ: --zipkinAddress tracing-collector.tracing:9411

Nọmba aṣiṣe aṣiṣe meji: a le ni laini iye owo gba awọn itọpa ti awọn ibeere nipasẹ eto lati inu apoti

Laanu, kii ṣe bẹ. Idiju imuse da lori bii o ti ṣe imuse ibaraenisepo awọn iṣẹ tẹlẹ. Kini idii iyẹn?

Otitọ ni pe ni ibere fun istio-aṣoju lati ni anfani lati loye ifọrọranṣẹ ti awọn ibeere ti nwọle si iṣẹ kan pẹlu awọn ti o lọ kuro ni iṣẹ kanna, ko to lati da gbogbo awọn ijabọ larọwọto. O nilo lati ni iru idanimọ ibaraẹnisọrọ kan. Aṣoju aṣoju HTTP nlo awọn akọle pataki, nipasẹ eyiti aṣoju loye iru ibeere kan pato si iṣẹ naa n ṣe awọn ibeere kan pato si awọn iṣẹ miiran. Akojọ ti iru awọn akọle:

  • x-ìbéèrè-id,
  • x-b3-itọpa,
  • x-b3-sipani,
  • x-b3-obi,
  • x-b3-apẹrẹ,
  • awọn asia x-b3,
  • x-ot-igba-ọrọ.

Ti o ba ni aaye kan, fun apẹẹrẹ, alabara ipilẹ kan, ninu eyiti o le ṣafikun iru kannaa, lẹhinna ohun gbogbo dara, o kan nilo lati duro fun ile-ikawe yii lati ni imudojuiwọn fun gbogbo awọn alabara. Ṣugbọn ti o ba ni eto oriṣiriṣi pupọ ati pe ko si iṣọkan ni gbigbe lati iṣẹ si iṣẹ lori nẹtiwọọki, lẹhinna eyi yoo ṣee ṣe pupọ julọ iṣoro nla. Laisi fifi iru ọgbọn bẹẹ kun, gbogbo alaye wiwa wa yoo jẹ “ipele kan ṣoṣo”. Iyẹn ni, a yoo gba gbogbo awọn ibaraenisepo laarin iṣẹ, ṣugbọn wọn kii yoo lẹ pọ sinu awọn ẹwọn ẹyọkan ti ọna nipasẹ nẹtiwọọki naa.

ipari

Istio pese ohun elo ti o rọrun fun gbigba alaye wiwa lori nẹtiwọọki kan, ṣugbọn o gbọdọ loye pe fun imuse iwọ yoo nilo lati mu eto rẹ pọ si ati ṣe akiyesi awọn ẹya ti imuse Istio. Bi abajade, awọn aaye akọkọ meji nilo lati yanju: asọye ilana ipele ipele ohun elo (eyiti o gbọdọ ni atilẹyin nipasẹ aṣoju aṣoju) ati ṣeto ifiranšẹ ifiranšẹ siwaju nipa asopọ ti awọn ibeere si iṣẹ lati awọn ibeere lati iṣẹ naa (lilo awọn akọle. , ninu ọran ti ilana HTTP). Nigbati awọn ọran wọnyi ba ni ipinnu, a ni ohun elo ti o lagbara ti o fun wa laaye lati gba alaye ni gbangba lati inu nẹtiwọọki, paapaa ni awọn eto oriṣiriṣi pupọ ti a kọ ni ọpọlọpọ awọn ede ati awọn ilana.

Ninu nkan ti o tẹle nipa Mesh Iṣẹ, a yoo wo ọkan ninu awọn iṣoro nla julọ pẹlu Istio - agbara nla ti Ramu nipasẹ apoti aṣoju ẹgbẹ kọọkan ati jiroro bi o ṣe le koju rẹ.

orisun: www.habr.com

Fi ọrọìwòye kun