{"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\/pl\/blog\/administrirovanie\/seriya-postov-po-istio-service-mesh","title":{"rendered":"Seria post\u00f3w dotycz\u0105cych Istio Service Mesh","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Rozpoczynamy seri\u0119 post\u00f3w, w kt\u00f3rych zaprezentujemy niekt\u00f3re z wielu mo\u017cliwo\u015bci siatki us\u0142ug Istio Service Mesh w po\u0142\u0105czeniu z Red Hat OpenShift i Kubernetes.<\/p>\n<p><img decoding=\"async\" alt=\"Seria post\u00f3w dotycz\u0105cych Istio Service Mesh\" src=\"\/wp-content\/uploads\/2019\/12\/b7cc06e1451763db78fdf84764af4b69.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCz\u0119\u015b\u0107 pierwsza, dzisiejsza: <\/p>\n<ul>\n<li>Wyja\u015bnimy koncepcj\u0119 kontener\u00f3w sidecar w Kubernetes i sformu\u0142ujemy leitmotiv tej serii post\u00f3w: <b>\u201enie musisz nic zmienia\u0107 w swoim kodzie\u201d<\/b>.<\/li>\n<li>Przedstawimy podstawow\u0105 rzecz Istio \u2013 zasady routingu. Na nich opieraj\u0105 si\u0119 wszystkie inne mo\u017cliwo\u015bci Istio, poniewa\u017c to w\u0142a\u015bnie zasady umo\u017cliwiaj\u0105 kierowanie ruchem do mikrous\u0142ug, wykorzystuj\u0105c do tego pliki YAML, kt\u00f3re s\u0105 zewn\u0119trzne w odniesieniu do kodu us\u0142ug. Om\u00f3wimy r\u00f3wnie\u017c schemat wdro\u017cenia Canary Deployment. Noworoczny bonus \u2013 10 interaktywnych zaj\u0119\u0107 z Istio.<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nCz\u0119\u015b\u0107 druga, kt\u00f3ra wkr\u00f3tce si\u0119 pojawi, opowie o: <\/p>\n<ul>\n<li>Jak Istio realizuje Pool Ejection w po\u0142\u0105czeniu z Circuit Breaker i poka\u017ce, jak Istio pozwala usun\u0105\u0107 z schematu r\u00f3wnowa\u017cenia nie dzia\u0142aj\u0105cy lub \u017ale dzia\u0142aj\u0105cy pod.<\/li>\n<li>Zajmiemy si\u0119 r\u00f3wnie\u017c tematem Circuit Breaker z pierwszego posta, aby sprawdzi\u0107, jak mo\u017cna tutaj wykorzysta\u0107 Istio. Poka\u017cemy, jak bez najmniejszych zmian w kodzie us\u0142ug kierowa\u0107 ruchem i obs\u0142ugiwa\u0107 b\u0142\u0119dy sieciowe za pomoc\u0105 plik\u00f3w konfiguracyjnych YAML i polece\u0144 terminala.<\/li>\n<\/ul>\n<p>\nCz\u0119\u015b\u0107 trzecia: <\/p>\n<ul>\n<li>Opowie\u015b\u0107 o \u015bledzeniu i monitorowaniu, kt\u00f3re s\u0105 ju\u017c wbudowane lub \u0142atwo dodawane do Istio. Poka\u017cemy, jak korzysta\u0107 z takich narz\u0119dzi jak Prometheus, Jaeger i Grafana w po\u0142\u0105czeniu ze skalowaniem OpenShift, aby bez wysi\u0142ku zarz\u0105dza\u0107 architektur\u0105 mikrous\u0142ug.<\/li>\n<li>Przechodzimy od monitorowania i obs\u0142ugi b\u0142\u0119d\u00f3w do wprowadzania ich do systemu celowo. Innymi s\u0142owy, uczymy si\u0119, jak przeprowadza\u0107 fault injection bez zmiany kodu \u017ar\u00f3d\u0142owego, co jest bardzo wa\u017cne z perspektywy testowania \u2014 poniewa\u017c modyfikacja samego kodu wi\u0105\u017ce si\u0119 z ryzykiem wprowadzenia nowych b\u0142\u0119d\u00f3w.<\/li>\n<\/ul>\n<p>\nW ko\u0144cu, w fin\u00e1lnym po\u015bcie po Istio Service Mesh:<\/p>\n<ul>\n<li>Przejdziemy na Ciemn\u0105 Stron\u0119. Dok\u0142adniej, nauczymy si\u0119 korzysta\u0107 z schematu Dark Launch, kiedy kod jest wdra\u017cany i testowany bezpo\u015brednio na danych produkcyjnych, ale nie wp\u0142ywa na dzia\u0142anie systemu. Umiej\u0119tno\u015b\u0107 Istio w zakresie dzielenia ruchu przydaje si\u0119 w tym przypadku. Mo\u017cliwo\u015b\u0107 przeprowadzania test\u00f3w na \u017cywych danych produkcyjnych, nie wp\u0142ywaj\u0105c na dzia\u0142anie systemu produkcyjnego, to najskuteczniejszy spos\u00f3b weryfikacji.<\/li>\n<li>W oparciu o Dark Launch, poka\u017cemy, jak wykorzysta\u0107 model wdro\u017cenia Canary, aby zminimalizowa\u0107 ryzyko i upro\u015bci\u0107 wprowadzenie nowego kodu. Samo wdro\u017cenie Canary to nie nowo\u015b\u0107, ale Istio umo\u017cliwia realizacj\u0119 tego schematu jedynie przy pomocy prostych plik\u00f3w YAML.<\/li>\n<li>Na koniec poka\u017cemy, jak za pomoc\u0105 Istio Egress udost\u0119pni\u0107 us\u0142ugi tym, kt\u00f3rzy znajduj\u0105 si\u0119 poza twoimi klastrami, aby wykorzysta\u0107 mo\u017cliwo\u015bci Istio w pracy z internetem.<\/li>\n<\/ul>\n<p>\nNo to zaczynamy...<\/p>\n<p><b>Narz\u0119dzia do monitorowania i zarz\u0105dzania Istio \u2013 wszystko, co potrzebne do koordynacji mikrous\u0142ug w sieci us\u0142ugowej <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/service-mesh\/\">service mesh<\/a><\/noindex>.<\/b><\/p>\n<h3>Czym jest sie\u0107 us\u0142ugowa Istio<\/h3>\n<p>\nSie\u0107 us\u0142ugowa realizuje dla grupy us\u0142ug takie funkcje, jak monitorowanie ruchu, kontrola dost\u0119pu, odkrywanie, bezpiecze\u0144stwo, odporno\u015b\u0107 na awarie oraz inne przydatne funkcje. Istio pozwala na to wszystko bez jakichkolwiek zmian w kodzie samych us\u0142ug. Jaki jest sekret tego czarodzieja? Istio do ka\u017cdego serwisu do\u0142\u0105cza sw\u00f3j proxy w postaci kontenera sidecar (sidecar - przyczepka motocyklowa), a nast\u0119pnie ca\u0142y ruch do tego serwisu przechodzi przez proxy, kt\u00f3re, kieruj\u0105c si\u0119 ustalonymi politykami, decyduje, jak, kiedy i czy w og\u00f3le ten ruch ma dotrze\u0107 do serwisu. Istio umo\u017cliwia r\u00f3wnie\u017c wdra\u017canie zaawansowanych technik DevOps, takich jak wdro\u017cenia canary, obwody przeci\u0105\u017ceniowe, wstrzykiwanie b\u0142\u0119d\u00f3w i wiele innych.<\/p>\n<h3>Jak Istio dzia\u0142a z kontenerami i Kubernetes<\/h3>\n<p>\nSie\u0107 us\u0142ugowa Istio to realizacja sidecarowa wszystkiego, co konieczne do tworzenia i zarz\u0105dzania mikrous\u0142ugami: monitorowanie, \u015bledzenie, obwody przeci\u0105\u017ceniowe, routowanie, r\u00f3wnowa\u017cenie obci\u0105\u017cenia, wstrzykiwanie b\u0142\u0119d\u00f3w, ponowienia, time-outy, lustrzane odbicie, kontrola dost\u0119pu, ograniczenie pr\u0119dko\u015bci i wiele wi\u0119cej. I chocia\u017c dzisiaj istnieje wiele bibliotek, by realizowa\u0107 te funkcje bezpo\u015brednio w kodzie, dzi\u0119ki Istio mo\u017cesz otrzyma\u0107 to wszystko, nic nie zmieniaj\u0105c w swoim kodzie.<\/p>\n<p>Zgodnie z modelem sidecar, Istio dzia\u0142a w kontenerze Linux, kt\u00f3ry znajduje si\u0119 w tym samym <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/kubernetes\/\">Kubernetes<\/a><\/noindex>-podzie co kontrolowana us\u0142uga i wprowadza (inject) oraz wydobywa (extract) funkcjonalno\u015b\u0107 i informacje zgodnie z okre\u015blon\u0105 konfiguracj\u0105. Podkre\u015blamy, \u017ce to twoja w\u0142asna konfiguracja i \u017cyje ona poza twoim kodem. Dlatego kod staje si\u0119 znacznie prostszy i kr\u00f3tszy.<\/p>\n<p>Co jeszcze wa\u017cne, operacyjna cz\u0119\u015b\u0107 mikroserwis\u00f3w nie jest w \u017caden spos\u00f3b zwi\u0105zana z samym kodem, co oznacza, \u017ce ich eksploatacj\u0119 mo\u017cna spokojnie powierzy\u0107 specjalistom IT. W rzeczy samej, dlaczego programista mia\u0142by odpowiada\u0107 za circuit breaker\u2019y i fault injection? Reagowa\u0107 \u2013 tak, ale przetwarza\u0107 je i tworzy\u0107? Je\u015bli usuniemy to wszystko z kodu, programi\u015bci b\u0119d\u0105 mogli skoncentrowa\u0107 si\u0119 na aplikacyjnym funkcjonale. A sam kod stanie si\u0119 kr\u00f3tszy i prostszy.<\/p>\n<h3>Sie\u0107 serwisowa<\/h3>\n<p>\nIstio, realizuj\u0105c funkcje zarz\u0105dzania mikroserwisami poza ich kodem \u2013 to w\u0142a\u015bnie koncepcja sieci serwisowej Service Mesh. Innymi s\u0142owy, to skoordynowana grupa jednego lub kilku binarnych plik\u00f3w, kt\u00f3re tworz\u0105 siatk\u0119 funkcji sieciowych.<\/p>\n<h3>Jak Istio wsp\u00f3\u0142pracuje z mikroserwisami<\/h3>\n<p>\nTak wygl\u0105da praca kontener\u00f3w sidecar w po\u0142\u0105czeniu z <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/kubernetes\/\">Kubernetes<\/a><\/noindex> i <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openshift.org\/minishift\/\">Minishift<\/a><\/noindex> z lotu ptaka: uruchamiasz instancj\u0119 Minishift, tworzysz projekt dla Istio (nazwijmy go \u201eistio-system\u201d), instalujesz i uruchamiasz wszystkie zwi\u0105zane z Istio komponenty. Nast\u0119pnie, w miar\u0119 tworzenia projekt\u00f3w i pod\u2019\u00f3w, dodajesz informacje konfiguracyjne do swoich deployment\u2019\u00f3w, a twoje pod\u2019y zaczynaj\u0105 korzysta\u0107 z Istio. Uproszczony diagram wygl\u0105da tak:<\/p>\n<p><img decoding=\"async\" alt=\"Seria post\u00f3w dotycz\u0105cych Istio Service Mesh\" src=\"\/wp-content\/uploads\/2019\/12\/feb36ba35442307a8136c395ccae4fd2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Teraz mo\u017cna zmienia\u0107 ustawienia Istio, aby na przyk\u0142ad zorganizowa\u0107 fault injection, wsparcie <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/blog\/2017\/0.1-canary.html\">Canary Deployment<\/a><\/noindex> lub inne mo\u017cliwo\u015bci Istio \u2013 i to wszystko bez potrzeby ruszania samego kodu aplikacji. Powiedzmy, \u017ce chcesz przekierowa\u0107 ca\u0142y ruch internetowy od u\u017cytkownik\u00f3w swojego najwi\u0119kszego klienta (Foo Corporation) na now\u0105 wersj\u0119 strony. Wystarczy stworzy\u0107 zasad\u0119 routingu Istio, kt\u00f3ra b\u0119dzie wyszukiwa\u0107 @foocorporation.com w identyfikatorze u\u017cytkownika i wykonywa\u0107 odpowiednie przekierowanie. Dla wszystkich innych u\u017cytkownik\u00f3w nic si\u0119 nie zmieni. A ty w tym czasie b\u0119dziesz spokojnie testowa\u0107 now\u0105 wersj\u0119 strony. I zauwa\u017c, \u017ce do tego wcale nie trzeba anga\u017cowa\u0107 deweloper\u00f3w.<\/p>\n<h3>A to b\u0119dzie drogie?<\/h3>\n<p>\nNiekoniecznie. Istio dzia\u0142a do\u015b\u0107 szybko, jest napisane w <noindex><a rel=\"nofollow\" href=\"https:\/\/golang.org\/\">Go<\/a><\/noindex> I tworzy zaledwie niewielkie obci\u0105\u017cenie. Co wi\u0119cej, mo\u017cliwa utrata wydajno\u015bci online jest kompensowana wzrostem wydajno\u015bci pracy programist\u00f3w. Przynajmniej teoretycznie: nie zapominaj, \u017ce czas programist\u00f3w jest drogi. Je\u015bli chodzi o koszty oprogramowania, Istio to oprogramowanie o otwartym kodzie \u017ar\u00f3d\u0142owym, dlatego mo\u017cna je bezp\u0142atnie uzyska\u0107 i u\u017cywa\u0107.<\/p>\n<h3>Opanuj to samodzielnie<\/h3>\n<p>\nZesp\u00f3\u0142 Red Hat Developer Experience opracowa\u0142 g\u0142\u0119bokie praktyczne <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/redhat-developer-demos\/istio-tutorial\">przewodnik<\/a><\/noindex> na temat Istio (w j\u0119zyku angielskim). Dzia\u0142a na systemach Linux, MacOS i Windows, a kod jest dost\u0119pny w wersjach na Java i Node.js.<\/p>\n<h3>10 interaktywnych zaj\u0119\u0107 na temat Istio<\/h3>\n<p><\/p>\n<h4>Blok 1 \u2014 Dla pocz\u0105tkuj\u0105cych<\/h4>\n<p>\n<b>Wprowadzenie do Istio<\/b><br \/>\n30 minut <br \/>\nPoznajemy Service Mesh, uczymy si\u0119 instalowa\u0107 Istio w klastrze Kubernetes na OpenShift.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/istio-introduction\/\">Rozpocznij<\/a><\/noindex> <\/p>\n<p><b>Wdra\u017canie mikrous\u0142ug w Istio<\/b><br \/>\n30 minut<br \/>\nU\u017cywamy Istio, aby wdro\u017cy\u0107 trzy mikrous\u0142ugi z Spring Boot i Vert.x.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/deploy-microservices\/\">Rozpocznij<\/a><\/noindex> <\/p>\n<h4>Blok 2 \u2013 \u015bredni poziom <\/h4>\n<p>\n<b>Monitoring i \u015bledzenie w Istio<\/b><br \/>\n60 minut <br \/>\nPoznajemy wbudowane narz\u0119dzia monitorowania Istio, konfigurowalne metryki oraz OpenTracing przez Prometheus i Grafana.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/monitoring-tracing\/\">Rozpocznij<\/a><\/noindex> <\/p>\n<p><b>Prosta routingu w Istio<\/b><br \/>\n60 minut <br \/>\nUczymy si\u0119 zarz\u0105dza\u0107 routingiem w Istio za pomoc\u0105 prostych regu\u0142.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/simple-route-rules\/\">Rozpocznij <\/a><\/noindex><\/p>\n<p><b>Zaawansowane regu\u0142y routingu<\/b><br \/>\n60 minut <br \/>\nPoznajemy inteligentne routowanie w Istio, zarz\u0105dzanie dost\u0119pem, r\u00f3wnowa\u017cenie obci\u0105\u017cenia i ograniczenie przepustowo\u015bci.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/advanced-routerules\/\">Rozpocznij<\/a><\/noindex> <\/p>\n<h4>Blok 3 \u2013 zaawansowany u\u017cytkownik<\/h4>\n<p>\n<b>Wstrzykiwanie b\u0142\u0119d\u00f3w w Istio<\/b><br \/>\n60 minut <br \/>\nPoznajemy scenariusze obs\u0142ugi awarii w rozproszonych aplikacjach, tworz\u0105c b\u0142\u0119dy HTTP i op\u00f3\u017anienia sieciowe, uczymy si\u0119 stosowa\u0107 in\u017cynieri\u0119 chaosu do odbudowy \u015brodowiska.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/fault-injection\/\">Rozpocznij<\/a><\/noindex> <\/p>\n<p><b>Circuit Breaker w Istio<\/b><br \/>\n30 minut <br \/>\nInstalujemy Siege do testowania obci\u0105\u017cenia stron i uczymy si\u0119 zapewnia\u0107 odporno\u015b\u0107 backendu za pomoc\u0105 powt\u00f3rze\u0144, circuit breaker i odrzucania puli.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/circuit-breaker\/\">Rozpocznij<\/a><\/noindex> <\/p>\n<p><b>Egress i Istio<\/b><br \/>\n10 minut <br \/>\nU\u017cywamy tras Egress, aby tworzy\u0107 regu\u0142y interakcji wewn\u0119trznych us\u0142ug z zewn\u0119trznymi API i us\u0142ugami.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/egress\/\">Rozpocznij<\/a><\/noindex> <\/p>\n<p><b>Istio i Kiali<\/b><br \/>\n15 minut <br \/>\nUczymy si\u0119 korzysta\u0107 z Kiali, aby uzyska\u0107 og\u00f3lny obraz siatki us\u0142ug i zbada\u0107 przep\u0142ywy zapyta\u0144 i danych.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/observe-kiali\/\">Rozpocznij<\/a><\/noindex> <\/p>\n<p>Mutual TLS w Istio<br \/>\n15 minut <br \/>\nTworzymy Istio Gateway i VirtualService, a nast\u0119pnie szczeg\u00f3\u0142owo badamy mutual TLS (mTLS) i jego ustawienia.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/courses\/service-mesh\/mtls\/\">Rozpocznij<\/a><\/noindex> <\/p>\n<h4>Blok 3.1 \u2014 G\u0142\u0119bokie zanurzenie: Istio Service Mesh dla mikrous\u0142ug<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Seria post\u00f3w dotycz\u0105cych Istio Service Mesh\" src=\"\/wp-content\/uploads\/2019\/12\/1a2bb62b0bbd46fa9b42be1ccbfddfa6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nO czym jest ta ksi\u0105\u017cka:<\/p>\n<ul>\n<li>Co to jest siatka us\u0142ug service mesh.<\/li>\n<li>System Istio i jego rola w architekturze mikrous\u0142ug.<\/li>\n<li>Wykorzystanie Istio w nast\u0119puj\u0105cych zadaniach:\n<ul>\n<li>Odporno\u015b\u0107 na awarie;<\/li>\n<li>Routing;<\/li>\n<li>Testowanie chaosu;<\/li>\n<li>Bezpiecze\u0144stwo;<\/li>\n<li>Zbieranie telemetrii z wykorzystaniem \u015bledzenia, metryk i Grafany.<\/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\/\">Pobierz ksi\u0105\u017ck\u0119<\/a><\/noindex><\/p>\n<h3>Seria artyku\u0142\u00f3w o sieciach serwisowych i Istio<\/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\/\">Regu\u0142y routingu Istio: kierujemy zapytania serwisowe tam, gdzie nale\u017cy<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2018\/03\/20\/istio-circuit-breaker-pool-ejection\/\">Circuit Breakery w Istio: obs\u0142uga Pool Ejection<\/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 w Istio: kiedy awaria to opcja<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2018\/04\/03\/istio-tracing-monitoring\/\">\u015aledzenie i monitorowanie w Istio: dok\u0105d zmierza wszystko i jak szybko<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2018\/04\/10\/istio-chaos-engineering\/\">Chaos engineering w Istio: tak to by\u0142o zaplanowane<\/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 w Istio: tajne us\u0142ugi<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2018\/04\/24\/istio-smart-canary-launch\/\">Canary Deployment w Istio: u\u0142atwiamy wprowadzenie do eksploatacji<\/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: wyj\u015bcie przez sklep z pami\u0105tkami<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3>Spr\u00f3buj samodzielnie<\/h3>\n<p>\nCelem tej serii wpis\u00f3w nie jest g\u0142\u0119bokie zanurzenie si\u0119 w \u015bwiat Istio. Chcemy tylko zapozna\u0107 Ci\u0119 z sam\u0105 koncepcj\u0105 i mo\u017ce zainspirowa\u0107 do samodzielnego wypr\u00f3bowania Istio. Mo\u017cna to zrobi\u0107 ca\u0142kowicie za darmo, a Red Hat udost\u0119pnia wszystkie niezb\u0119dne narz\u0119dzia, aby zacz\u0105\u0107 pracowa\u0107 z OpenShift, Kubernetes, kontenerami Linux i Istio, a mianowicie: <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\">naszym przewodnikiem po Istio<\/a><\/noindex> i innymi zasobami na naszym <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/service-mesh\/\">mikrostronie po\u015bwi\u0119conej Service Mesh<\/a><\/noindex>. Nie czekaj, zacznij ju\u017c dzi\u015b!<\/p>\n<h3>Regu\u0142y routingu Istio: kierujemy zapytania serwisowe tam, gdzie nale\u017cy<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/products\/openshift\/overview\/\">OpenShift<\/a><\/noindex> i <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/kubernetes\/\">Kubernetes<\/a><\/noindex> \u015bwietnie radz\u0105 sobie z kierowaniem <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/microservices\/\">mikroserwisami<\/a><\/noindex> do odpowiednich pod\u2019\u00f3w. To jeden z cel\u00f3w istnienia Kubernetes \u2013 routing i r\u00f3wnowa\u017cenie obci\u0105\u017cenia. A co, je\u015bli potrzebujesz bardziej subtelnego i wyrafinowanego routingu? Na przyk\u0142ad, aby jednocze\u015bnie korzysta\u0107 z dw\u00f3ch wersji mikroserwisu. Jak mog\u0105 w tym pom\u00f3c regu\u0142y routingu Istio?<\/p>\n<p>Regu\u0142y routingu to zasady, kt\u00f3re okre\u015blaj\u0105 wyb\u00f3r \u015bcie\u017cki. Przy ka\u017cdym poziomie z\u0142o\u017cono\u015bci systemu og\u00f3lna zasada dzia\u0142ania tych regu\u0142 pozostaje prosta: zapytania s\u0105 kierowane na podstawie okre\u015blonych parametr\u00f3w i warto\u015bci nag\u0142\u00f3wk\u00f3w HTTP. <br \/>\nZobaczmy na przyk\u0142adach: <\/p>\n<h3>Kubernetes domy\u015blnie: trywialne \u201e50 na 50\u201d<\/h3>\n<p>\nW naszym przyk\u0142adzie poka\u017cemy, jak jednocze\u015bnie u\u017cywa\u0107 w OpenShift dw\u00f3ch wersji mikroserwisu, nazwanych v1 i v2. Ka\u017cda wersja dzia\u0142a w swoim w\u0142asnym pod\u2019zie Kubernetes, a domy\u015blnie tutaj dzia\u0142a r\u00f3wnowa\u017cony cykliczny routing (evenly balanced round robin routing). Ka\u017cdy pod otrzymuje swoj\u0105 cz\u0119\u015b\u0107 zapyta\u0144, w zale\u017cno\u015bci od liczby jego instancji mikroserwisu, m\u00f3wi\u0105c inaczej, replik. Istio pozwala jednak r\u0119cznie zmieni\u0107 ten balans.<\/p>\n<p>Za\u0142\u00f3\u017cmy, \u017ce wdro\u017cyli\u015bmy w OpenShift dwie wersje naszego serwisu rekomendacji, recommendation-v1 i recommendation-v2.<br \/>\nNa rys. 1 wida\u0107, \u017ce gdy ka\u017cdy serwis jest reprezentowany w jednej instancji, zapytania r\u00f3wnomiernie przeplataj\u0105 si\u0119 mi\u0119dzy nimi: 1-2-1-2-\u2026 Tak w\u0142a\u015bnie dzia\u0142a routing Kubernetes domy\u015blnie:<\/p>\n<p><img decoding=\"async\" alt=\"Seria post\u00f3w dotycz\u0105cych Istio Service Mesh\" src=\"\/wp-content\/uploads\/2019\/12\/93b00e4845ba930ca4d718b59629377e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Wa\u017cy dystrybucj\u0119 mi\u0119dzy wersjami<\/h3>\n<p>\n\u041d\u0430 \u0440\u0438\u0441. 2 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043f\u043b\u0438\u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0430 v2 \u0441 \u043e\u0434\u043d\u043e\u0439 \u0434\u043e \u0434\u0432\u0443\u0445 (\u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 oc scale &#8212;replicas=2 deployment\/recommendation-v2). \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043c\u0435\u0436\u0434\u0443 v1 \u0438 v2 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u0432 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u00ab\u043e\u0434\u0438\u043d \u043a \u0442\u0440\u0435\u043c\u00bb: 1-2-2-1-2-2-\u2026:<\/p>\n<p><img decoding=\"async\" alt=\"Seria post\u00f3w dotycz\u0105cych Istio Service Mesh\" src=\"\/wp-content\/uploads\/2019\/12\/a432b1cea0e297c99b041137d33fc107.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Ignorowanie wersji z pomoc\u0105 Istio<\/h3>\n<p>\nIstio umo\u017cliwia \u0142atwe zmienianie rozk\u0142adu \u017c\u0105da\u0144 w po\u017c\u0105dany przez nas spos\u00f3b. Na przyk\u0142ad, aby wys\u0142a\u0107 ca\u0142y ruch tylko do recommendation-v1 przy u\u017cyciu poni\u017cszego pliku yaml Istio:<\/p>\n<p><img decoding=\"async\" alt=\"Seria post\u00f3w dotycz\u0105cych Istio Service Mesh\" src=\"\/wp-content\/uploads\/2019\/12\/db4190d495fb6dcc7c50cb8d28a7ef58.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Tu nale\u017cy zwr\u00f3ci\u0107 uwag\u0119 na to, \u017ce pod\u2019y s\u0105 wybierane wed\u0142ug etykiet. W naszym przyk\u0142adzie u\u017cywana jest etykieta v1. Parametr \u00abweight: 100\u00bb oznacza, \u017ce 100% ruchu b\u0119dzie kierowane do wszystkich pod\u2019\u00f3w us\u0142ugi, kt\u00f3re maj\u0105 etykiet\u0119 v1.<\/p>\n<h3>Zarz\u0105dzanie rozk\u0142adem mi\u0119dzy wersjami (Canary Deployment)<\/h3>\n<p>\nNast\u0119pnie, wykorzystuj\u0105c parametr weight, mo\u017cna kierowa\u0107 ruch do obu pod\u2019\u00f3w, ignoruj\u0105c liczb\u0119 instancji mikrous\u0142ug uruchomionych w ka\u017cdej z nich. Na przyk\u0142ad, tutaj kierujemy 90% ruchu na v1 i 10% \u2013 na v2:<\/p>\n<p><img decoding=\"async\" alt=\"Seria post\u00f3w dotycz\u0105cych Istio Service Mesh\" src=\"\/wp-content\/uploads\/2019\/12\/1a28e76ea7d8306fbefecefaad34c931.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Osobne kierowanie ruchu dla u\u017cytkownik\u00f3w mobilnych<\/h3>\n<p>\nNa zako\u0144czenie poka\u017cemy, jak wymusza\u0107 kierowanie ruchu u\u017cytkownik\u00f3w mobilnych do us\u0142ugi v2, a wszystkich innych do v1. W tym celu analizujemy warto\u015b\u0107 user-agent w nag\u0142\u00f3wku \u017c\u0105dania przy pomocy wyra\u017ce\u0144 regularnych:<\/p>\n<p><img decoding=\"async\" alt=\"Seria post\u00f3w dotycz\u0105cych Istio Service Mesh\" src=\"\/wp-content\/uploads\/2019\/12\/efab7f92a1bcfc7e23ae279de57c738e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Teraz twoja kolej<\/h3>\n<p>\nPrzyk\u0142ad z wyra\u017ceniami regularnymi do analizy nag\u0142\u00f3wk\u00f3w powinien zmotywowa\u0107 ci\u0119 do poszukiwania w\u0142asnych zastosowa\u0144 regu\u0142 kierowania Istio. Tym bardziej, \u017ce mo\u017cliwo\u015bci s\u0105 bardzo rozleg\u0142e, poniewa\u017c warto\u015bci nag\u0142\u00f3wk\u00f3w mo\u017cna formowa\u0107 w kodzie \u017ar\u00f3d\u0142owym aplikacji.<\/p>\n<h3>I pami\u0119taj, \u017ce Opr., a nie Dev<\/h3>\n<p>\nWszystko, co pokazali\u015bmy w powy\u017cszych przyk\u0142adach, odbywa si\u0119 bez jakichkolwiek zmian w kodzie \u017ar\u00f3d\u0142owym, poza przypadkami, gdy trzeba formowa\u0107 specjalne nag\u0142\u00f3wki \u017c\u0105da\u0144. Istio przyda si\u0119 zar\u00f3wno programistom, kt\u00f3rzy mog\u0105 go stosowa\u0107 na etapie testowania, jak i specjalistom od eksploatacji system\u00f3w IT, kt\u00f3rym znacznie pomo\u017ce w produkcji.<\/p>\n<p>Tak wi\u0119c powt\u00f3rzmy leitmotiv tej serii artyku\u0142\u00f3w: <b>nie musisz nic zmienia\u0107 w swoim kodzie<\/b>. Nie trzeba budowa\u0107 nowych obraz\u00f3w ani uruchamia\u0107 nowych kontener\u00f3w. Wszystko to realizowane jest poza kodem.<\/p>\n<h3>U\u017cyj wyobra\u017ani<\/h3>\n<p>\nWyobra\u017a sobie, jakie mo\u017cliwo\u015bci otwiera analiza nag\u0142\u00f3wk\u00f3w za pomoc\u0105 wyra\u017ce\u0144 regularnych. Chcesz skierowa\u0107 swojego najwi\u0119kszego klienta na specjaln\u0105 wersj\u0119 swojego <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/microservices\/\">mikroserwis\u00f3w<\/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>Spr\u00f3buj samodzielnie<\/h3>\n<p>\nCzytanie o Istio, Kubernetes i OpenShift to jedno, ale dlaczego nie spr\u00f3bowa\u0107 wszystkiego samemu? Zesp\u00f3\u0142 <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/\">Program dla Developer\u00f3w Red Hat<\/a><\/noindex> przygotowa\u0142 szczeg\u00f3\u0142owy przewodnik (w j\u0119zyku angielskim), kt\u00f3ry pomo\u017ce Ci jak najszybciej opanowa\u0107 te technologie. Przewodnik jest r\u00f3wnie\u017c w 100% open source, wi\u0119c jest dost\u0119pny publicznie. Plik dzia\u0142a na macOS, Linux i Windows, a kod \u017ar\u00f3d\u0142owy jest dost\u0119pny w wersjach na Java i node.js (wkr\u00f3tce b\u0119d\u0105 wersje w innych j\u0119zykach). Po prostu otw\u00f3rz w swojej przegl\u0105darce odpowiednie repozytorium git <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/redhat-developer-demos\/istio-tutorial\">Demonstracja Red Hat Developer<\/a><\/noindex>.<\/p>\n<h3>W nast\u0119pnym po\u015bcie: rozwi\u0105zujemy problemy w spos\u00f3b atrakcyjny<\/h3>\n<p>\nDzi\u015b zobaczy\u0142e\u015b, co potrafi\u0105 regu\u0142y routingu Istio. A teraz wyobra\u017a to sobie w kontek\u015bcie obs\u0142ugi b\u0142\u0119d\u00f3w. O tym w\u0142a\u015bnie opowiemy w nast\u0119pnym po\u015bcie.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <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.1.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\/pl\/blog\/administrirovanie\/seriya-postov-po-istio-service-mesh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\/pl\/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\udd47Seria post\u00f3w o Istio Service Mesh | ProHoster","description":"Rozpoczynamy seri\u0119 post\u00f3w, w kt\u00f3rych zaprezentujemy niekt\u00f3re z wielu mo\u017cliwo\u015bci siatki us\u0142ug Istio Service Mesh w po\u0142\u0105czeniu z Red Hat OpenShift i Kubernetes.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/seriya-postov-po-istio-service-mesh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/54208","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=54208"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/54208\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=54208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=54208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=54208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}