Se faasologa o pou i luga ole Istio Service Mesh

O loʻo matou amataina se faasologa o pou e faʻaalia ai nisi o le tele o gafatia o le Istio Service Mesh pe a tuʻufaʻatasia ma Red Hat OpenShift ma Kubernetes.

Se faasologa o pou i luga ole Istio Service Mesh

Vaega muamua, i aso nei:

  • Seʻi o tatou faʻamatalaina le manatu o Kubernetes sidecar containers ma faʻatulagaina le leitmotif o lenei faasologa o pou: "e te le manaʻomia le suia o se mea i lau code".
  • Sei o tatou fa'ailoa atu le mea taua ole Istio - tulafono fa'aalaala. O isi mea uma Istio o loʻo fausia i luga o latou, talu ai o tulafono ia e mafai ai ona e faʻatonuina feoaiga i microservices, faʻaaoga faila YAML i fafo atu o le code code. O loʻo matou mafaufau foʻi i le polokalame faʻapipiʻi Canary Deployment. Ponesi o le Tausaga Fou – 10 lesona fegalegaleai ile Istio


O le vaega lona lua, o loʻo lata mai, o le a taʻu atu ia te oe:

  • Fa'afefea ona fa'aogaina e Istio le Pool Ejection fa'atasi ma le Circuit Breaker ma fa'aalia ai le fa'ataga e Istio e aveese ai se pusa ua mate po'o le lelei fo'i le fa'atinoga mai le va'aiga paleni.
  • O le a tatou vaʻavaʻai foʻi ile autu ole Circuit Breaker mai le pou muamua e vaʻai pe faʻafefea ona faʻaogaina Istio iinei. Matou te faʻaali atu ia te oe le auala e faʻaogaina ai fefaʻatauaiga ma faʻatautaia mea sese i fesoʻotaʻiga e faʻaaoga ai faila faʻatulagaina o le YAML ma faʻatonuga faʻatonu e aunoa ma sina suiga i le code code.

Vaega tolu:

  • O se tala e uiga i le suʻeina ma le mataʻituina, ua uma ona fausia i totonu pe faigofie ona faʻaopoopo i Istio. Matou te faʻaali atu ia te oe le faʻaogaina o mea faigaluega e pei o Prometheus, Jaeger, ma Grafana faʻatasi ma le OpenShift scaling e faʻafaigofie ai le faʻatautaia o fausaga microservice.
  • Matou te siitia mai le mataituina ma le taulimaina o mea sese i le faʻaofiina i totonu o le polokalama ma le loto i ai. I se isi faaupuga, matou te aʻoaʻoina pe faʻafefea ona fai se tui faʻaletonu e aunoa ma le suia o le code source, lea e taua tele mai le suʻega suʻega - talu ai afai e te suia le code lava ia mo lenei mea, o loʻo i ai se tulaga lamatia o le faʻaofiina o mea sese faaopoopo.

Mulimuli ane, i le pou mulimuli ile Istio Service Mesh:

  • Tatou o i le Itu Pogisa. E sili atu le saʻo, o le a tatou aʻoaʻoina le faʻaogaina o le Dark Launch scheme, pe a faʻapipiʻi le code ma faʻataʻitaʻi saʻo i luga o faʻamaumauga o gaosiga, ae le afaina ai le faʻaogaina o le faiga i soʻo se auala. O le mea lea e maua ai le malosi o Istio e vaeluaina ai fefaʻatauaiga. Ma o le mafai ona faʻataʻitaʻi i luga o faʻamaumauga o gaosiga ola e aunoa ma le aʻafiaina o le faʻaogaina o le faiga tau i soʻo se auala o le auala sili lea ona faʻamaonia o le faʻamaonia.
  • Fausia i luga o le Pogisa Launch, matou te faʻaali atu ia te oe le faʻaogaina o le Canary Deployment faʻataʻitaʻiga e faʻaitiitia ai le lamatiaga ma faʻafaigofie ai ona maua se code fou i le gaosiga. Canary Deployment lava ia e mamao mai le fou, ae faʻatagaina oe e Istio e faʻatino lenei polokalame i na o faila YAML faigofie.
  • Ma le mea mulimuli, matou te faʻaali atu ia te oe le faʻaogaina o le Istio Egress e tuʻuina atu ai avanoa i auaunaga ia i latou o loʻo i fafo atu o au fuifui ina ia mafai ai ona faʻaogaina le gafatia o Istio pe a galue ma le Initaneti.

O lea la, o lea ua tatou o...

