Istio sy Kubernetes amin'ny famokarana. Fizarana 2. Fikarohana

Amin'ny farany lahatsoratra Nijery ireo singa fototra amin'ny Service Mesh Istio izahay, nifankazatra tamin'ny rafitra ary namaly ireo fanontaniana lehibe izay matetika mipoitra rehefa manomboka miasa amin'ny Istio. Amin'ity ampahany ity dia hojerentsika ny fomba fandaminana ny fanangonana vaovao momba ny fanaraha-maso amin'ny tambajotra.

Istio sy Kubernetes amin'ny famokarana. Fizarana 2. Fikarohana

Ny zavatra voalohany tonga ao an-tsaina ho an'ny mpamorona sy ny mpitantana ny rafitra rehefa mandre ny teny hoe Service Mesh dia manara-maso. Eny tokoa, manampy mpizara proxy manokana ho an'ny node tambajotra tsirairay izay mandalo ny fifamoivoizana TCP rehetra. Toa azo atao izao ny mandefa mora foana ny vaovao momba ny fifandraisan'ny tambajotra rehetra amin'ny tambajotra. Indrisy anefa, raha ny zava-misy dia misy nuance maro tokony hodinihina. Andeha hojerentsika izy ireo.

Hevi-diso laharana voalohany: afaka mahazo angona fitsangatsanganana an-tserasera maimaim-poana isika.

Raha ny marina, amin'ny maha-maimaim-poana, dia tsy afaka mahazo afa-tsy ny nodes amin'ny rafitra misy antsika isika mifandray amin'ny zana-tsipìka sy ny tahan'ny angona mandalo eo anelanelan'ny serivisy (raha ny marina, ny isan'ny bytes isaky ny ora). Na izany aza, amin'ny ankamaroan'ny toe-javatra, ny serivisy dia mifandray amin'ny karazana protocole sosona fampiharana, toy ny HTTP, gRPC, Redis, sy ny sisa. Ary mazava ho azy fa te-hahita fampahalalana momba ny fanaraha-maso manokana ho an'ireo protocols ireo izahay; te-hijery ny tahan'ny fangatahana izahay fa tsy ny tahan'ny data. Te-hahatakatra ny faharetan'ny fangatahana mampiasa ny protocole izahay. Farany, tianay ny hahita ny lalana feno izay ilain'ny fangatahana avy amin'ny fidirana ao amin'ny rafitray mankany amin'ny fandraisana valiny avy amin'ny mpampiasa. Tsy dia mora voavaha intsony io olana io.

Voalohany, andeha hojerentsika hoe tahaka ny ahoana ny halehiben'ny fandefasana fandefasana amin'ny fomba fijery ara-javakanto ao Istio. Araka ny tsaroantsika tamin'ny ampahany voalohany, Istio dia manana singa misaraka antsoina hoe Mixer amin'ny fanangonana telemetry. Na izany aza, amin'ny dikan-teny 1.0.* ankehitriny, ny fandefasana dia atao mivantana avy amin'ny mpizara proxy, izany hoe avy amin'ny proxy iraka. Envoy proxy dia manohana ny fandefasana ny halaviran-dalana amin'ny alΓ lan'ny protocol zipkin ivelan'ny boaty. Azo atao ny mampifandray protocols hafa, fa amin'ny alΓ lan'ny plugin ihany. Miaraka amin'i Istio dia mahazo proxy iraka mivory sy voalamina avy hatrany izahay, izay tsy manohana afa-tsy ny protocol zipkin. Raha te hampiasa, ohatra, ny protocol Jaeger isika ary handefasana tracing amin'ny alΓ lan'ny UDP, dia mila manangana sary istio-proxy manokana isika. Misy ny fanohanana ireo plugins manokana ho an'ny istio-proxy, saingy mbola ao amin'ny version alpha. Noho izany, raha te-hanao tsy misy lamina mahazatra be dia be isika, dia mihena ny isan'ny teknolojia ampiasaina amin'ny fitehirizana sy ny fandraisana ny halaviran-dalana. Amin'ireo rafitra lehibe, raha ny marina, dia afaka mampiasa Zipkin mihitsy ianao, na Jaeger, fa alefaso any ny zavatra rehetra amin'ny alΓ lan'ny protocol mifanaraka amin'ny zipkin (izay tsy dia mahomby loatra). Ny protocol zipkin mihitsy dia misy ny fandefasana ny mombamomba ny trace rehetra amin'ny mpanangona amin'ny alΓ lan'ny protocol HTTP, izay lafo be.

Araka ny efa nolazaiko dia te-hanaraka ny protocols amin'ny ambaratonga fampiharana izahay. Midika izany fa ny mpizara proxy izay mijoro eo akaikin'ny serivisy tsirairay dia tsy maintsy mahatakatra ny karazana fifaneraserana mitranga ankehitriny. Amin'ny alΓ lan'ny default, Istio dia manamboatra ny seranana rehetra ho TCP tsotra, izay midika fa tsy misy soritra halefa. Mba handefasana trace dia tsy maintsy avelanao aloha ity safidy ity ao amin'ny config mesh lehibe ary, ny tena zava-dehibe, dia manonona ny seranan-tsambo rehetra an'ny serivisy serivisy kubernetes mifanaraka amin'ny protocol ampiasaina amin'ny serivisy. Izany hoe, ohatra, toy izao:

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

