{"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":"Postituste sari Istio Service Meshist","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Alustame postituste seeriat, kus demonstreerime mitmeid Istio Service Meshi v\u00f5imalusi koos Red Hat OpenShifti ja Kubernetesega.<\/p>\n<p><img decoding=\"async\" alt=\"Postituste sari Istio Service Meshist\" 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 s\u00f5nastame selle postituste seeria teema: <b>\u201eteile ei ole mitte midagi vaja oma koodis muuta\u201c<\/b>.<\/li>\n<li>Tutvustame Istio p\u00f5hipunkti \u2013 marsruutimise reegleid. Need on k\u00f5ikide Istio teiste v\u00f5imaluste aluseks, kuna reeglid suunavad liiklust mikroteenustele, kasutades selleks koodist s\u00f5ltumatuid YAML-faili konfiguratsioone. Samuti k\u00e4sitleme Canary Deployment'i mudelit. Uue aasta kingitus \u2013 10 interaktiivset tundi 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 ning demonstreerib, kuidas Istio v\u00f5imaldab kehvasti toimiva v\u00f5i mitte t\u00f6\u00f6tava pod'i tasakaalustamisest v\u00e4lja j\u00e4tta.<\/li>\n<li>K\u00e4sitleme ka Circuit Breaker'i teemat esimeses postituses, et n\u00e4idata, kuidas siin saab Istio't rakendada. N\u00e4itame, kuidas suunata liiklust ja hallata v\u00f5rgu vigu YAML-konfiguratsiooni failide ja terminali k\u00e4skudega, muutmata koodis midagi.<\/li>\n<\/ul>\n<p>\nKolmas osa: <\/p>\n<ul>\n<li>Jutt j\u00e4lgimisest ja monitooringust, mis on juba sisse ehitatud v\u00f5i kergesti lisatav Istio'sse. N\u00e4itame, kuidas kasutada selliseid t\u00f6\u00f6riistu nagu Prometheus, Jaeger ja Grafana koos OpenShift'i skaleerimisega, et hallata mikroteenuste arhitektuuri vaevata.<\/li>\n<li>Liigume monitoorimisest ja vigade t\u00f6\u00f6tlemisest sellele, et tuua need s\u00fcsteemi sihilikult sisse. Teisis\u00f5nu, \u00f5pime tegema fault injection'i koodi muutmata, mis on testimise seisukohalt v\u00e4ga oluline \u2013 kuna kui selleks koodi muuta, on oht sisse tuua t\u00e4iendavaid vigu.<\/li>\n<\/ul>\n<p>\nL\u00f5puks, Istio Service Mesh'i viimasel postitusel:<\/p>\n<ul>\n<li>Liigume Tumedale Poole. T\u00e4psemalt, \u00f5pime kasutama Dark Launch'i skeemi, kus kood on juurutatud ja testitud otse tootmisandmete peal, kuid ei m\u00f5juta s\u00fcsteemi toimimist. Siin tuleb h\u00e4sti kasuks Istio oskus liiklust jagada. Ja v\u00f5imalus testida elavad tootmisandmeid, m\u00f5jutamata samal ajal tootmisse s\u00fcsteemi, on k\u00f5ige veenvam viis kontrollimiseks.<\/li>\n<li>V\u00f5ttes aluseks Dark Launch, n\u00e4itame, kuidas kasutada Canary Deployment mudelit, et v\u00e4hendada riske ja lihtsustada uue koodi juurutamist. Canary Deployment iseenesest pole uus, kuid Istio v\u00f5imaldab seda rakendada vaid lihtsate YAML-failide abil.<\/li>\n<li>Kokkuv\u00f5ttes n\u00e4itame, kuidas kasutada Istio Egress, et anda juurdep\u00e4\u00e4s teenustele neile, kes asuvad teie klastri v\u00e4lispindadel, et kasutada Istio v\u00f5imalusi internetis t\u00f6\u00f6tamisel.<\/li>\n<\/ul>\n<p>\nNii, hakkasime minema\u2026<\/p>\n<p><b>Istio j\u00e4lgimise ja haldamise t\u00f6\u00f6riistakast \u2013 k\u00f5ik vajalik mikroteenuste koordineerimiseks teenuste v\u00f5rgus. <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/service-mesh\/\">teenuste v\u00f5rk<\/a><\/noindex>.<\/b><\/p>\n<h3>Mis on Istio teenuste v\u00f5rk<\/h3>\n<p>\nTeenuste v\u00f5rk rakendab grupile teenustele selliseid funktsioone nagu liikluse j\u00e4lgimine, juurdep\u00e4\u00e4sukontroll, avastamine, turvalisus, t\u00f6\u00f6kindlus ja palju muud kasulikku. Istio v\u00f5imaldab seda k\u00f5ike teha ilma, et teenuste koodis peaks olema mingeid muudatusi. Mis on maagiatrikk? Istio liidab iga teenusega oma proksi sidecar-konteinerina (sidecar \u2013 mootorratta k\u00fclgk\u00e4ru), p\u00e4rast mida l\u00e4heb kogu liiklus selle teenuse juurde l\u00e4bi proksi, mis vastavalt m\u00e4\u00e4ratud poliitikatele otsustab, kuidas, millal ja kas see liiklus peab teenuseni j\u00f5udma. Istio pakub ka v\u00f5imalust rakendada arenenud DevOpsi tehnikaid, nagu canary deployments, circuit breakers, fault injection ja palju muud.<\/p>\n<h3>Kuidas Istio t\u00f6\u00f6tab konteinerite ja Kubernetesega<\/h3>\n<p>\nIstio teenuste v\u00f5rk on sidecar-implementatsioon k\u00f5ikidest vajalikest funktsioonidest mikroteenuste loomiseks ja haldamiseks: j\u00e4lgimine, j\u00e4lgimine, circuit breakers, marsruutimine, koormuse tasakaalustamine, fault injection, kordused, ajatuled, peegeldamine, juurdep\u00e4\u00e4sukontroll, kiiruspiirang ja palju muud. Ja kuigi t\u00e4na on palju raamatukogusid, et neid funktsioone otse koodis rakendada, saad sa Istio abil k\u00f5ik need funktsioonid, ilma et peaksid oma koodi muutma.<\/p>\n<p>Sidecar-mudeli kohaselt k\u00e4itab Istio Linuxi konteineris, mis asub \u00fches <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/kubernetes\/\">Kubernetes<\/a><\/noindex>-podis kontrollitava teenusega, ning sisestab (inject) ja v\u00e4ljav\u00f5tab (extract) funktsionaalsust ning teavet vastavalt m\u00e4\u00e4ratud konfiguratsioonile. Alati r\u00f5hutame, et see on teie enda konfiguratsioon ja see elab v\u00e4ljaspool teie koodi. Seet\u00f5ttu muutub kood oluliselt lihtsamaks ja l\u00fchemaks.<\/p>\n<p>Mis on veel oluline, et mikroteenuste operatiivkomponent ei ole mingil viisil seotud koodiga, mis t\u00e4hendab, et nende haldamise v\u00f5ib usaldada IT-spetsialistidele. T\u00f5epoolest, miks peaks arendaja vastutama circuit breaker'ite ja fault injection'i eest? Reageerimine \u2013 jah, aga nende haldamine ja loomine? Kui kogu see asi koodist v\u00e4lja j\u00e4tta, saavad programmeerijad t\u00e4ielikult keskenduda rakendusfunktsionaalsusele. Ja ka kood muutub l\u00fchemaks ja lihtsamaks.<\/p>\n<h3>Teenuste v\u00f5rk<\/h3>\n<p>\nIstio, mis pakub mikroteenuste haldamise funktsioone v\u00e4ljaspool nende koodi \u2013 see ongi teenuste v\u00f5rgu kontseptsioon Service Mesh. Teisis\u00f5nu, see on koordineeritud r\u00fchm \u00fchest v\u00f5i mitmest binaarsest failist, 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> lindude k\u00f5rguselt: k\u00e4ivitate Minishifti instantsi, loote projekti Istio jaoks (nimetame seda 'istio-system'), installite ja k\u00e4ivitate k\u00f5ik Istio komponentidega seotud osad. Seej\u00e4rel, kui loote projekte ja pod'e, lisate konfiguratsiooniteavet oma deployment'idesse ning teie pod'id hakkavad kasutama Istio. Lihtsustatud diagramm n\u00e4eb v\u00e4lja nii:<\/p>\n<p><img decoding=\"async\" alt=\"Postituste sari Istio Service Meshist\" 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'i, toetada <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/blog\/2017\/0.1-canary.html\">Canary deploy<\/a><\/noindex> v\u00f5i muid Istio funktsioone \u2013 ja k\u00f5ik see, ilma et peaksite puudutama rakenduste koodi. Oletame, et soovite suunata kogu veebiliikluse oma suurima kliendi (Foo Corporation) kasutajatelt uue versiooni veebisaidile. Selleks on piisav luua Istio suunamisreegel, mis otsib @foocorporation.com kasutajatunnusest ja rakendab vastava suunamise. K\u00f5ikide teiste kasutajate jaoks ei muutu miski. Te samal ajal saate rahulikult testida uue versiooni veebisaiti. Ja pidage meeles, et selleks ei ole arendajaid vajaka.<\/p>\n<h3>Ja peab selle eest kallilt maksma?<\/h3>\n<p>\nKaugel sellest. Istio t\u00f6\u00f6tab \u00fcsna kiiresti, see on kirjutatud <noindex><a rel=\"nofollow\" href=\"https:\/\/golang.org\/\">Go<\/a><\/noindex> ja loob v\u00e4ga v\u00e4ikese \u00fclekaalu. Lisaks kompenseeritakse v\u00f5imalikud kaotused veebitootlikkuses arendajate tootlikkuse kasvu kaudu. Siiski teoorias: \u00e4rge unustage, et arendajate aeg on kallis. Mis puutub tarkvarakustesse, siis Istio on avatud l\u00e4htekoodiga tarkvara, seega on selle hankimine ja kasutamine tasuta.<\/p>\n<h3>Omnya ise<\/h3>\n<p>\nRed Hat Developer Experience Team on v\u00e4lja t\u00f6\u00f6tanud p\u00f5hjaliku praktilise <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/redhat-developer-demos\/istio-tutorial\">juhend<\/a><\/noindex> Istio kohta (inglise keeles). See t\u00f6\u00f6tab Linuxi, MacOS-i ja Windowsi all, ning kood on saadaval Java ja Node.js versioonides.<\/p>\n<h3>10 interaktiivset istungit Istio kohta<\/h3>\n<p><\/p>\n<h4>Blokk 1 \u2013 Algajatele<\/h4>\n<p>\n<b>Sissejuhatus Istiosse<\/b><br \/>\n30 minutit <br \/>\nTutvume Service Meshiga, \u00f5pime Istio installima OpenShift 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, et juurutada kolme mikroteenust Spring Booti ja Vert.xi 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>Monitorimine ja j\u00e4lgimine Istios<\/b><br \/>\n60 minutit <br \/>\nUurime Istio sisseehitatud j\u00e4lgimisvahendeid, konfigureeritavaid m\u00f5\u00f5dikuid ning OpenTracingut Prometheuse ja Grafana kaudu.<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 Istios marsruutimist hallama 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 marsruutimisreeglid<\/b><br \/>\n60 minutit <br \/>\nTutvume Istios nutika marsruutimise, juurdep\u00e4\u00e4su haldamise, koormuse tasakaalu ja m\u00e4\u00e4rangute piiramisiga.<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>Fault Injection Istios<\/b><br \/>\n60 minutit <br \/>\nUurime t\u00f5rkehalduse stsenaariume jaotatud rakendustes, luues HTTP vigu ja v\u00f5rgu viivitusi, \u00f5ppime rakendama kaostehnikat 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 veebisaitide stressitestimiseks ja \u00f5pime tagama taustteenuse t\u00f5rketaluvust kordusv\u00f5imetuse, circuit breaker'i ja devpool'e kaudu.<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 \/>\nKasuta Egressi marsruute, et luua reeglid sisemiste teenuste ja v\u00e4list API-de ja teenuste vahel.<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, kuidas kasutada Kialit, et saada \u00fcldine \u00fclevaade teenuse v\u00f5rku ja uuringute p\u00e4ringute ning andmete voogudest.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/observe-kiali\/\">Alustada<\/a><\/noindex> <\/p>\n<p>Mutual TLS Istios<br \/>\n15 minutit <br \/>\nLoome Istio Gateway ja VirtualService, seej\u00e4rel uurime p\u00f5hjalikult omavahelist TLS-i (mTLS) ja selle seadistusi.<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\u00fcvitsi minek: Istio Service Mesh mikroteenustele<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Postituste sari Istio Service Meshist\" src=\"\/wp-content\/uploads\/2019\/12\/1a2bb62b0bbd46fa9b42be1ccbfddfa6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMillest raamat r\u00e4\u00e4gib:<\/p>\n<ul>\n<li>Mis on teenuse v\u00f5rgu 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>Veakindlus;<\/li>\n<li>Marsruutimine;<\/li>\n<li>Kaostestimine;<\/li>\n<li>Turvalisus;<\/li>\n<li>Telemeetriakogumine j\u00e4lgimise, m\u00f5\u00f5dikutega ja Grafana abil.<\/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\/\">Laadi raamat<\/a><\/noindex><\/p>\n<h3>Artiklite seeria teenusv\u00f5rkude ja Istio kohta<\/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 suunamisreeglid: suuname teenusettev\u00f5tte p\u00e4ringud sinna, kuhu need kuuluvad<\/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\u00f6tame v\u00e4lja saagimise<\/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 rike valik<\/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\/\">Kaosetehnika Istios: see oli nii kavandatud<\/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 teenused<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2018\/04\/24\/istio-smart-canary-launch\/\">Kanaride juurutamine Istios: lihtsustame juurutamise protsessi<\/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\u00e4ljap\u00e4\u00e4s suveniiripoest<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3>Proovige ise<\/h3>\n<p>\nSee postituste seeria ei p\u00fc\u00fca anda s\u00fcgavat sukeldumist Istio maailma. Soovime lihtsalt tutvustada teid selle m\u00f5istega ja v\u00f5ib-olla innustada teid ise Istiot proovima. Seda on v\u00f5imalik teha t\u00e4iesti tasuta, ja Red Hat pakub k\u00f5ik vajalikud t\u00f6\u00f6riistad, et alustada OpenShift'i, Kubernetes'i, Linuxi konteinerite ja Istio \u00f5ppimist, nimelt: <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 kohta<\/a><\/noindex> ja teised ressursid meie <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/service-mesh\/\">teenusv\u00f5rgu mikroveebis<\/a><\/noindex>. \u00c4ra oota, alusta juba t\u00e4na!<\/p>\n<h3>Istio suunamisreeglid: suuname teenusettev\u00f5tte p\u00e4ringud sinna, kuhu need kuuluvad<\/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> teenindavad suurep\u00e4raselt p\u00e4ringud <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/microservices\/\">mikroteenustele<\/a><\/noindex> suunatakse \u00f5igetele pod'idele. See on \u00fcks Kubernetes'e eksisteerimise eesm\u00e4rke \u2013 marsruutimine ja koormuse tasakaalustamine. Ent mis juhtub, kui vajate peenemat ja rafineeritumat marsruutimist? N\u00e4iteks kui soovite korraga kasutada kahte mikroteenuse versiooni. Kuidas aitavad siin Istio suunamisreeglid?<\/p>\n<p>Suunamisreeglid on reeglid, mis tegelikult m\u00e4\u00e4ravad marsruudi valiku. \u00dcksk\u00f5ik kui keeruline s\u00fcsteem on, j\u00e4\u00e4b nende reeglite t\u00f6\u00f6 p\u00f5him\u00f5te lihtsaks: p\u00e4ringud marsruutimise aluseks on m\u00e4\u00e4ratletud parameetrid ja HTTP pealdiste v\u00e4\u00e4rtused. <br \/>\nVaadakem n\u00e4idete kaudu: <\/p>\n<h3>Kubernetes vaikes\u00e4te: triviaalne \u201c50-50\u201d jaotus<\/h3>\n<p>\nOma n\u00e4ites n\u00e4itame, kuidas kasutada OpenShift'is korraga kahte versiooni mikroteenusest, nimetame neid v1 ja v2. Iga versioon k\u00e4ivitub oma Kubernetes'e pod'is ning vaikimisi t\u00f6\u00f6tab siin \u00fchtlaselt jaotatud ringjoone marsruutimine (evenly balanced round robin routing). Iga pod saab oma osa p\u00e4ringutest vastavalt tema mikroteenuse eksemplaride arvule, teisis\u00f5nu, replikatele. Istio v\u00f5imaldab siiski selle tasakaalu k\u00e4sitsi muuta.<\/p>\n<p>Oletame, et oleme OpenShift'is juurutanud kaks meie soovitusteenuse versiooni, recommendation-v1 ja recommendation-v2.<br \/>\nKujutisel 1 on n\u00e4ha, et kui iga teenus on esindatud \u00fches eksemplaris, siis p\u00e4ringud vahelduvad \u00fchtlaselt nende vahel: 1-2-1-2-... Just nii t\u00f6\u00f6tab Kubernetes'e marsruutimine vaikimisi:<\/p>\n<p><img decoding=\"async\" alt=\"Postituste sari Istio Service Meshist\" src=\"\/wp-content\/uploads\/2019\/12\/93b00e4845ba930ca4d718b59629377e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Kaaluge jaotumist versioonide vahel<\/h3>\n<p>\nKujutisel 2 on n\u00e4ha, mis juhtub, kui suurendada v2 teenuse replikaid \u00fchest kaheni (see toimub k\u00e4su oc scale \u2014replicas=2 deployment\/recommendation-v2 abil). Nagu n\u00e4eme, jagunevad p\u00e4ringud v1 ja v2 n\u00fc\u00fcd suhtega \"\u00fcks kolme vastu\": 1-2-2-1-2-2-\u2026:<\/p>\n<p><img decoding=\"async\" alt=\"Postituste sari Istio Service Meshist\" 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 saame suunata kogu liikluse ainult recommendation-v1-le j\u00e4rgmise Istio yaml-failiga:<\/p>\n<p><img decoding=\"async\" alt=\"Postituste sari Istio Service Meshist\" 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 vastavalt m\u00e4rkidele. Meie n\u00e4ites kasutatakse m\u00e4rki v1. Parameeter \"weight: 100\" t\u00e4hendab, et 100% liiklusest suunatakse k\u00f5ikidele pod'idele, millel on m\u00e4rk v1.<\/p>\n<h3>Diktee jaotamine versioonide vahel (Canary Deployment)<\/h3>\n<p>\nEdasi, kasutades parameetrit weight, saab liiklust suunata m\u00f5lema pod'i poole, ignoreerides mikroteenuste koopiaid, mis on iga\u00fches jooksutatud. N\u00e4iteks suuname siin diktiivselt 90% liiklusest v1-le ja 10% - v2-le:<\/p>\n<p><img decoding=\"async\" alt=\"Postituste sari Istio Service Meshist\" src=\"\/wp-content\/uploads\/2019\/12\/1a28e76ea7d8306fbefecefaad34c931.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Eraldi marsruutimine mobiilsete kasutajate jaoks<\/h3>\n<p>\nKokkuv\u00f5tteks n\u00e4itame, kuidas sundida mobiilsete kasutajate liiklust suunama teenusele v2 ja k\u00f5ik \u00fclej\u00e4\u00e4nud - v1-le. Selleks anal\u00fc\u00fcsime regulaaravaldiste abil user-agent v\u00e4\u00e4rtust p\u00e4ringupealkirjas:<\/p>\n<p><img decoding=\"async\" alt=\"Postituste sari Istio Service Meshist\" 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>\nRegulaaravaldiste n\u00e4ide pealkirjade anal\u00fc\u00fcsimiseks peaks motiveerima teid otsima oma v\u00f5imalusi Istio marsruutimisreeglite rakendamiseks. Eriti, kuna v\u00f5imalused on siin ulatuslikud, kuna pealkirjade 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 \u00fclaltoodud n\u00e4idetes n\u00e4itasime, toimub ilma v\u00e4himalgi muutmiseta l\u00e4htekoodis, v\u00e4lja arvatud juhtudel, kui tuleb luua erilisi p\u00e4ringupealkirju. Istio on kasulik nii arendajatele, kes saavad seda kasutada n\u00e4iteks testimise etapis, kui ka IT-s\u00fcsteemide halduritele, kellele see aitab oluliselt tootmises.<\/p>\n<p>Nii et kordame selle postitustes seeria motiivi: <b>teile ei pea oma koodis midagi muutma<\/b>. Uute piltide kogumine v\u00f5i uute konteinerite k\u00e4ivitamine ei ole vajalik. K\u00f5ik see viiakse ellu v\u00e4ljaspool koodi.<\/p>\n<h3>K\u00e4itage oma kujutlusv\u00f5imet<\/h3>\n<p>\nKujutage ette, millised v\u00f5imalused avanevad pealkirjade anal\u00fc\u00fcsimisel regulaaravaldiste abil. Kas soovite suunata oma suurima kliendi spetsiaalsele versioonile? <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/microservices\/\">Mikroteenused<\/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 kohta lugemine on \u00fcks asi, aga miks mitte k\u00f5ike ise k\u00e4tega proovida? Meeskond <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/\">Red Hat Developer Program<\/a><\/noindex> valmistab ette p\u00f5hjalikku juhendit (inglise keeles), mis aitab teil neid tehnoloogiaid v\u00f5imalikult kiiresti omandada. Juhend on samuti 100% avatud l\u00e4htekoodiga, seega on see kergesti k\u00e4ttesaadav. Fail t\u00f6\u00f6tab macOS, Linuxi ja Windowsi peal ning l\u00e4htekood on saadaval Java ja node.js variantides (varsti tuleb versioone ka teistes keeltes). Avage lihtsalt oma brauseris vastav git-repositorium. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/redhat-developer-demos\/istio-tutorial\">Red Hat Developer Demo<\/a><\/noindex>.<\/p>\n<h3>J\u00e4rgmises postituses: lahendame probleeme kenasti.<\/h3>\n<p>\nT\u00e4na n\u00e4gite, milleks Istio marsruutimisreeglid v\u00f5imelised on. Ja n\u00fc\u00fcd kujutage ette sama, kuid vigade k\u00e4sitlemise kontekstis. Just sellest me r\u00e4\u00e4gime 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.2 - 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.2\" \/>\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'i postituste seeria | ProHoster","description":"Alustame postituste seeriat, kus demonstreerime mitmeid Istio Service Meshi v\u00f5imalusi koos Red Hat OpenShifti ja Kubernetesega.","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}]}}