Istio mata'ituina ma pulega meafaigaluega - mea uma e te manaʻomia e faʻapipiʻi ai microservices i totonu o se masini tautua mesh tautua.

O le a le Istio Service Mesh

O le 'au'aunaga mesh e fa'atino galuega e pei o le mata'ituina o feoaiga, fa'atonuga o avanoa, su'esu'eina, saogalemu, fa'apalepale sese ma isi mea aoga mo se vaega o auaunaga. Istio e faʻatagaina oe e faia uma nei mea e aunoa ma sina suiga itiiti i le code o auaunaga lava ia. O le a le mea lilo o togafiti faataulaitu? O loʻo faʻapipiʻi e Istio lana lava sui i auaunaga taʻitasi i le tulaga o se atigipusa taʻavale (sidecar o se taʻavale uila afi), mulimuli ane o fefaʻatauaiga uma i lenei auaunaga e alu atu i le sui, lea, e taʻitaʻia e faiga faʻavae, filifili pe faʻapefea, o afea ma pe o lenei fefaʻatauaiga. e tatau lava ona o'o i le tautua. E mafai foʻi e Istio ona faʻatinoina auala faʻapitoa DevOps e pei o le faʻapipiʻiina o canary, vaʻavaʻavaʻa, tui faʻaletonu ma le tele o isi.

Fa'afefea ona galue Istio i koneteina ma Kubernetes

O le Istio service mesh o se faʻataʻitaʻiga faʻataʻitaʻiga o mea uma e manaʻomia e fatu ma pulea ai microservices: mataʻituina, suʻesuʻeina, vaʻavaʻavaʻa, taʻavale, paleni o uta, tui faʻaletonu, toe faʻataʻitaʻi, taimi, faʻata, faʻatonutonu avanoa, faʻatapulaʻaina o fua ma isi mea. Ma e ui lava i aso nei o loʻo i ai le tele o faletusi e faʻatino saʻo nei galuega i le code, faatasi ai ma Istio e mafai ona e mauaina mea tutusa uma e aunoa ma le suia o se mea i lau code.

E tusa ai ma le faʻataʻitaʻiga faʻataʻitaʻiga, o Istio e tamoʻe i totonu o se pusa Linux, lea e tu i le tasi Kubernetes-pod faʻatasi ai ma se auaunaga faʻatonutonu ma tui ma faʻapipiʻi galuega ma faʻamatalaga e tusa ai ma le faʻatulagaina. Matou te faʻamamafa atu o lau oe lava faʻatulagaga, ma e ola i fafo atu o lau code. O le mea lea, o le code e sili atu ona faigofie ma puupuu.

O le mea taua foi o le vaega faʻatinoina o microservices e foliga mai e leai se auala e fesoʻotaʻi ma le code lava ia, o lona uiga o la latou gaioiga e mafai ona faʻafeiloaʻi saogalemu i tagata tomai faapitoa IT. Ioe, aisea e tatau ai ona nafa le tagata atiaʻe mo tapuni taʻavale ma tui faʻaletonu? Tali, ioe, ae fa'agasolo ma fa'atupu? Afai e te aveese uma nei mea mai le code, o le a mafai e le au fai polokalame ona taulaʻi atoatoa i galuega faʻaoga. Ma o le code lava ia o le a faapuupuu ma faigofie.

Mesh tautua

Istio, o loʻo faʻatinoina galuega mo le puleaina o microservices i fafo atu o latou tulafono, o le manatu o se Mesh Mesh. I se isi faaupuga, o se vaega faʻamaopoopoina o se tasi pe sili atu binaries e fausia ai se mata o fesoʻotaʻiga galuega.

Fa'afefea ona galue Istio ma microservices

O le mea lea e foliga mai ai le galuega o pusa taʻavale faʻatasi ma Kubernetes и Minisifi vaaiga a le manulele: faʻalauiloa se faʻataʻitaʻiga o le Minishift, fai se poloketi mo Istio (tatou taʻua o le "istio-system"), faʻapipiʻi ma faʻatautaia uma vaega e fesoʻotaʻi ma Istio. Ma, a'o e fatuina galuega faatino ma pods, e te fa'aopoopoina fa'amatalaga fa'atulagaina i au fa'agaioiga, ma amata fa'aaoga e au pods Istio. O se ata fa'afaigofie e pei o lenei:

Se faasologa o pou i luga ole Istio Service Mesh

