{"id":55700,"date":"2020-01-26T00:00:00","date_gmt":"2020-01-25T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti"},"modified":"2020-02-18T14:03:50","modified_gmt":"2020-02-18T11:03:50","slug":"trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti","title":{"rendered":"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Heisenberg\u016fv princip neur\u010ditosti \u0159\u00edk\u00e1, \u017ee nen\u00ed mo\u017en\u00e9 sou\u010dasn\u011b zm\u011b\u0159it polohu a rychlost objektu. Pokud se objekt pohybuje, nem\u00e1 \u017e\u00e1dnou polohu. A pokud existuje poloha, pak nem\u00e1 rychlost.<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/617ace5f892b62652b404b24585537b0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPokud jde o mikroservisy na platform\u011b Red Hat OpenShift (\u0159\u00edzen\u00e9 Kubernetes), d\u00edky odpov\u00eddaj\u00edc\u00edmu softwaru s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem mohou sou\u010dasn\u011b hl\u00e1sit jak svou v\u00fdkonnost, tak svou funk\u010dnost. Star\u00fd Heisenberg to samoz\u0159ejm\u011b nevyvrac\u00ed, ale odstra\u0148uje nejistotu p\u0159i pr\u00e1ci s cloudov\u00fdmi aplikacemi. Istio umo\u017e\u0148uje snadno organizovat sledov\u00e1n\u00ed a monitoring t\u011bchto aplikac\u00ed, aby bylo v\u0161e pod kontrolou.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Stanov\u00edme terminologii<\/h3>\n<p>\nPod <b>sledov\u00e1n\u00edm<\/b> (Sledov\u00e1n\u00ed) ch\u00e1peme jako protokolov\u00e1n\u00ed syst\u00e9mov\u00e9 aktivity. Zn\u00ed to docela obecn\u011b, ale ve skute\u010dnosti je jedn\u00edm z hlavn\u00edch pravidel zde shroma\u017e\u010fovat data sledov\u00e1n\u00ed do odpov\u00eddaj\u00edc\u00edho \u00falo\u017ei\u0161t\u011b, ani\u017e byste se starali o jejich form\u00e1tov\u00e1n\u00ed. Cel\u00e1 pr\u00e1ce na hled\u00e1n\u00ed a anal\u00fdze dat je pak na jejich u\u017eivateli. V Istio je pou\u017e\u00edv\u00e1n syst\u00e9m sledov\u00e1n\u00ed Jaeger, kter\u00fd realizuje model dat OpenTracing.<\/p>\n<p><b>Sledov\u00e1n\u00ed<\/b> (Sledov\u00e1n\u00ed, a slovo \"sledov\u00e1n\u00ed\" zde je pou\u017eito ve smyslu \"stopy\", jako nap\u0159\u00edklad v balistick\u00e9 expertize) budeme naz\u00fdvat data, kter\u00e1 kompletn\u011b popisuj\u00ed pr\u016fchod \u017e\u00e1dosti nebo jednotky pr\u00e1ce, jak se \u0159\u00edk\u00e1, \u201eod a do\u201c. Nap\u0159\u00edklad, v\u0161e, co se d\u011bje od okam\u017eiku, kdy u\u017eivatel stiskne tla\u010d\u00edtko na webov\u00e9 str\u00e1nce, a\u017e do n\u00e1vratu dat, v\u010detn\u011b v\u0161ech zapojen\u00fdch mikroservis\u016f. Lze \u0159\u00edci, \u017ee jedno sledov\u00e1n\u00ed kompletn\u011b popisuje (nebo modeluje) pr\u016fchod \u017e\u00e1dosti tam a zp\u011bt. V rozhran\u00ed Jaeger jsou sledov\u00e1n\u00ed rozlo\u017eena na slo\u017eky podle osy \u010dasu, podobn\u011b jako lze \u0159et\u011bzec rozlo\u017eit na jednotliv\u00e9 \u010dl\u00e1nky. Jen m\u00edsto \u010dl\u00e1nk\u016f se sledov\u00e1n\u00ed skl\u00e1d\u00e1 z takzvan\u00fdch span\u016f.<\/p>\n<p><b>Span<\/b> \u2013 to je interval od za\u010d\u00e1tku vykon\u00e1v\u00e1n\u00ed jednotky pr\u00e1ce do jej\u00edho dokon\u010den\u00ed. Pokra\u010duj\u00edc v analogii lze \u0159\u00edci, \u017ee ka\u017ed\u00fd span p\u0159edstavuje jednotliv\u00fd \u010dl\u00e1nek \u0159et\u011bzu. Span m\u016f\u017ee m\u00edt (nebo nemus\u00ed m\u00edt) jeden nebo v\u00edce pod\u0159\u00edzen\u00fdch span\u016f. Jak n\u00e1sledek, span nejvy\u0161\u0161\u00ed \u00farovn\u011b (root span) bude m\u00edt stejnou celkovou d\u00e9lku trv\u00e1n\u00ed, jakou m\u00e1 sledov\u00e1n\u00ed, ke kter\u00e9mu se vztahuje.<\/p>\n<p><b>Monitoring<\/b> \u2013 to je v podstat\u011b samo pozorov\u00e1n\u00ed va\u0161eho syst\u00e9mu \u2013 o\u010dima, prost\u0159ednictv\u00edm UI nebo automatizovan\u00fdch n\u00e1stroj\u016f. Z\u00e1kladem monitoringu jsou trace data. V Istio je monitoring implementov\u00e1n pomoc\u00ed Promethea a m\u00e1 odpov\u00eddaj\u00edc\u00ed UI. Prometheus podporuje automatick\u00e9 monitorov\u00e1n\u00ed pomoc\u00ed upozorn\u011bn\u00ed Alerts a Alert Managers.<\/p>\n<h3>Zanech\u00e1v\u00e1me zna\u010dky<\/h3>\n<p>\nAby byla trace dostupn\u00e1, mus\u00ed aplikace vytvo\u0159it sb\u00edrku span\u016f. Tyto span mus\u00ed b\u00fdt exportov\u00e1ny do Jaegeru, aby vytvo\u0159il vizu\u00e1ln\u00ed zobrazen\u00ed trace. Mezi jin\u00fdmi tyto spany ozna\u010duj\u00ed n\u00e1zev operace, stejn\u011b jako \u010dasov\u00e9 zna\u010dky jej\u00edho za\u010d\u00e1tku a konce. P\u0159enos span\u016f se prov\u00e1d\u00ed p\u0159esm\u011brov\u00e1n\u00edm HTTP hlavi\u010dek sm\u011b\u0159uj\u00edc\u00edch k Jaegeru z p\u0159\u00edchoz\u00edch po\u017eadavk\u016f na odchoz\u00ed po\u017eadavky. V z\u00e1vislosti na pou\u017e\u00edvan\u00e9m programovac\u00edm jazyce m\u016f\u017ee b\u00fdt pot\u0159eba drobn\u00e1 \u00faprava zdrojov\u00e9ho k\u00f3du aplikac\u00ed. N\u00ed\u017ee je p\u0159\u00edklad k\u00f3du v Jav\u011b (p\u0159i pou\u017eit\u00ed r\u00e1mce Spring Boot), kter\u00fd p\u0159id\u00e1v\u00e1 B3 (Zipkin-style) hlavi\u010dky k va\u0161emu po\u017eadavku v konfigura\u010dn\u00ed t\u0159\u00edd\u011b Spring:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/2314e2d156dc9b9fdb299af2dac01f66.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nP\u0159itom se pou\u017e\u00edvaj\u00ed n\u00e1sleduj\u00edc\u00ed nastaven\u00ed hlavi\u010dek:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/18f0a13af27665ec2d154ff4cff48157.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nPokud pou\u017e\u00edv\u00e1te Javu, nemus\u00edte k\u00f3d m\u011bnit, sta\u010d\u00ed p\u0159idat n\u011bkolik \u0159\u00e1dk\u016f do POM souboru Maven a nastavit environment\u00e1ln\u00ed prom\u011bnn\u00e9. Zde jsou \u0159\u00e1dky, kter\u00e9 je t\u0159eba p\u0159idat do souboru POM.XML, aby se implementoval Jaeger Tracer Resolver:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/a63a634c2c22fc09a237cafc4873855d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA odpov\u00eddaj\u00edc\u00ed environment\u00e1ln\u00ed prom\u011bnn\u00e9 jsou nastaveny v Dockerfile:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/7fe9046242d7e628342a6266e4a2f743.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nTo je v\u0161e, nyn\u00ed je v\u0161e nastaveno a na\u0161e mikro slu\u017eby za\u010dnou generovat trace data.<\/p>\n<h3>Obecn\u011b se d\u00edv\u00e1me<\/h3>\n<p>\nSou\u010d\u00e1st\u00ed Istio je jednoduch\u00fd \u0159\u00eddic\u00ed panel zalo\u017een\u00fd na Grafan\u011b. Kdy\u017e je v\u0161echno nastaveno a funguje na platform\u011b Red Hat OpenShift PaaS (v na\u0161em p\u0159\u00edkladu je Red Hat OpenShift a Kubernetes nasazen na minishift), tento panel se spou\u0161t\u00ed n\u00e1sleduj\u00edc\u00edm p\u0159\u00edkazem:<\/p>\n<pre><code class=\"plaintext\">otev\u0159ete \"$(minishift openshift service grafana -u)\/d\/1\/istio-dashboard?refresh=5&amp;ord;Id=1\"\n<\/code><\/pre>\n<p>\nPanel Grafana umo\u017e\u0148uje rychlou evaluaci v\u00fdkonu syst\u00e9mu. Fragment tohoto panelu je zobrazen na obr\u00e1zku n\u00ed\u017ee:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/2c10cd23fd5166f437c2b3c1d50c6a18.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nZde je vid\u011bt, \u017ee mikroslu\u017eba customer vol\u00e1 mikroslu\u017ebu preference v1, kter\u00e1 zase vol\u00e1 mikroslu\u017eby recommendation v1 a v2. Na panelu Grafana je blok Dashboard Row pro vysoce\u00farov\u0148ov\u00e9 metriky, jako je celkov\u00fd objem po\u017eadavk\u016f (Global Request Volume), pod\u00edl \u00fasp\u011b\u0161n\u00fdch po\u017eadavk\u016f (success rates) a chyby 4xx. Krom\u011b toho je zde zobrazen\u00ed Server Mesh s grafy pro ka\u017edou slu\u017ebu a blok Services Row pro zobrazen\u00ed podrobn\u00fdch informac\u00ed o ka\u017ed\u00e9m kontejneru pro ka\u017edou slu\u017ebu.<\/p>\n<h3>Te\u010f se pod\u00edv\u00e1me hloub\u011bji.<\/h3>\n<p>\nP\u0159i spr\u00e1vn\u011b nastaven\u00e9m trasov\u00e1n\u00ed Istio, co\u017e se d\u00e1 \u0159\u00edci, umo\u017e\u0148uje analyzovat v\u00fdkon syst\u00e9mu t\u00e9m\u011b\u0159 okam\u017eit\u011b. V u\u017eivatelsk\u00e9m rozhran\u00ed Jaeger lze prohl\u00ed\u017eet trasov\u00e1n\u00ed a vid\u011bt, jak daleko a hluboko sahaj\u00ed, a tak\u00e9 vizu\u00e1ln\u011b lokalizovat \u00fazk\u00e1 m\u00edsta v v\u00fdkonu. P\u0159i pou\u017eit\u00ed Red Hat OpenShift na platform\u011b minishift se Jaeger UI spust\u00ed n\u00e1sleduj\u00edc\u00edm p\u0159\u00edkazem:<\/p>\n<pre><code class=\"plaintext\">minishift openshift service jaeger-query --in-browser\n<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/074fea646ad191f819a9a67a3f311c8f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nCo lze \u0159\u00edci o trasov\u00e1n\u00ed na tomto sn\u00edmku:<\/p>\n<ul>\n<li>Rozd\u011bl\u00ed se do 7 span\u016f.<\/li>\n<li>Celkov\u00fd \u010das prov\u00e1d\u011bn\u00ed je 6,99 ms.<\/li>\n<li>Mikroslu\u017eba recommendation, kter\u00e1 je posledn\u00ed v \u0159et\u011bzci, zabere 0,69 ms.<\/li>\n<\/ul>\n<p>\nDiagramy tohoto typu umo\u017e\u0148uj\u00ed rychle porozum\u011bt situaci, kdy v\u00fdkon cel\u00e9ho syst\u00e9mu trp\u00ed kv\u016fli jednomu m\u00e9n\u011b v\u00fdkonn\u00e9mu servisu.<\/p>\n<p>A te\u010f zkomplikujeme \u00fakol a spust\u00edme dva instance mikroslu\u017eby recommendation:v2 p\u0159\u00edkazem oc scale --replicas=2 deployment\/recommendation-v2. Tady jsou pod\u2019y, kter\u00e9 po tom budeme m\u00edt:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/0ecb8d78d6967d0392de67be6553b870.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nPokud se te\u010f vr\u00e1t\u00edme zp\u011bt do Jaeger a rozbal\u00edme span pro slu\u017ebu recommendation, uvid\u00edme, na kter\u00fd pod jsou sm\u011brov\u00e1ny po\u017eadavky. Takto m\u016f\u017eeme snadno lokalizovat zpomalen\u00ed na \u00farovni konkr\u00e9tn\u00edho podu. Je dobr\u00e9 se d\u00edvat na pole node_id:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/474da66c581692cd11070a1732ac5458.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Kam a jak v\u0161echno chod\u00ed<\/h3>\n<p>\nNyn\u00ed p\u0159ech\u00e1z\u00edme do u\u017eivatelsk\u00e9ho rozhran\u00ed Prometheus a o\u010dek\u00e1van\u011b vid\u00edme, \u017ee po\u017eadavky mezi druhou a prvn\u00ed verz\u00ed slu\u017eby recommendation se d\u011bl\u00ed v pom\u011bru 2:1, p\u0159esn\u011b podle po\u010dtu b\u011b\u017e\u00edc\u00edch pod\u016f. Tento graf se nav\u00edc dynamicky zm\u011bn\u00ed p\u0159i \u0161k\u00e1lov\u00e1n\u00ed pod\u016f nahoru a dol\u016f, co\u017e bude obzvl\u00e1\u0161\u0165 u\u017eite\u010dn\u00e9 p\u0159i Canary Deployment (tuto sch\u00e9ma nasazen\u00ed podrobn\u011b probereme p\u0159\u00ed\u0161t\u011b).<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/c080fffd2398b0a2eac3e63665bdb0a7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>V\u0161echno teprve za\u010d\u00edn\u00e1<\/h3>\n<p>\nVe skute\u010dnosti jsme dnes jen lehce p\u0159ehodnotili poklad informac\u00ed o Jaeger, Grafana a Prometheus. To bylo vlastn\u011b na\u0161\u00edm c\u00edlem \u2013 nasm\u011brovat v\u00e1s spr\u00e1vn\u00fdm sm\u011brem a odhalit perspektivy Istio.<\/p>\n<p>A pamatujte, to v\u0161e je ji\u017e integrov\u00e1no v Istio. P\u0159i pou\u017eit\u00ed n\u011bkter\u00fdch programovac\u00edch jazyk\u016f (nap\u0159\u00edklad Java) a framework\u016f (nap\u0159\u00edklad Spring Boot) to v\u0161e lze realizovat, ani\u017e byste se dotkli samotn\u00e9ho k\u00f3du aplikac\u00ed. Ano, k\u00f3d bude nutn\u00e9 m\u00edrn\u011b upravit, pokud pou\u017e\u00edv\u00e1te jin\u00e9 jazyky, p\u0159i\u010dem\u017e na prvn\u00edm m\u00edst\u011b stoj\u00ed Node.js nebo C#. Ale proto\u017ee sledovatelnost (\u010dt\u011bte \u201etrasov\u00e1n\u00ed\u201c) je jednou z povinn\u00fdch podm\u00ednek pro vytv\u00e1\u0159en\u00ed spolehliv\u00fdch cloudov\u00fdch syst\u00e9m\u016f, budete v ka\u017ed\u00e9m p\u0159\u00edpad\u011b muset k\u00f3d upravit, a\u0165 u\u017e m\u00e1te Istio, nebo ne. Tak pro\u010d nespot\u0159ebovat sv\u00e9 \u00fasil\u00ed efektivn\u011bji?<\/p>\n<p>Minim\u00e1ln\u011b pro to, abyste mohli v\u017edy s 100% jistotou odpov\u011bd\u011bt na ot\u00e1zky \u201ekde?\u201c a \u201ejak rychle?\".<\/p>\n<h3>Chaos in\u017een\u00fdrstv\u00ed v Istio: tak to bylo zam\u00fd\u0161leno<\/h3>\n<p><\/p>\n<h3>Schopnost rozb\u00edjet v\u011bci pom\u00e1h\u00e1 zajistit, aby se nerozbily.<\/h3>\n<p>\nTestov\u00e1n\u00ed softwaru je nejen slo\u017eit\u00e9, ale tak\u00e9 d\u016fle\u017eit\u00e9. Zat\u00edmco testov\u00e1n\u00ed na spr\u00e1vnost (nap\u0159\u00edklad zda funkce vrac\u00ed spr\u00e1vn\u00fd v\u00fdsledek) je jedna v\u011bc, testov\u00e1n\u00ed v podm\u00ednk\u00e1ch nespolehliv\u00e9 s\u00edt\u011b je zcela jin\u00fd \u00fakol (\u010dasto se p\u0159edpokl\u00e1d\u00e1, \u017ee s\u00ed\u0165 v\u017edy funguje bez z\u00e1vad, a to je prvn\u00ed z osmi myln\u00fdch p\u0159edstav o distribuovan\u00fdch v\u00fdpo\u010dtech). Jednou z komplikac\u00ed p\u0159i \u0159e\u0161en\u00ed tohoto \u00fakolu je, jak simulovat selh\u00e1n\u00ed v syst\u00e9mu nebo je z\u00e1m\u011brn\u011b zp\u016fsobovat prov\u00e1d\u011bn\u00edm tzv. fault injection. To lze prov\u00e9st prost\u0159ednictv\u00edm modifikace zdrojov\u00e9ho k\u00f3du samotn\u00e9 aplikace. Ale pak nebudete testovat sv\u016fj p\u016fvodn\u00ed k\u00f3d, ale jeho verzi, kter\u00e1 speci\u00e1ln\u011b simuluje selh\u00e1n\u00ed. V\u00fdsledkem je, \u017ee riskujete spadnout do smrt\u00edc\u00ed n\u00e1ru\u010de fault injection a narazit na gejzebag \u2013 selh\u00e1n\u00ed, kter\u00e9 zmiz\u00ed p\u0159i pokusu o jejich odhalen\u00ed.<\/p>\n<p>A nyn\u00ed uk\u00e1\u017eeme, jak Istio pom\u00e1h\u00e1 zvl\u00e1dat tyto slo\u017eitosti raz dva.<\/p>\n<h3>Jak v\u0161echno vypad\u00e1, kdy\u017e je v\u0161echno v po\u0159\u00e1dku.<\/h3>\n<p>\nZva\u017eme n\u00e1sleduj\u00edc\u00ed sc\u00e9n\u00e1\u0159: m\u00e1me dva pod\u2018\u00e1 pro na\u0161i mikroservis recommendation, kter\u00fd jsme vzali z u\u010debnice Istio. Jeden pod je ozna\u010den jako v1 a druh\u00fd jako v2. Jak vid\u00edme, zat\u00edm v\u0161echno funguje skv\u011ble:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/c50387b7cfd12298cfab8123f13b2ca4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(Mimochodem, \u010d\u00edslo vpravo je jen \u010d\u00edta\u010d pro ka\u017ed\u00fd pod.)<\/p>\n<p>Ale p\u0159ece to nen\u00ed to, co pot\u0159ebujeme, \u017ee? Tak\u017ee to zkus\u00edme v\u0161echno poru\u0161it, ani\u017e bychom se dotkli p\u016fvodn\u00edho k\u00f3du.<\/p>\n<h3>Zp\u016fsobujeme v\u00fdpadky mikroservisu<\/h3>\n<p>\nN\u00ed\u017ee je uveden yaml soubor pro pravidlo sm\u011brov\u00e1n\u00ed Istio, kter\u00e9 v polovin\u011b p\u0159\u00edpad\u016f zp\u016fsob\u00ed chybu (chybu <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/cs\/server\/dts-los-angeles\/\"   title=\"serveru\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3597\">serveru<\/a> 503):<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/8fb3ed7f16ed7fd1a57b27dfc3bfd2da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nV\u0161imn\u011bte si, \u017ee jasn\u011b uv\u00e1d\u00edme, \u017ee v polovin\u011b p\u0159\u00edpad\u016f by m\u011bla b\u00fdt vr\u00e1cena chyba 503.<\/p>\n<p>Takto bude vypadat sn\u00edmek obrazovky b\u011b\u017e\u00edc\u00edho p\u0159\u00edkazu curl v cyklu pot\u00e9, co aktivujeme toto pravidlo, abychom simulovali v\u00fdpadky. Jak vid\u00edme, polovina po\u017eadavk\u016f vrac\u00ed chybu 503, a to bez ohledu na to, na kter\u00fd pod \u2013 v1 nebo v2 \u2013 jsou odesl\u00e1ny:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/3d9760cf5abc7480ad3aab826c274766.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nPro obnoven\u00ed norm\u00e1ln\u00edho provozu sta\u010d\u00ed odstranit toto pravidlo, v na\u0161em p\u0159\u00edpad\u011b p\u0159\u00edkazem istioctl delete routerule recommendation-503 -n tutorial. Zde Tutorial je n\u00e1zev projektu Red Hat OpenShift, ve kter\u00e9m b\u011b\u017e\u00ed n\u00e1\u0161 v\u00fdukov\u00fd program o Istio.<\/p>\n<h3>Vytv\u00e1\u0159\u00edme um\u011bl\u00e9 zpo\u017ed\u011bn\u00ed<\/h3>\n<p>\nUm\u011bl\u00e9 chyby 503 pom\u00e1haj\u00ed otestovat syst\u00e9m na odolnost v\u016f\u010di selh\u00e1n\u00ed, ale schopnost p\u0159edpov\u00eddat a zpracov\u00e1vat zpo\u017ed\u011bn\u00ed by v\u00e1s m\u011bla ohromit je\u0161t\u011b v\u00edce. A zpo\u017ed\u011bn\u00ed v re\u00e1ln\u00e9m \u017eivot\u011b se vyskytuj\u00ed \u010dast\u011bji ne\u017e selh\u00e1n\u00ed. Pomalu b\u011b\u017e\u00edc\u00ed mikroservis je rakovina, kter\u00e1 tr\u00e1p\u00ed cel\u00fd syst\u00e9m. S pomoc\u00ed Istio m\u016f\u017eeme otestovat k\u00f3d, kter\u00fd se t\u00fdk\u00e1 zpracov\u00e1n\u00ed zpo\u017ed\u011bn\u00ed, ani\u017e bychom ho p\u0159i tom m\u011bnili. Nejd\u0159\u00edve uk\u00e1\u017eeme, jak to ud\u011blat v p\u0159\u00edpad\u011b um\u011ble zaveden\u00fdch s\u00ed\u0165ov\u00fdch zpo\u017ed\u011bn\u00ed.<\/p>\n<p>V\u0161imn\u011bte si, \u017ee po takov\u00e9m testov\u00e1n\u00ed bude mo\u017en\u00e1 pot\u0159eba (nebo chcete) upravit sv\u016fj k\u00f3d. Dobrou zpr\u00e1vou je, \u017ee v tomto p\u0159\u00edpad\u011b budete jednat proaktivn\u011b, nikoli reaktivn\u011b. Takto by m\u011blo b\u00fdt postaveno v\u00fdvojov\u00e9 cyklu: k\u00f3dov\u00e1n\u00ed-testov\u00e1n\u00ed-zp\u011btn\u00e1 vazba-k\u00f3dov\u00e1n\u00ed-testov\u00e1n\u00ed\u2026<\/p>\n<p>Takto vypad\u00e1 pravidlo, kter\u00e9\u2026 I kdy\u017e v\u00edte co? Istio je tak jednoduch\u00e9, a tento yaml soubor je tak srozumiteln\u00fd, \u017ee v\u0161e v tomto p\u0159\u00edkladu mluv\u00ed samo za sebe, pod\u00edvejte se:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/e077e891cbccc66ebc4d4c7b67a0f1ec.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nV polovin\u011b p\u0159\u00edpad\u016f dojde k 7sekundov\u00e9mu zpo\u017ed\u011bn\u00ed. A to rozhodn\u011b nen\u00ed tot\u00e9\u017e, jako bychom do zdrojov\u00e9ho k\u00f3du vlo\u017eili p\u0159\u00edkaz sleep, proto\u017ee Istio skute\u010dn\u011b zpo\u017e\u010fuje po\u017eadavek o 7 sekund. Vzhledem k tomu, \u017ee Istio podporuje trasov\u00e1n\u00ed Jaeger, je toto zpo\u017ed\u011bn\u00ed jasn\u011b viditeln\u00e9 v u\u017eivatelsk\u00e9m rozhran\u00ed Jaeger, jak je zn\u00e1zorn\u011bno na obr\u00e1zku n\u00ed\u017ee. V\u0161imn\u011bte si dlouh\u00e9ho po\u017eadavku v prav\u00e9m horn\u00edm rohu diagramu \u2013 jeho doba trv\u00e1n\u00ed je 7,02 sekundy:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/97a7b33fb7e0455973c7fd1b2aefadf3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nTento sc\u00e9n\u00e1\u0159 umo\u017e\u0148uje otestovat k\u00f3d za podm\u00ednek s\u00ed\u0165ov\u00fdch zpo\u017ed\u011bn\u00ed. A je jasn\u00e9, \u017ee odstran\u011bn\u00edm tohoto pravidla odstran\u00edme um\u011bl\u00e9 zpo\u017ed\u011bn\u00ed. Opakujeme, ale op\u011bt jsme to ud\u011blali, ani\u017e bychom se dotkli zdrojov\u00e9ho k\u00f3du.<\/p>\n<h3>Nevzd\u00e1vat se a nezapom\u00ednat<\/h3>\n<p>\nDal\u0161\u00ed u\u017eite\u010dn\u00e1 funkce Istio pro chaos engineering je opakovan\u00e9 vol\u00e1n\u00ed slu\u017eby zadan\u00fd po\u010detkr\u00e1t. Smyslem je neodpustit se, kdy\u017e prvn\u00ed po\u017eadavek skon\u010d\u00ed chybou 503 \u2013 a mo\u017en\u00e1 n\u00e1m to kone\u010dn\u011b vyjde na N-t\u00fd pokus. Mo\u017en\u00e1 se slu\u017eba na chv\u00edli jen odml\u010dela z r\u016fzn\u00fdch d\u016fvod\u016f. Ano, tuto p\u0159\u00ed\u010dinu bychom m\u011bli prozkoumat a odstranit. Ale to a\u017e pozd\u011bji, zat\u00edm se pokus\u00edme, aby syst\u00e9m nad\u00e1le fungoval.<\/p>\n<p>Tak\u017ee chceme, aby slu\u017eba ob\u010das vracela chybu 503, a Istio se pak pokusilo znovu se s n\u00ed spojit. A tady zjevn\u011b pot\u0159ebujeme zp\u016fsob, jak generovat chybu 503, ani\u017e bychom se dotkli samotn\u00e9ho k\u00f3du\u2026<\/p>\n<p>Pozor, po\u010dkejte! To jsme pr\u00e1v\u011b d\u011blali.<\/p>\n<p>Tento soubor zp\u016fsob\u00ed, \u017ee slu\u017eba recommendation-v2 bude v polovin\u011b p\u0159\u00edpad\u016f vracet chybu 503:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/f446528f9c968e40cc2cf318cf0acde9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nJe jasn\u00e9, \u017ee \u010d\u00e1st po\u017eadavk\u016f nebude \u00fasp\u011b\u0161n\u00e1:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/f998513746604beda241b8d6de2ed727.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA te\u010f zapoj\u00edme funkci Retry v Istio:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/32e210b6ecbf4c1ecf121ee73e64ba35.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nToto pravidlo sm\u011brov\u00e1n\u00ed provede t\u0159i pokusy s dvousekundov\u00fdm intervalem a m\u011blo by sn\u00ed\u017eit (a ide\u00e1ln\u011b \u00fapln\u011b odstranit) chyby 503:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/7f9711c52949072b823399e59141cb64.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nShrnujeme: dos\u00e1hli jsme toho, \u017ee Istio, za prv\u00e9, generuje chybu 503 pro polovinu po\u017eadavk\u016f. A za druh\u00e9, stejn\u00e9 Istio prov\u00e1d\u00ed t\u0159i pokusy znovu se spojit se slu\u017ebou p\u0159i chyb\u011b 503. V d\u016fsledku toho v\u0161e funguje prost\u011b skv\u011ble. Tak\u017ee pou\u017eit\u00edm funkce Retry jsme splnili sv\u016fj slib nezavdat.<\/p>\n<p>A ano, op\u011bt jsme to ud\u011blali, ani\u017e bychom se dotkli k\u00f3du. V\u0161e, co jsme pot\u0159ebovali, byly dv\u011b pravidla sm\u011brov\u00e1n\u00ed v Istio:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/c21a1cfd2d78ae4145a57d1cefcc6c59.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Jak nezklamat u\u017eivatele nebo sedm jednoho ne\u010dek\u00e1<\/h3>\n<p>\nA nyn\u00ed situaci p\u0159evr\u00e1t\u00edme naruby a pod\u00edv\u00e1me se na sc\u00e9n\u00e1\u0159, kdy se nevyplat\u00ed ustupovat a vzd\u00e1vat to pouze po ur\u010ditou pevn\u011b stanovenou dobu. Pot\u00e9 je t\u0159eba prost\u011b p\u0159estat se sna\u017eit zpracovat po\u017eadavek, abychom nutili v\u0161echny \u010dekat na n\u011bjakou jednu zpomaluj\u00edc\u00ed slu\u017ebu. Jin\u00fdmi slovy, nebudeme chr\u00e1nit ztracenou pozici, ale ustoup\u00edme na z\u00e1lo\u017en\u00ed pozici, abychom nezklamali u\u017eivatele webu a nenutili ho trp\u011bt v nev\u011bdomosti.<\/p>\n<p>V Istio lze nastavit \u010dasov\u00fd limit pro proveden\u00ed po\u017eadavku. Pokud slu\u017eba tento \u010dasov\u00fd limit p\u0159ekro\u010d\u00ed, vr\u00e1t\u00ed se chyba 504 (Gateway Timeout) \u2013 to v\u0161e se op\u011bt nastavuje prost\u0159ednictv\u00edm konfigurace Istio. Budeme v\u0161ak muset do zdrojov\u00e9ho k\u00f3du slu\u017eby p\u0159idat p\u0159\u00edkaz sleep (a pot\u00e9, samoz\u0159ejm\u011b, prov\u00e9st rebuild a redeploy), abychom napodobili pomalou pr\u00e1ci slu\u017eby. Bohu\u017eel, jinak to nep\u016fjde.<\/p>\n<p>Tak\u017ee jsme do k\u00f3du slu\u017eby recommendation v2 vlo\u017eili t\u0159\u00edsekundov\u00fd sleep, znovu zkompilovali odpov\u00eddaj\u00edc\u00ed obraz a provedli redeploy kontejneru, a nyn\u00ed p\u0159id\u00e1me \u010dasov\u00fd limit pomoc\u00ed n\u00e1sleduj\u00edc\u00edho pravidla sm\u011brov\u00e1n\u00ed Istio:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/c03fc452b98dd875a8a7d3ac561893ca.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nNa obr\u00e1zku v\u00fd\u0161e je vid\u011bt, \u017ee se pokou\u0161\u00edme kontaktovat slu\u017ebu recommendation, pokud nedostaneme odpov\u011b\u010f b\u011bhem jedn\u00e9 sekundy, tedy je\u0161t\u011b p\u0159edt\u00edm, ne\u017e dojde k chyb\u011b 504. Po aplikaci tohoto pravidla sm\u011brov\u00e1n\u00ed (a p\u0159id\u00e1n\u00ed t\u0159\u00edsekundov\u00e9ho sleepu do k\u00f3du slu\u017eby recommendation:v2) dostaneme toto:<\/p>\n<p><img decoding=\"async\" alt=\"Sledov\u00e1n\u00ed a monitorov\u00e1n\u00ed v Istio: mikroservisy a princip neur\u010ditosti\" src=\"\/wp-content\/uploads\/2020\/01\/ed6e80052c67254718b1fde2bd873e71.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nOp\u011bt se opakujeme, ale \u010dasov\u00fd limit lze nastavit, ani\u017e bychom se dotkli zdrojov\u00e9ho k\u00f3du. Dal\u0161\u00ed v\u00fdhodou je, \u017ee nyn\u00ed m\u016f\u017eete sv\u016fj k\u00f3d upravit tak, aby reagoval na \u010dasov\u00fd limit, a snadno otestovat tyto \u00fapravy pomoc\u00ed Istio.<\/p>\n<h3>A nyn\u00ed v\u0161echno dohromady<\/h3>\n<p>\nVn\u00e9st trochu chaosu pomoc\u00ed Istio je skv\u011bl\u00fd zp\u016fsob, jak otestovat sv\u016fj k\u00f3d a spolehlivost cel\u00e9ho syst\u00e9mu. \u0160ablony fallback, bulkhead a circuit breaker, mechanismy pro vytv\u00e1\u0159en\u00ed um\u011bl\u00fdch selh\u00e1n\u00ed a zpo\u017ed\u011bn\u00ed, stejn\u011b jako opakovan\u00e9 v\u00fdskyty a \u010dasov\u00e9 limity budou velmi u\u017eite\u010dn\u00e9 p\u0159i vytv\u00e1\u0159en\u00ed odoln\u00fdch cloudov\u00fdch syst\u00e9m\u016f. V kombinaci s Kubernetes a Red Hat OpenShift v\u00e1m tyto n\u00e1stroje pomohou se sebev\u011bdom\u011b postavit p\u0159ed budoucnost.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/redhatrussia\/blog\/485136\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0413\u0435\u0439\u0437\u0435\u043d\u0431\u0435\u0440\u0433\u0430 \u0433\u043b\u0430\u0441\u0438\u0442, \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u0435\u0433\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u0432\u0438\u0436\u0435\u0442\u0441\u044f, \u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0410 \u0435\u0441\u043b\u0438 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0435\u0441\u0442\u044c \u2013 \u0437\u043d\u0430\u0447\u0438\u0442 \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438. \u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Red Hat OpenShift (\u0438 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Kubernetes), \u0442\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u0441\u043e\u0444\u0442\u0443 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0440\u0430\u043f\u043e\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a [&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-55700","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0413\u0435\u0439\u0437\u0435\u043d\u0431\u0435\u0440\u0433\u0430 \u0433\u043b\u0430\u0441\u0438\u0442, \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u0435\u0433\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u0432\u0438\u0436\u0435\u0442\u0441\u044f, \u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f.\" \/>\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\/cs\/blog\/administrirovanie\/trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\u0422\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0432 Istio: \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0413\u0435\u0439\u0437\u0435\u043d\u0431\u0435\u0440\u0433\u0430 \u0433\u043b\u0430\u0441\u0438\u0442, \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u0435\u0433\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u0432\u0438\u0436\u0435\u0442\u0441\u044f, \u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti\" \/>\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=\"2020-01-25T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:50+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\udd47Sledov\u00e1n\u00ed a monitoring v Istio: mikroservisy a princip neur\u010ditosti | ProHoster","description":"Heisenberg\u016fv princip neur\u010ditosti \u0159\u00edk\u00e1, \u017ee nen\u00ed mo\u017en\u00e9 sou\u010dasn\u011b m\u011b\u0159it polohu objektu a jeho rychlost. Pokud se objekt pohybuje, nem\u00e1 \u017e\u00e1dnou polohu.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\u0422\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0432 Istio: \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 | ProHoster","og:description":"\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0413\u0435\u0439\u0437\u0435\u043d\u0431\u0435\u0440\u0433\u0430 \u0433\u043b\u0430\u0441\u0438\u0442, \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u0435\u0433\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u0432\u0438\u0436\u0435\u0442\u0441\u044f, \u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti","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":"2020-01-25T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:50+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55700","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:38:32","updated":"2026-02-22 15:29:16","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/55700","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=55700"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/55700\/revisions"}],"predecessor-version":[{"id":162124,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/55700\/revisions\/162124"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=55700"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=55700"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=55700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}