{"id":54208,"date":"2019-12-20T00:00:00","date_gmt":"2019-12-19T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/seriya-postov-po-istio-service-mesh"},"modified":"2020-02-18T14:02:12","modified_gmt":"2020-02-18T11:02:12","slug":"seriya-postov-po-istio-service-mesh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/seriya-postov-po-istio-service-mesh","title":{"rendered":"Istio teenuste v\u00f5rgu postituste seeria","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Alustame postituste seeriat, kus demonstreerime mitmeid Istio Service Mesh teenusev\u00f5rgu v\u00f5imalusi koos Red Hat OpenShift ja Kubernetes'iga.<\/p>\n<p><img decoding=\"async\" alt=\"Istio teenuste v\u00f5rgu postituste seeria\" src=\"\/wp-content\/uploads\/2019\/12\/b7cc06e1451763db78fdf84764af4b69.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEsimene osa, t\u00e4na: <\/p>\n<ul>\n<li>Selgitame Kubernetes'e sidecar konteinerite kontseptsiooni ja formuleerime selle postituste seeria teemaks: <b>\u00abteil pole vaja oma koodis midagi muuta\u00bb<\/b>.<\/li>\n<li>Tutvustame Istio \u00fchte p\u00f5hielementi \u2013 marsruutimise reegleid. Need reeglid moodustavad k\u00f5ikide teiste Istio v\u00f5imaluste aluse, kuna just need reeglid v\u00f5imaldavad suunata liiklust mikroteenustele, kasutades selleks teenuse YAML-faile, mis on koodist eraldi. Samuti vaatame \u00fcle Canary Deployment'i juurutamise skeemi. Aasta alguse boonus \u2013 10 interaktiivset \u00f5ppimist Istio kohta.<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nTeine osa, mis varsti ilmub, r\u00e4\u00e4gib teile: <\/p>\n<ul>\n<li>Kuidas Istio rakendab Pool Ejection'i koos Circuit Breaker'iga ja n\u00e4itab, kuidas Istio v\u00f5imaldab tasakaalustamisest eemaldada mittefunktsionaalsed v\u00f5i halvasti t\u00f6\u00f6tavad pod'id.<\/li>\n<li>Ja k\u00e4sitleme samuti Circuit Breaker'i teemat esimesest postitusest, uurides, kuidas siin saab kasutada Istio't. N\u00e4itame, kuidas ilma koodimuudatusteta suunata liiklust ja hallata v\u00f5rguvigu YAML konfiguratsioonifailide ja terminali k\u00e4skude abil.<\/li>\n<\/ul>\n<p>\nKolmas osa: <\/p>\n<ul>\n<li>Juttu tulemustest ja j\u00e4lgimisest, mis on juba sisseehitatud v\u00f5i kergesti lisatavad Istio'sse. N\u00e4itame, kuidas kasutada selliseid t\u00f6\u00f6riistu nagu Prometheus, Jaeger ja Grafana koos OpenShifti skaleerimisega, et hallata mikroteenuste arhitektuuri vaevata.<\/li>\n<li>K\u00e4ime l\u00e4bi, kuidas liikuda vigade j\u00e4lgimiselt ja k\u00e4sitlemiselt nende tahtlikku s\u00fcstimise suunas. Teisis\u00f5nu, \u00f5pime, kuidas teha fault injection'i ilma l\u00e4htekoodi muutmata, mis on testimise seisukohalt v\u00e4ga oluline \u2014 sest kui selleks koodi muuta, on oht lisada uusi vigu.<\/li>\n<\/ul>\n<p>\nL\u00f5puks, viimases postituses Istio Service Mesh'ist:<\/p>\n<ul>\n<li>Liigume Tumeda Poole juurde. T\u00e4psemalt, \u00f5ppime kasutama Dark Launch mudelit, kus kood suletakse ja testitakse otse tootmisandmetel, ilma et see m\u00f5jutaks s\u00fcsteemi t\u00f6\u00f6d. Siin tuleb kasuks Istio oskus liiklust jagada. Ja v\u00f5imalus testida elavaid tootmisandmeid, m\u00f5jutamata samal ajal tootmise s\u00fcsteemi, on k\u00f5ige veenvam meetod kontrollimiseks.<\/li>\n<li>Tuginedes Dark Launch'ile, n\u00e4itame, kuidas kasutada Canary Deploymeni mudelit, et v\u00e4hendada riske ja lihtsustada uue koodi juurutamist. Canary Deployment ise ei ole midagi uut, kuid Istio v\u00f5imaldab selle mudeli rakendada vaid lihtsate YAML-failide abil.<\/li>\n<li>L\u00f5petuseks n\u00e4itame, kuidas Istio Egress'i abil anda juurdep\u00e4\u00e4s teenustele neile, kes asuvad teie klastritest v\u00e4ljaspool, et kasutada Istio v\u00f5imalusi internetis t\u00f6\u00f6tades.<\/li>\n<\/ul>\n<p>\nNii et, alaldame\u2026<\/p>\n<p><b>Istio j\u00e4lgimise ja haldamise t\u00f6\u00f6riistad \u2013 k\u00f5ik vajalik mikroteenuste koordineerimiseks teenusete v\u00f5rgus. <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/service-mesh\/\">teenuse v\u00f5rk<\/a><\/noindex>.<\/b><\/p>\n<h3>Mis on Istio teenusete v\u00f5rk?<\/h3>\n<p>\nTeenusev\u00f5rk pakub teenuste r\u00fchmale selliseid funktsioone nagu liikluse j\u00e4lgimine, juurdep\u00e4\u00e4su kontroll, avastamine, turvalisus, t\u00f5rke taluvus ja palju muud kasulikku. Istio v\u00f5imaldab seda k\u00f5ike teha ilma teenuste enda koodi v\u00e4himagi muutmiseta. Mis on selle maagia saladus? Istio kinnitab igale teenusele oma proxyd sidecar-konteineri kujul (sidecar \u2013 mootorratta k\u00f5rvalk\u00e4ru), mille j\u00e4rel kogu liiklus sellele teenusele suundub l\u00e4bi proxy, mis, j\u00e4rgides m\u00e4\u00e4ratud poliitikaid, otsustab, kuidas, millal ja kas see liiklus \u00fcldse teenuseni j\u00f5uab. Istio v\u00f5imaldab ka rakendada edasij\u00f5udnud DevOpsi tehnikaid, nagu kanarbikutootmine, ringluste katkestajad, vea sissej\u00f5udmine ja paljud teised.<\/p>\n<h3>Kuidas Istio t\u00f6\u00f6tab konteinerite ja Kubernetesega<\/h3>\n<p>\nIstio teenuses\u00fcsteem on sidecar'i rakendus, mis pakub k\u00f5iki vajalikke funktsioone mikroteenuste loomiseks ja haldamiseks: monitooring, j\u00e4lgimine, circuit breakers, suunamine, koormuse tasakaalustamine, viga s\u00fcstimine, kordused, ajoutsid, peegeldamine, juurdep\u00e4\u00e4sukontroll, ribatai piiramine ja palju muud. Kuigi t\u00e4na on olemas palju raamatukogusid, mis v\u00f5imaldavad neid funktsioone otse koodis rakendada, saate Istio abil k\u00f5ik need funktsioonid ilma oma koodi muutmata.<\/p>\n<p>Sidecar'i mudeli j\u00e4rgi t\u00f6\u00f6tab Istio Linuxi konteineris, mis asub \u00fches <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/kubernetes\/\">Kubernetes<\/a><\/noindex>-pod'is kontrollitava teenusega ning lisab (inject) ja ekstraheerib (extract) funktsioone ja teavet vastavalt m\u00e4\u00e4ratud konfiguratsioonile. Oluline on r\u00f5hutada, et see on teie enda konfiguratsioon ja see elab v\u00e4ljaspool teie koodi. Seet\u00f5ttu muutub kood palju lihtsamaks ja l\u00fchemaks.<\/p>\n<p>Oluline on, et mikroteenuste operatiivne komponent ei ole seotud koodiga, mist\u00f5ttu saab nende haldamise mugavalt usaldada IT-spetsialistidele. T\u00f5epoolest, miks peaks arendaja vastutama circuit breakerite ja fault injectioni eest? Reageerida \u2013 jah, aga hallata neid ja luua? Kui k\u00f5ik see koodist eemaldada, saavad arendajad t\u00e4ielikult keskenduda rakendusfunktsionaalsusele. Ja kood ise muutub l\u00fchemaks ja lihtsamaks.<\/p>\n<h3>Teenuste v\u00f5rk<\/h3>\n<p>\nIstio, mis rakendab mikroteenuste haldamise funktsioone nende koodist v\u00e4ljaspool \u2013 see ongi teenuste v\u00f5rgu kontseptsioon Service Mesh. Teisis\u00f5nu, see on koordineeritud grupp \u00fches v\u00f5i mitmes binaris, mis moodustavad v\u00f5rgufunktsioonide v\u00f5rgu.<\/p>\n<h3>Kuidas Istio t\u00f6\u00f6tab mikroteenustega<\/h3>\n<p>\nNii n\u00e4eb v\u00e4lja sidecar-konteinerite t\u00f6\u00f6 seoses <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/kubernetes\/\">Kubernetes<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openshift.org\/minishift\/\">Minishift<\/a><\/noindex> lintud vaatega: k\u00e4ivitate Minishifti eksemplari, loote Istio jaoks projekti (nimetame seda \u201eistio-system\u201d), installite ja k\u00e4ivitate k\u00f5ik Istio seotud komponendid. Siis, kui loote projekte ja pod'e, lisate konfiguratsiooniteavet oma deployment'idesse ning teie pod'id hakkavad kasutama Istio'd. Lihtsustatud diagramm n\u00e4eb v\u00e4lja j\u00e4rgmine:<\/p>\n<p><img decoding=\"async\" alt=\"Istio teenuste v\u00f5rgu postituste seeria\" src=\"\/wp-content\/uploads\/2019\/12\/feb36ba35442307a8136c395ccae4fd2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>N\u00fc\u00fcd on v\u00f5imalik muuta Istio seadeid, et n\u00e4iteks korraldada fault injection, toetada <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/blog\/2017\/0.1-canary.html\">Canary juurutamine<\/a><\/noindex> v\u00f5i muid Istio v\u00f5imalusi \u2013 ja k\u00f5ik see ilma, et peaks kodeerimisega tegelema. Oletame, et soovite suunata kogu veebiliiklust oma suurima kliendi (Foo Corporation) kasutajatelt uue veebiversiooni suunas. Selleks piisab, kui luua Istio marsruutimisse reegel, mis otsib @foocorporation.com kasutaja ID-st ja viib l\u00e4bi vastava suunamise. K\u00f5ikide teiste kasutajate jaoks ei muutu midagi. Ja samal ajal saate rahulikult uut veebiversiooni testida. Ja olge t\u00e4helepanelik, et selleks ei pea arendajaid kaasama.<\/p>\n<h3>Kas selle eest tuleb kallis hind maksta?<\/h3>\n<p>\nKaugel sellest. Istio t\u00f6\u00f6tab v\u00e4ga kiiresti, see on kirjutatud <noindex><a rel=\"nofollow\" href=\"https:\/\/golang.org\/\">Go<\/a><\/noindex> ja loob v\u00e4ga v\u00e4ikese \u00fclekande. Lisaks kompenseerib v\u00f5imalik kahjum veebitootlikkuses arendajate t\u00f6\u00f6 tulemuslikkuse kasvu. V\u00e4hemalt teoorias: \u00e4rge unustage, et arendajate aeg on kallis. Mis puutub tarkvara kuludesse, siis Istio on avatud l\u00e4htekoodiga, seega on selle hankimine ja kasutamine tasuta.<\/p>\n<h3>\u00d5ppige ise<\/h3>\n<p>\nRed Hat Developer Experience Team on v\u00e4lja t\u00f6\u00f6tanud s\u00fcvitsi mineva praktilise <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/redhat-developer-demos\/istio-tutorial\">juhend<\/a><\/noindex> juhendi Istio kohta (inglise keeles). See t\u00f6\u00f6tab Linuxil, MacOS-il ja Windowsil ning kood on saadaval Java ja Node.js variantides.<\/p>\n<h3>10 interaktiivset Istio kursust<\/h3>\n<p><\/p>\n<h4>Blokk 1 \u2013 Algajad<\/h4>\n<p>\n<b>Sissejuhatus Istiosse<\/b><br \/>\n30 minutit <br \/>\nTutvume Service Mesh'iga, \u00f5pime installima Istio OpenShift'i Kubernetes klastrisse.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/istio-introduction\/\">Alustada<\/a><\/noindex> <\/p>\n<p><b>Mikroteenuste juurutamine Istios<\/b><br \/>\n30 minutit<br \/>\nKasutame Istiot kolme mikroteenuse juurutamiseks Spring Booti ja Vert.x-i abil.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/deploy-microservices\/\">Alustada<\/a><\/noindex> <\/p>\n<h4>Blokk 2 \u2013 Kesktase <\/h4>\n<p>\n<b>Monitooring ja j\u00e4lgimine Istios<\/b><br \/>\n60 minutit <br \/>\nUurime Istio sisseehitatud monitooringuvahendeid, kohandatavaid m\u00f5\u00f5dikuid ning OpenTracing'i l\u00e4bi Prometheuse ja Grafana.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/monitoring-tracing\/\">Alustada<\/a><\/noindex> <\/p>\n<p><b>Lihtne marsruutimine Istios<\/b><br \/>\n60 minutit <br \/>\n\u00d5pime hallama marsruute Istios lihtsate reeglite abil.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/simple-route-rules\/\">Alustada <\/a><\/noindex><\/p>\n<p><b>T\u00e4iendavad marsruutimise reeglid<\/b><br \/>\n60 minutit <br \/>\nTutvume Istio nutika marsruutimise, juurdep\u00e4\u00e4su haldamise, koormuse tasakaalustamise ja kiiruspiirangute \u00fcle.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/advanced-routerules\/\">Alustada<\/a><\/noindex> <\/p>\n<h4>Blokk 3 \u2013 kogenud kasutaja<\/h4>\n<p>\n<b>Vea s\u00fcstimine Istios<\/b><br \/>\n60 minutit <br \/>\nUurime t\u00f5rke k\u00e4itlemise stsenaariume hajutatud rakendustes, luues HTTP vigu ja v\u00f5rgu viivitusi, ning \u00f5pime rakendama kaosetehnikaid keskkonna taastamiseks.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/fault-injection\/\">Alustada<\/a><\/noindex> <\/p>\n<p><b>Circuit Breaker Istios<\/b><br \/>\n30 minutit <br \/>\nPaigaldame Siege'i saitide stressitestimiseks ja \u00f5pime tagama tagasivoolu vastupidavust korduste, circuit breakeri ja basseinide v\u00e4ljaj\u00e4tmise abil.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/circuit-breaker\/\">Alustada<\/a><\/noindex> <\/p>\n<p><b>Egress ja Istio<\/b><br \/>\n10 minutit <br \/>\nKasutame Egress marsroute, et luua reegleid siseteenuste suhtlemiseks v\u00e4liste API-de ja teenustega.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/egress\/\">Alustada<\/a><\/noindex> <\/p>\n<p><b>Istio ja Kiali<\/b><br \/>\n15 minutit <br \/>\n\u00d5pime kasutama Kiali, et saada \u00fclevaade teenuste v\u00f5rgust ja uurida p\u00e4ringute ja andmete vooge.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/observe-kiali\/\">Alustada<\/a><\/noindex> <\/p>\n<p>Kaasne TLS Istios<br \/>\n15 minutit <br \/>\nLoome Istio Gateway ja VirtualService, seej\u00e4rel uurime p\u00f5hjalikult kaasnevat TLS-i (mTLS) ja selle seadeid.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/mtls\/\">Alustada<\/a><\/noindex> <\/p>\n<h4>Blokk 3.1 \u2013 S\u00fcgav sukeldumine: Istio teenuste v\u00f5rk mikroteenustele<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Istio teenuste v\u00f5rgu postituste seeria\" src=\"\/wp-content\/uploads\/2019\/12\/1a2bb62b0bbd46fa9b42be1ccbfddfa6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nRaamatu teema:<\/p>\n<ul>\n<li>Mis on teenuste v\u00f5rk (service mesh).<\/li>\n<li>Istio s\u00fcsteem ja selle roll mikroteenuste arhitektuuris.<\/li>\n<li>Istio kasutamine j\u00e4rgmiste probleemide lahendamisel:\n<ul>\n<li>Vea taluvus;<\/li>\n<li>Marsruutimine;<\/li>\n<li>Kaostestimine;<\/li>\n<li>Turvalisus;<\/li>\n<li>Teabeuruumi kogumine j\u00e4lgimis-, m\u00f5\u00f5tmis- ja Grafana vahendite kaudu.<\/li>\n<\/ul>\n<p>\n <\/li>\n<\/ul>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/books\/introducing-istio-service-mesh-microservices\/\">Lae raamat alla<\/a><\/noindex><\/p>\n<h3>Artiklite seeria teenusv\u00f5rkudest ja Istio'st<\/h3>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2018\/03\/13\/istio-route-rules-service-requests\/\">Istio marsruutimise reeglid: suuname teenusettekanded \u00f5igesse kohta<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2018\/03\/20\/istio-circuit-breaker-pool-ejection\/\">Circuit Breaker'id Istios: t\u00f6\u00f6tleme Pool Ejection'i<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2018\/03\/27\/istio-circuit-breaker-when-failure-is-an-option\/\">Circuit Breaker Istios: millal on t\u00f5rge variant<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2018\/04\/03\/istio-tracing-monitoring\/\">J\u00e4lgimine ja monitooring Istios: kuhu k\u00f5ik liigub ja kui kiiresti<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2018\/04\/10\/istio-chaos-engineering\/\">Kaosinseneria Istios: nii see oli ette n\u00e4htud<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2018\/04\/17\/istio-dark-launch-secret-services\/\">Dark Launch Istios: salajased teenistused<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2018\/04\/24\/istio-smart-canary-launch\/\">Canary Deployment Istios: lihtsustame k\u00e4ivitamist<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2018\/05\/01\/istio-egress-exit-through-the-gift-shop\/\">Istio Egress: v\u00e4ljumine suveniiripoe kaudu<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3>Proovige ise<\/h3>\n<p>\nSee postituste seeria ei p\u00fc\u00fca pakkuda s\u00fcgavat tutvustust Istio maailma. Me tahame lihtsalt tutvustada teid selle kontseptsiooniga ja ehk inspireerida teid proovida Istio ise. Seda saab teha t\u00e4iesti tasuta ning Red Hat pakub k\u00f5iki vajalikke t\u00f6\u00f6riistu OpenShifti, Kubernetes, Linuxi konteineritega ja Istio kasutamiseks, sealhulgas: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openshift.com\/products\/container-platform\/trial\/\">Red Hat Developer OpenShift Container Platform<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/redhat-developer-demos\/istio-tutorial\">meie juhend Istio'le<\/a><\/noindex> ja muid ressursse meie <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/service-mesh\/\">teenusv\u00f5rgu mikro-saitil<\/a><\/noindex>. \u00c4ra oota, alusta juba t\u00e4na!<\/p>\n<h3>Istio marsruutimise reeglid: suuname teenusettekanded \u00f5igesse kohta<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/products\/openshift\/overview\/\">OpenShift<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/kubernetes\/\">Kubernetes<\/a><\/noindex> suurep\u00e4raselt t\u00f6\u00f6tavad teenuste k\u00f5nede suunamisel <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/microservices\/\">mikroteenustele<\/a><\/noindex> suunati \u00f5igele pod'ile. See on \u00fcks Kubernetes'e eesm\u00e4rke \u2013 marsruutimine ja koormuse jaotamine. Ent mis juhtub, kui vajate peenemat ja rafineeritumat marsruutimist? N\u00e4iteks kui soovite samaaegselt kasutada kahte versiooni mikroteenusest. Kuidas saavad aidata Istio marsruutimise reeglid?<\/p>\n<p>Marsruutimisreeglid on reeglid, mis m\u00e4\u00e4ravad marsruudi valiku. S\u00fcsteemi keerukusest s\u00f5ltumata j\u00e4\u00e4b nende reeglite t\u00f6\u00f6 \u00fcldine p\u00f5him\u00f5te lihtsaks: p\u00e4ringud suunatakse kindlate parameetrite ja HTTP p\u00e4iste v\u00e4\u00e4rtuste alusel. <br \/>\nVaadakem n\u00e4iteid: <\/p>\n<h3>Kubernetes vaikimisi: triviaalne \"50 kahe\"<\/h3>\n<p>\nMeie n\u00e4ites n\u00e4itame, kuidas OpenShiftis samaaegselt kasutada kahte versiooni mikroteenusest, nimetame need v1 ja v2. Iga versioon t\u00f6\u00f6tab oma Kubernetesi pod'is ning vaikimisi toimub siin \u00fchtlaselt tasakaalustatud ringmarsruutimine (evenly balanced round robin routing). Igal pod'il on oma osa p\u00e4ringutest, s\u00f5ltuvalt mikroteenuse eksemplaride arvust, teisis\u00f5nu, replikatest. Istio v\u00f5imaldab seda tasakaalu k\u00e4sitsi muuta.<\/p>\n<p>Oletame, et oleme oma soovitusteenuse, recommendation-v1 ja recommendation-v2, OpenShiftis rakendanud kahes versioonis.<br \/>\nJoonisel 1 on n\u00e4ha, et kui iga teenus on esindatud \u00fches eksemplaris, vahelduvad p\u00e4ringud nende vahel \u00fchtlaselt: 1-2-1-2-\u2026 Just nii t\u00f6\u00f6tab Kubernetes'i marsruutimine vaikimisi:<\/p>\n<p><img decoding=\"async\" alt=\"Istio teenuste v\u00f5rgu postituste seeria\" src=\"\/wp-content\/uploads\/2019\/12\/93b00e4845ba930ca4d718b59629377e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Kaalu j\u00e4rgi jaotamine versioonide vahel<\/h3>\n<p>\nJoonisel 2 on n\u00e4ha, mida juhtub, kui suurendada teenuse v2 replikate arvu \u00fchest kahele (see toimub k\u00e4suga oc scale --replicas=2 deployment\/recommendation-v2). Nagu n\u00e4eme, jagunevad p\u00e4ringud n\u00fc\u00fcd v1 ja v2 vahel suhetes \u201e\u00fcks kolme vastu\u201d: 1-2-2-1-2-2-\u2026:<\/p>\n<p><img decoding=\"async\" alt=\"Istio teenuste v\u00f5rgu postituste seeria\" src=\"\/wp-content\/uploads\/2019\/12\/a432b1cea0e297c99b041137d33fc107.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Versiooni ignoreerimine Istio abil<\/h3>\n<p>\nIstio v\u00f5imaldab h\u00f5lpsasti muuta p\u00e4ringute jaotust soovitud viisil. N\u00e4iteks suunata kogu liiklus ainult recommendation-v1 juurde j\u00e4rgmise Istio yaml-failiga:<\/p>\n<p><img decoding=\"async\" alt=\"Istio teenuste v\u00f5rgu postituste seeria\" src=\"\/wp-content\/uploads\/2019\/12\/db4190d495fb6dcc7c50cb8d28a7ef58.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Siin tuleb t\u00e4helepanu p\u00f6\u00f6rata sellele: pod'id valitakse sildistamise j\u00e4rgi. Meie n\u00e4ites kasutatakse silti v1. Parameeter \u201eweight: 100\u201d t\u00e4hendab, et 100% liiklusest suunatakse k\u00f5igile pod'idele, millel on silt v1.<\/p>\n<h3>Suunatud jaotamine versioonide vahel (Canary Deployment)<\/h3>\n<p>\nEdasi liikudes saame kasutada parameetrit weight, et suunata liiklust m\u00f5lemasse pod'i, ignoreerides iga\u00fchesse neist k\u00e4ivitatud mikroteenuste arvu. N\u00e4iteks siin suuname 90% liiklusest v1-le ja 10% v2-le:<\/p>\n<p><img decoding=\"async\" alt=\"Istio teenuste v\u00f5rgu postituste seeria\" src=\"\/wp-content\/uploads\/2019\/12\/1a28e76ea7d8306fbefecefaad34c931.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Eraldi mobiilikasutajate marsruutimine<\/h3>\n<p>\nKokkuv\u00f5tteks n\u00e4itame, kuidas sunniviisiliselt marsruutida mobiilikasutajate liiklust teenusele v2, samas kui k\u00f5ik teised suunatakse v1-le. Selleks anal\u00fc\u00fcsime regulaarsustega user-agent'i v\u00e4\u00e4rtust p\u00e4ringu p\u00e4ises:<\/p>\n<p><img decoding=\"async\" alt=\"Istio teenuste v\u00f5rgu postituste seeria\" src=\"\/wp-content\/uploads\/2019\/12\/efab7f92a1bcfc7e23ae279de57c738e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>N\u00fc\u00fcd on teie kord<\/h3>\n<p>\nRegulaarsuste n\u00e4ide p\u00e4iste anal\u00fc\u00fcsimiseks peaks motiveerima teid otsima oma lahendusi Istio marsruutimisreeglite rakendamiseks. Eriti kuna v\u00f5imalused on siin v\u00e4ga avardunud, kuna p\u00e4iste v\u00e4\u00e4rtusi saab luua rakenduste l\u00e4htekoodis.<\/p>\n<h3>Ja pidage meeles, et Ops, mitte Dev<\/h3>\n<p>\nK\u00f5ik, mida me eespool n\u00e4idatud n\u00e4idetes tegime, toimub ilma v\u00e4himagi muudatuseta l\u00e4htekoodis, v\u00e4lja arvatud juhtudel, kui on vajalik luua erilisi p\u00e4ringupealkirju. Istio on kasulik nii arendajatele, kes saavad seda n\u00e4iteks testimise etapis kasutada, kui ka IT-s\u00fcsteemide halduritele, kellele see aitab oluliselt tootmises.<\/p>\n<p>Nii et korratakse selle postituste seeria teemat: <b>te ei pea oma koodis midagi muutma<\/b>. Uute piltide kogumine v\u00f5i uute konteinerite k\u00e4ivitamine ei ole vajalik. K\u00f5ik see toimub v\u00e4ljaspool koodi.<\/p>\n<h3>K\u00e4ivitage kujutlusv\u00f5ime<\/h3>\n<p>\nKujutage ette, millised v\u00f5imalused avanevad p\u00e4iste anal\u00fc\u00fcsimisel regulaaravaldiste abil. Kas soovite suunata oma suurima kliendi spetsiaalsele versioonile oma <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/microservices\/\">mikroteenustena<\/a><\/noindex>? \u041b\u0435\u0433\u043a\u043e! \u041d\u0443\u0436\u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0434\u043b\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 Chrome? \u041d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430! \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e \u043b\u044e\u0431\u043e\u0439 \u0435\u0433\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0435.<\/p>\n<h3>Proovige ise<\/h3>\n<p>\nIstio, Kubernetes ja OpenShift'i lugemine on \u00fcks asi, aga miks mitte proovida k\u00f5ike ise teha? Meeskond <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/\">Red Hat Developer Program<\/a><\/noindex> oleme valmistanud p\u00f5hjaliku juhendi (inglise keeles), mis aitab teil neid tehnoloogiaid kiiresti omandada. Juhend on samuti 100% avatud l\u00e4htekoodiga, seet\u00f5ttu on see avalikult k\u00e4ttesaadav. Fail t\u00f6\u00f6tab macOS, Linuxi ja Windowsi s\u00fcsteemides, samas kui allikakood on saadaval Java ja node.js versioonides (varsti tulevad ka versioonid teistes keeltes). Lihtsalt avage oma brauseris vastav git-repositoorium <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/redhat-developer-demos\/istio-tutorial\">Red Hat Developer Demo<\/a><\/noindex>.<\/p>\n<h3>J\u00e4rgmisel postitusel: lahendame probleeme elegantselt<\/h3>\n<p>\nT\u00e4na n\u00e4gite, milleks Istio marsruutingureeglid on v\u00f5imelised. Kujutage n\u00fc\u00fcd ette, et k\u00f5ik see kehtib ka vigade t\u00f6\u00f6tlemise kohta. Just sellest r\u00e4\u00e4gimegi j\u00e4rgmises postituses.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/redhatrussia\/blog\/481182\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441\u0435\u0440\u0438\u044e \u043f\u043e\u0441\u0442\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0441\u0435\u0442\u043a\u0438 Istio Service Mesh \u0432 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0438 \u0441 Red Hat OpenShift \u0438 Kubernetes. \u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f, \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u044f\u044f: \u041e\u0431\u044a\u044f\u0441\u043d\u0438\u043c \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044e sidecar-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 Kubernetes \u0438 \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u043c \u043b\u0435\u0439\u0442\u043c\u043e\u0442\u0438\u0432 \u044d\u0442\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 \u043f\u043e\u0441\u0442\u043e\u0432: \u00ab\u0432\u0430\u043c \u043d\u0435 \u043d\u0430\u0434\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u0434\u0435\u00bb. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043e\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0443\u044e \u0432\u0435\u0449\u044c Istio \u2013 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438. \u041d\u0430 \u043d\u0438\u0445 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-54208","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441\u0435\u0440\u0438\u044e \u043f\u043e\u0441\u0442\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0441\u0435\u0442\u043a\u0438 Istio Service Mesh \u0432 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0438 \u0441 Red Hat OpenShift \u0438 Kubernetes.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/seriya-postov-po-istio-service-mesh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0435\u0440\u0438\u044f \u043f\u043e\u0441\u0442\u043e\u0432 \u043f\u043e Istio Service Mesh | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441\u0435\u0440\u0438\u044e \u043f\u043e\u0441\u0442\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0441\u0435\u0442\u043a\u0438 Istio Service Mesh \u0432 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0438 \u0441 Red Hat OpenShift \u0438 Kubernetes.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/seriya-postov-po-istio-service-mesh\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-12-19T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:12+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Istio Service Mesh postide seeria | ProHoster","description":"Alustame postituste seeriat, kus demonstreerime mitmeid Istio Service Mesh teenusev\u00f5rgu v\u00f5imalusi koos Red Hat OpenShift ja Kubernetes'iga.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/seriya-postov-po-istio-service-mesh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0435\u0440\u0438\u044f \u043f\u043e\u0441\u0442\u043e\u0432 \u043f\u043e Istio Service Mesh | ProHoster","og:description":"\u041c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441\u0435\u0440\u0438\u044e \u043f\u043e\u0441\u0442\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0441\u0435\u0442\u043a\u0438 Istio Service Mesh \u0432 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0438 \u0441 Red Hat OpenShift \u0438 Kubernetes.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/seriya-postov-po-istio-service-mesh","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-12-19T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:12+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54208","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 10:27:27","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:10:32","updated":"2026-01-24 10:27:27","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/54208","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=54208"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/54208\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=54208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=54208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=54208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}