Ole taimi nei e mafai ona e suia tulaga Istio i le faasologa, mo se faʻataʻitaʻiga, e faʻatulaga tui sese, lagolago Canary Deployment poʻo isi faʻaaliga Istio - ma nei mea uma e aunoa ma le paʻi i le numera o talosaga latou lava. Se'i fa'apea e te mana'o e toe fa'afo'i uma fefa'ataua'iga i luga ole laiga mai tagata fa'aoga o lau tagata fa'atau tele (Foo Corporation) i se fa'afouga fou o le saite. Ina ia faia lenei mea, naʻo le fatuina o se Istio routing rule o le a suʻe @foocorporation.com i le ID faʻaoga ma toe faʻafeiloaʻi e tusa ai. Mo isi tagata faʻaoga uma, e leai se mea e suia. I le taimi nei, o le a e su'eina filemu le lomiga fou o le saite. Ma ia maitauina e te le manaʻomia le faʻaaofia ai o tagata atiaʻe mo lenei mea.

Ma o le a tatau ona e totogia taugata mo lena mea?

E leo mea uma. E fai si vave o Istio ma ua tusia i totonu Go ma faia ai se mea itiiti lava i luga. E le gata i lea, o le leiloa o le gaosiga i luga ole laiga e faʻafefeina e le faʻateleina o le gaosiga o le atinaʻe. Le itiiti ifo i le talitonuga: aua nei galo e taua le taimi o tagata atiaʻe. Ae mo tau o polokalama, Istio o le polokalama tatala punaoa, o lea e mafai ai ona e mauaina ma faʻaaogaina e aunoa ma se totogi.

Fa'atonu oe lava

O le Red Hat Developer Experience Team ua atiaʻe se lima loloto taʻitaʻi saunia e Istio (i le gagana Peretania). E tamoe i luga o Linux, MacOS ma Windows, ma o loʻo maua le code i Java ma Node.js.

10 lesona fefaʻasoaaʻi i luga o Istio

Poloka 1 - Mo Amata

Folasaga ia Istio
30 minute
Sei o tatou faamasani i le Service Mesh, aʻoaʻo pe faʻafefea ona faʻapipiʻi Istio i totonu o le OpenShift Kubernetes cluster.
Amata

Fa'ata'ita'iina microservices i Istio
30 minute
Matou te faʻaaogaina Istio e faʻapipiʻi ai ni microservices se tolu ma Spring Boot ma Vert.x.
Amata

Poloka 2 – tulaga maualuga

Mataituina ma le sailia i Istio
60 minute
O le a matou suʻesuʻeina meafaigaluega mataʻituina a Istio, faʻataʻitaʻiga masani, ma OpenTracing e ala i Prometheus ma Grafana.
Amata

Auala faigofie i Istio
60 minute
A'oa'o pe fa'afefea ona fa'atautaia le ta'avale i Istio e fa'aaoga ai tulafono faigofie.
Amata

Tulafono fa'aalaala mamao
60 minute
Se'i o tatou va'ai ile ta'avale atamai a Istio, fa'atonutonu avanoa, paleni o uta ma le fa'atapula'aina o fua.
Amata

Poloka 3 – tagata fa'aoga maualuga

Fa'asa'o tui i Istio
60 minute
Matou te suʻesuʻeina faʻafitauli o le taulimaina o faʻataʻitaʻiga i faʻasalalauga tufatufaina, fatuina o mea sese HTTP ma faʻatuai fesoʻotaʻiga, ma aʻoaʻo e faʻaoga le inisinia vevesi e toe faʻaleleia ai le siosiomaga.
Amata

Vaava'a Si'o i Istio
30 minute
Matou te fa'apipi'i le Siege mo nofoaga e su'e ai fa'alavelave ma a'oa'o pe fa'apefea ona fa'amautinoa le fa'apalepale o fa'aletonu pito i tua e fa'aaoga ai le toe ta'alo, ta'avale va'ava'a ma le vaita'ele.
Amata

Egress ma Istio
10 minute
Matou te fa'aogaina auala Egress e fai ai tulafono mo le fegalegaleai o auaunaga i totonu ma API i fafo ma auaunaga.
Amata

Istio ma Kiali
15 minute
A'oa'o e fa'aoga Kiali e maua ai se va'aiga lautele o le 'au'aunaga ma su'esu'e talosaga ma fa'amaumauga.
Amata

Mutuale TLS i Istio
15 minute
Matou te fatuina Istio Gateway ma VirtualService, ona matou suʻesuʻeina lea o le TLS (mTLS) ma ona faʻatulagaga i auiliiliga.
Amata

Block 3.1 - Deep Dive: Istio Service Mesh mo Microservices