Azonao atao koa ny mampiasa anarana mitambatra toy ny http-magic (Istio dia hahita http ary hamantatra io seranan-tsambo io ho toy ny teboka http). Ny endrika dia: proto-extra.

Mba tsy hametahana fanitsiana marobe hamaritana ny protocol dia azonao atao ny mampiasa vahaolana maloto: apetaho ny singa Pilot amin'izao fotoana izao. manao lojika famaritana protocol. Amin'ny farany, mazava ho azy, dia ilaina ny manova io lojika io ho manara-penitra ary mifamadika amin'ny fifanarahana anarana ho an'ny seranana rehetra.

Mba hahatakarana raha tena voafaritra tsara ny protocole dia mila miditra ao amin'ny container sidecar ianao miaraka amin'ny proxy envoy ary mangataka amin'ny seranan-tsambo admin amin'ny interface envoy miaraka amin'ny toerana /config_dump. Ao amin'ny fanamafisana vokatr'izany dia mila mijery ny sahan'ny asa fanompoana tianao ianao. Ampiasaina ao amin'ny Istio izy io ho famantarana ny toerana nanaovana ny fangatahana. Mba hampifanarahana ny sandan'ity mari-pamantarana ity ao amin'ny Istio (ho hitantsika izany ao amin'ny rafitra fanaraha-maso) dia ilaina ny mamaritra ny sainan'ny serviceCluster amin'ny dingan'ny fandefasana ny kaontenera sidecar. Ohatra, azo kajy toy izao izany avy amin'ny fari-piainana azo avy amin'ny API kubernetes midina:

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

Ohatra tsara hahatakarana ny fomba fiasan'ny tracing amin'ny iraka eto.

Ny teboka farany amin'ny fandefasana ny halaviran-dalana dia tsy maintsy voafaritra ihany koa ao amin'ny sainam-pamokarana proxy iraka, ohatra: --zipkinAddress tracing-collector.tracing:9411

Hevi-diso laharana faharoa: afaka mahazo mora vidy ny fangatahana feno amin'ny alΓ lan'ny rafitra ivelan'ny boaty

Indrisy anefa fa tsy izany. Ny fahasarotan'ny fampiharana dia miankina amin'ny fomba efa nampiharanao ny fifandraisan'ny serivisy. Fa nahoana izany?

Ny zava-misy dia mba ahafahan'ny istio-proxy mahazo ny taratasin'ny fangatahana miditra amin'ny serivisy miaraka amin'ireo miala amin'ny serivisy mitovy, dia tsy ampy ny manakana ny fifamoivoizana rehetra. Mila manana karazana famantarana fifandraisana ianao. Ny proxy proxy HTTP dia mampiasa lohapejy manokana, izay ahafahan'ny iraka mahazo ny fangatahana manokana amin'ny serivisy miteraka fangatahana manokana amin'ny serivisy hafa. Lisitry ny lohateny toy izany:

  • x-request-id,
  • x-b3-traceid,
  • x-b3-espaniola,
  • x-b3-ray aman-dreny,
  • santionany x-b3,
  • saina x-b3,
  • x-ot-span-context.

Raha manana teboka tokana ianao, ohatra, mpanjifa fototra, izay ahafahanao manampy lojika toy izany, dia tsara ny zava-drehetra, mila miandry fotsiny ianao havaozina ity tranomboky ity ho an'ny mpanjifa rehetra. Fa raha manana rafitra tena heterogène ianao ary tsy misy fampiraisana amin'ny fifindrana amin'ny serivisy mankany amin'ny serivisy amin'ny tambajotra, dia mety ho olana lehibe izany. Raha tsy misy lojika toy izany dia ho "ambaratonga tokana" fotsiny ny fampahalalana momba ny fanaraha-maso rehetra. Izany hoe, horaisinay ny fifandraisana rehetra amin'ny serivisy, saingy tsy ho voapetaka amin'ny rojo zotra tokana amin'ny tambajotra izy ireo.

famaranana

Istio dia manome fitaovana mety amin'ny fanangonana vaovao momba ny fanaraha-maso amin'ny tamba-jotra iray, saingy tsy maintsy takatrao fa ho an'ny fampiharana dia mila mampifanaraka ny rafitrao ianao ary mandinika ny endri-javatra amin'ny fampiharana Istio. Vokatr'izany dia hevi-dehibe roa no tokony hovahana: famaritana ny protocol level application (izay tsy maintsy tohanan'ny proxy proxy) ary ny fametrahana ny fandefasana vaovao momba ny fampifandraisana ny fangatahana amin'ny serivisy avy amin'ny fangatahana avy amin'ny serivisy (mampiasa lohapejy. , raha ny protocol HTTP). Rehefa voavaha ireo olana ireo dia manana fitaovana mahery vaika ahafahantsika manangona vaovao avy amin'ny tambajotra mangarahara, eny fa na dia ao anatin'ny rafitra tena samihafa aza voasoratra amin'ny fiteny sy rafitra maro samihafa.

Ao amin'ny lahatsoratra manaraka momba ny Service Mesh, hojerentsika ny iray amin'ireo olana lehibe indrindra amin'ny Istio - ny fanjifana be dia be amin'ny RAM amin'ny alΓ lan'ny boaty proxy sidecar tsirairay ary hiresaka momba ny fomba hiatrehanao izany.

Source: www.habr.com

Add a comment