Se faasologa o pou i luga ole Istio Service Mesh
O le a le tusi e uiga i:

  • O le a le mesh tautua?
  • O le Istio system ma lana matafaioi i le fausaga o auaunaga microservice.
  • Faʻaaogaina Istio e foia ai faʻafitauli nei:
    • Fa'apalepale masei;
    • Auala;
    • Su'ega Chaos;
    • Saogalemu;
    • Telemetry aoina e faʻaaoga ai faʻasologa, metrics ma Grafana.

La'u mai se tusi

Fa'asologa o tala e uiga i meshes tautua ma Istio

Taumafai e oe lava

O lenei faasologa o pou e leʻo faʻamoemoe e maua ai se loloto loloto i le lalolagi o Istio. Matou te manaʻo e faʻafeiloaʻi oe i le manatu ma atonu e faʻaosofia oe e faʻataʻitaʻi Istio mo oe lava. E matua saoloto lava e fai, ma Red Hat e maua uma meafaigaluega e te manaʻomia e amata ai OpenShift, Kubernetes, Linux containers, ma Istio, e aofia ai: Red Hat Developer OpenShift Container Platform, lo tatou taiala i Istio ma isi punaoa i la tatou microsite i luga ole Mesh Auaunaga. Aua le faatuai, amata i le aso!

Istio routing rules: fa'atonu talosaga mo auaunaga i mea e tatau ona o i ai

Tatala и Kubernetes faia se galuega sili ona lelei o le tautala microservices faʻafeiloaʻi i pusa manaʻomia. O se tasi lea o mafuaʻaga o le i ai o Kubernetes - taʻavale ma le paleni o uta. Ae fa'afefea pe afai e te mana'omia ni auala fa'apitoa ma fa'apitoa? Mo se faʻataʻitaʻiga, ia faʻaaoga faʻatasi ni lomiga se lua o se microservice. E mafai faapefea e Istio Route Rules ona fesoasoani iinei?

O tulafono fa'atonutonu o tulafono ia e iloa tonu ai le filifiliga o le auala. E tusa lava po o le a le maualuga o le faʻalavelave faʻaogaina, o le faʻaogaina masani o nei tulafono e tumau pea le faigofie: o talosaga e faʻatautaia e faʻavae i luga o nisi faʻamaufaʻailoga ma faʻauluuluga HTTP.
Sei o tatou vaavaai i faataitaiga:

Kubernetes faaletonu: le taua "50/50"

I la matou faʻataʻitaʻiga, o le a matou faʻaalia pe faʻapefea ona faʻaogaina i le taimi e tasi ni lomiga se lua o se microservice i OpenShift, seʻi o tatou taʻua i latou v1 ma v2. O fa'aliliuga ta'itasi o lo'o fa'asolo i lana lava Kubernetes pod, ma e le mafai ona fa'agasolo tutusa lelei le ta'amilosaga ta'amilosaga. E maua e pod ta'itasi lana vaega o talosaga e fa'atatau i le aofa'i o ana fa'ata'ita'iga microservice, i se isi faaupuga, fa'atusa. Istio fa'atagaina oe e sui le paleni ma le lima.

Seʻi tatou faʻapea na matou faʻaogaina ni faʻamatalaga se lua o la matou auaunaga faʻapitoa i OpenShift, fautuaga-v1 ma fautuaga-v2.
I le Ata. O le Ata 1 o lo'o fa'aalia ai pe a fa'atusalia auaunaga ta'itasi i se fa'ata'ita'iga e tasi, e fesuia'i fa'atasi talosaga i le va o latou: 1-2-1-2-... O le auala lea e galue ai Kubernetes routing e ala i le fa'aletonu:

Se faasologa o pou i luga ole Istio Service Mesh

Fa'asoaga mamafa i le va o fa'aliliuga

I le Ata. O le ata 2 o loʻo faʻaalia ai le mea e tupu pe afai e te faʻateleina le numera o v2 auʻaunaga kopi mai le tasi i le lua (e faia i le oc scale -replicas=2 deployment/recommendation-v2 command). E pei ona mafai ona e vaʻai, o talosaga i le va o le v1 ma le v2 ua vaevaeina nei i se fua faatatau tasi-i-tolu: 1-2-2-1-2-2-...:

Se faasologa o pou i luga ole Istio Service Mesh

Le amana'ia fa'aoga fa'aoga Istio

E faafaigofie e Istio ona suia le tufatufaina o talosaga i le auala tatou te manaʻomia. Mo se faʻataʻitaʻiga, lafo uma fefaʻatauaiga i le fautuaga-v1 e faʻaaoga ai le faila Istio yaml nei:

Se faasologa o pou i luga ole Istio Service Mesh

O iinei e tatau ona e gauai atu i ai: pods e filifilia e tusa ai ma igoa. O la matou faʻataʻitaʻiga e faʻaaogaina le igoa v1. O le "mamafa: 100" parakalafa o lona uiga o le 100% o le felauaiga o le a faʻafeiloaʻi i pusa tautua uma o loʻo iai le igoa v1.

Tufatufaina o fa'atonuga i le va o fa'aliliuga (Canary Deployment)

O le isi, faʻaaogaina le faʻamaufaʻailoga mamafa, e mafai ona e faʻatonuina fefaʻatauaiga i pods uma e lua, e le amanaʻia le numera o faʻataʻitaʻiga microservice o loʻo taʻavale i totonu o latou taʻitasi. Mo se faʻataʻitaʻiga, matou te faʻatonuina le 90% o fefaʻatauaiga i le v1 ma le 10% i le v2:

Se faasologa o pou i luga ole Istio Service Mesh

Auala ese'ese mo tagata fa'aoga feavea'i

I le faaiuga, o le a matou faʻaalia pe faʻafefea ona faʻamalosia fefaʻatauaʻiga o tagata faʻaoga feaveaʻi e ave i le auaunaga v2, ma isi tagata uma i le v1. Ina ia faia lenei mea, matou te faʻaogaina faʻamatalaga masani e suʻesuʻe ai le tau o tagata faʻaoga i le ulutala talosaga:

Se faasologa o pou i luga ole Istio Service Mesh

O lea ua oo i lou taimi

O le fa'ata'ita'iga e iai fa'amatalaga masani mo le fa'avasegaina o ulutala e tatau ona fa'aosofia oe e su'e au lava fa'aoga o tulafono fa'aala Istio. E le gata i lea, o avanoa iinei e matua lautele lava, talu ai e mafai ona fausia faʻauluuluga faʻaulu i totonu o le faʻamatalaga punaʻoa.

Ma manatua o Ops, ae le o Dev

O mea uma na matou faʻaalia i faʻataʻitaʻiga o loʻo i luga e faia e aunoa ma sina suiga itiiti i le code source, lelei, sei vagana ai na tulaga pe a manaʻomia le faʻatupuina o ulutala talosaga faʻapitoa. Istio o le a aoga uma i le au atinaʻe, oe, mo se faʻataʻitaʻiga, o le a mafai ona faʻaaogaina i le tulaga o suʻega, ma i tagata faʻapitoa i le faʻaogaina o faiga IT, mo i latou o le a fesoasoani tele i le gaosiga.

Sei o tatou toe faia le leitmotif o lenei faasologa o pou: e te le manaʻomia le suia o se mea i lau code. E leai se mana'oga e fausia ni ata fou pe fa'alauiloa ni koneteina fou. O nei mea uma e faʻatinoina i fafo atu o le code.

Fa'aaoga ou mafaufauga

Va'ai faalemafaufau i le avanoa e su'esu'e ai ulutala e fa'aaoga ai fa'amatalaga masani. Mana'o e toe fa'afo'i lau tagata fa'atau tele i se fa'amatalaga fa'apitoa o lau microservices? Faigofie! Manaomia se isi fa'amatalaga mo le Chrome browser? Leai se faafitauli! E mafai ona e fa'aala le ta'avale e tusa ma le toetoe lava o so'o se uiga.

Taumafai e oe lava

Faitau e uiga i Istio, Kubernetes ma OpenShift o se mea e tasi, ae aisea e te le tago ai i mea uma lava oe? Au Red Hat Developer Polokalama ua saunia se ta'iala au'ili'ili (i le Igilisi) o le a fesoasoani ia te oe e fa'ata'ita'i ai nei tekonolosi i se taimi vave e mafai ai. O le tusi lesona foi e 100% tatala punaoa, o lea e faʻasalalau i le lautele lautele. O le faila e galue i macOS, Linux ma Windows, ma o le source code o loʻo maua i Java ma node.js versions (versions i isi gagana e vave ona oʻo mai). Na'o le tatalaina o le git repository talafeagai i lau sailiga Red Hat Developer Demo.

I le isi pou: matou te fofoina faʻafitauli ma le matagofie

O aso nei na e va'ai i mea e mafai ona fai e tulafono fa'aalaala a Istio. Mafaufau la i le mea lava e tasi, ae na'o le fa'atatau i le fa'afoeina o mea sese. O le mea tonu lava lea o le a tatou talanoa ai i le isi pou.

puna: www.habr.com

Faaopoopo i ai se faamatalaga