{"id":32777,"date":"2019-10-31T21:48:52","date_gmt":"2019-10-31T18:48:52","guid":{"rendered":"https:\/\/prohoster.info\/blog\/netramesh-legkovesnoe-service-mesh-reshenie\/"},"modified":"2019-10-31T21:48:52","modified_gmt":"2019-10-31T18:48:52","slug":"netramesh-legkovesnoe-service-mesh-reshenie","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/netramesh-legkovesnoe-service-mesh-reshenie","title":{"rendered":"A Netramesh egy k\u00f6nny\u0171 service mesh megold\u00e1s","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A monolitikus alkalmaz\u00e1sr\u00f3l a mikroszolg\u00e1ltat\u00e1s-architekt\u00far\u00e1ra val\u00f3 \u00e1tt\u00e9r\u00e9s sor\u00e1n \u00faj probl\u00e9m\u00e1kkal tal\u00e1lkozunk.<\/p>\n<p><\/p>\n<p>Monolitikus alkalmaz\u00e1s eset\u00e9n \u00e1ltal\u00e1ban elegend\u0151 csak meghat\u00e1rozni, hogy a rendszer mely r\u00e9sz\u00e9n t\u00f6rt\u00e9nt a hiba. Val\u00f3sz\u00edn\u0171leg a probl\u00e9ma a monolit k\u00f3dj\u00e1ban vagy az adatb\u00e1zisban keresend\u0151. De amikor a mikroszolg\u00e1ltat\u00e1s-architekt\u00far\u00e1ban pr\u00f3b\u00e1ljuk megtal\u00e1lni a probl\u00e9m\u00e1t, ez m\u00e1r nem olyan nyilv\u00e1nval\u00f3. Meg kell tal\u00e1lni az utat, amelyen a k\u00e9r\u00e9s az elej\u00e9t\u0151l a v\u00e9g\u00e9ig haladt, \u00e9s ki kell emelni a sz\u00e1zak k\u00f6z\u00f6tt, amelyek mikroszolg\u00e1ltat\u00e1sok. R\u00e1ad\u00e1sul soknak saj\u00e1t t\u00e1rol\u00f3ja van, ahol logikai hib\u00e1k, teljes\u00edtm\u00e9ny- \u00e9s megb\u00edzhat\u00f3s\u00e1gi probl\u00e9m\u00e1k is felmer\u00fclhetnek.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A Netramesh egy k\u00f6nny\u0171 service mesh megold\u00e1s\" src=\"\/wp-content\/uploads\/2019\/04\/f583f3d8d4a2239411628aa8f4d06041.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hossz\u00fa ideig kerestem egy eszk\u00f6zt, amely seg\u00edtene megoldani az ilyen probl\u00e9m\u00e1kat (err\u0151l a Habr-on \u00edrtam: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/avito\/blog\/419319\/\">1<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/avito\/blog\/433650\/\">2<\/a><\/noindex>), de v\u00e9g\u00fcl saj\u00e1t ny\u00edlt forr\u00e1sk\u00f3d\u00fa megold\u00e1st k\u00e9sz\u00edtettem. A cikkben a service mesh megk\u00f6zel\u00edt\u00e9s el\u0151nyeir\u0151l \u00edrok, \u00e9s megosztom az \u00faj eszk\u00f6z\u00f6met ennek megval\u00f3s\u00edt\u00e1s\u00e1hoz. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>A disztribu\u00e1lt tracing elterjedt megold\u00e1s a hib\u00e1k keres\u00e9s\u00e9re elosztott rendszerekben. De mi van akkor, ha a rendszerben m\u00e9g nem ker\u00fclt bevezet\u00e9sre egy ilyen megk\u00f6zel\u00edt\u00e9s a h\u00e1l\u00f3zati interakci\u00f3k inform\u00e1ci\u00f3gy\u0171jt\u00e9s\u00e9ben, vagy, ami m\u00e9g rosszabb, a rendszer egy r\u00e9sz\u00e9n m\u00e1r j\u00f3l m\u0171k\u00f6dik, m\u00edg a m\u00e1sik r\u00e9sz\u00e9n nem, mert a r\u00e9gi szolg\u00e1ltat\u00e1sokhoz nem adt\u00e1k hozz\u00e1? A probl\u00e9ma pontos gy\u00f6ker\u00e9nek meghat\u00e1roz\u00e1s\u00e1hoz teljes k\u00e9pre van sz\u00fcks\u00e9g arr\u00f3l, hogy mi t\u00f6rt\u00e9nik a rendszerben. K\u00fcl\u00f6n\u00f6sen fontos meg\u00e9rteni, hogy mely mikroszolg\u00e1ltat\u00e1sok j\u00e1tszanak szerepet az alapvet\u0151en \u00fczletkritikus folyamatokban.<\/p>\n<p><\/p>\n<p>Itt seg\u00edthet nek\u00fcnk a service mesh megk\u00f6zel\u00edt\u00e9s, amely a szolg\u00e1ltat\u00e1sok szintj\u00e9n alacsonyabb szinten kezeli a h\u00e1l\u00f3zati inform\u00e1ci\u00f3k gy\u0171jt\u00e9s\u00e9t. Ez a megk\u00f6zel\u00edt\u00e9s lehet\u0151v\u00e9 teszi sz\u00e1munkra, hogy elfogjuk az \u00f6sszes forgalmat \u00e9s val\u00f3s id\u0151ben elemezz\u00fck azt. R\u00e1ad\u00e1sul az alkalmaz\u00e1soknak nem is kell tudniuk r\u00f3la.<\/p>\n<p><\/p>\n<h1 id=\"service-mesh-podhod\">Service mesh megk\u00f6zel\u00edt\u00e9s<\/h1>\n<p><\/p>\n<p>A service mesh approach's main idea is to add another infrastructure layer over the network, allowing us to manage all aspects of inter-service communication. Most implementations work as follows: an additional sidecar container with a transparent proxy is added to each microservice, through which all incoming and outgoing traffic of the service is routed. This is where we can perform client-side load balancing, apply security policies, impose request limits, and gather vital information on service interactions in production.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A Netramesh egy k\u00f6nny\u0171 service mesh megold\u00e1s\" src=\"\/wp-content\/uploads\/2019\/04\/b1f8636e3b99a3814138b6443b3e0799.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1 id=\"resheniya\">Megold\u00e1sok<\/h1>\n<p><\/p>\n<p>There are already several implementations of this approach: <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/\">Istio<\/a><\/noindex> \u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/linkerd.io\/2\/overview\/\">linkerd2<\/a><\/noindex>. They offer a multitude of features out of the box. However, this also brings a significant resource overhead. Moreover, the larger the cluster in which such a system operates, the more resources are required to maintain the new infrastructure. At Avito, we operate Kubernetes clusters containing thousands of service instances (and their number continues to grow rapidly). In its current implementation, Istio consumes about 300Mb of RAM per service instance. Due to the numerous capabilities available, the transparent load balancing also impacts the total response time of services (up to 10ms).<\/p>\n<p><\/p>\n<p>As a result, we examined what specific capabilities we needed right now and concluded that the primary reason we began implementing such solutions was to gather tracing information from the entire system transparently. We also wanted to have control over service interactions and perform various manipulations with the headers passed between services. <\/p>\n<p><\/p>\n<p>Ultimately, we arrived at our solution:\u200a <noindex><a rel=\"nofollow\" href=\"http:\/\/bit.ly\/netra_ru\">Netramesh<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h1 id=\"netramesh\">Netramesh<\/h1>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/bit.ly\/netra_ru\">Netramesh<\/a><\/noindex> \u2014 a lightweight service mesh solution with endless scalability regardless of the number of services in the system.<\/p>\n<p><\/p>\n<p>The main goals of the new solution were low resource overhead and high performance. We wanted to have the ability to transparently send tracing spans to our Jaeger system from the outset.<\/p>\n<p><\/p>\n<p>Manaps\u00e1g a legt\u00f6bb felh\u0151alap\u00fa megold\u00e1s Golang nyelven val\u00f3sul meg. Ennek term\u00e9szetesen megvannak a maga okai. A Golang nyelven \u00edrt h\u00e1l\u00f3zati alkalmaz\u00e1sok k\u00e9nyelmesek \u00e9s viszonylag egyszer\u0171ek, hiszen aszinkron m\u00f3don k\u00e9pesek kezelni a bevitel-kivitelt \u00e9s sz\u00fcks\u00e9g szerint sk\u00e1l\u00e1z\u00f3dni a processzorok sz\u00e1m\u00e1t illet\u0151en. R\u00e1ad\u00e1sul, ami szint\u00e9n nagyon fontos, a teljes\u00edtm\u00e9ny elegend\u0151 ahhoz, hogy ezt a feladatot megoldhassa. Ez\u00e9rt mi is a Golang-ot v\u00e1lasztottuk.<\/p>\n<p><\/p>\n<h1 id=\"proizvoditelnost\">Teljes\u00edtm\u00e9ny<\/h1>\n<p><\/p>\n<p>Er\u0151fesz\u00edt\u00e9seinket a maxim\u00e1lis teljes\u00edtm\u00e9ny el\u00e9r\u00e9s\u00e9re \u00f6sszpontos\u00edtottuk. Egy olyan megold\u00e1s eset\u00e9ben, amely minden szolg\u00e1ltat\u00e1s p\u00e9ld\u00e1ny mellett telep\u00edtve van, alacsony mem\u00f3ria- \u00e9s processzorid\u0151-fogyaszt\u00e1sra van sz\u00fcks\u00e9g. Term\u00e9szetesen a v\u00e1laszid\u0151nek is alacsonynak kell lennie.<\/p>\n<p><\/p>\n<p>N\u00e9zz\u00fck meg, milyen eredm\u00e9nyek sz\u00fclettek. <\/p>\n<p><\/p>\n<h2 id=\"ram\">RAM<\/h2>\n<p><\/p>\n<p>A Netramesh ~10Mb-ot fogyaszt, ha nincs forgalom, \u00e9s maximum 50Mb-ot, ha 10000 RPS terhel\u00e9snek van kit\u00e9ve egy p\u00e9ld\u00e1nyon.<\/p>\n<p><\/p>\n<p>Az Istio envoy proxy mindig ~300Mb-ot fogyaszt a klaszter\u00fcnkb\u0151l, amelyben ezre sz\u00e1mra tal\u00e1lhat\u00f3ak p\u00e9ld\u00e1nyok. Ez nem teszi lehet\u0151v\u00e9 a teljes klaszterre val\u00f3 sk\u00e1l\u00e1z\u00f3d\u00e1st.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A Netramesh egy k\u00f6nny\u0171 service mesh megold\u00e1s\" src=\"\/wp-content\/uploads\/2019\/04\/665b46c30183d502900027b7b3fcf2aa.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A Netramesh egy k\u00f6nny\u0171 service mesh megold\u00e1s\" src=\"\/wp-content\/uploads\/2019\/04\/d862122a15eb92402e35cb68c448f7c7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A Netramesh haszn\u00e1lat\u00e1val ~10-szeres mem\u00f3riafogyaszt\u00e1s-cs\u00f6kken\u00e9st \u00e9rt\u00fcnk el.<\/p>\n<p><\/p>\n<h2 id=\"cpu\">CPU<\/h2>\n<p><\/p>\n<p>A CPU haszn\u00e1lata terhel\u00e9s alatt viszonylag azonos. Ez a sidecar-hoz egy id\u0151ben \u00e9rkez\u0151 k\u00e9r\u00e9sek sz\u00e1m\u00e1t\u00f3l f\u00fcgg. A cs\u00facs\u00e9rt\u00e9kek 3000 k\u00e9r\u00e9ssel m\u00e1sodpercenk\u00e9nt a k\u00f6vetkez\u0151k\u00e9ppen alakulnak:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A Netramesh egy k\u00f6nny\u0171 service mesh megold\u00e1s\" src=\"\/wp-content\/uploads\/2019\/04\/6dbae38c42706dc3fbb833fdaf058b48.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A Netramesh egy k\u00f6nny\u0171 service mesh megold\u00e1s\" src=\"\/wp-content\/uploads\/2019\/04\/5a2eff682a457b620cbf71b520d90ca4.jpg\" style=\"display:block;margin: 0 auto;\" \/> <\/p>\n<p><\/p>\n<p>Van m\u00e9g egy fontos t\u00e9nyez\u0151: a Netramesh egy control plane n\u00e9lk\u00fcli megold\u00e1s, \u00e9s terhel\u00e9s hi\u00e1ny\u00e1ban nem fogyaszt processzorid\u0151t. Az Istio sidecar-ja mindig friss\u00edti a szolg\u00e1ltat\u00e1sok v\u00e9gpontjait. A v\u00e9geredm\u00e9ny egy ilyen k\u00e9p terhel\u00e9s n\u00e9lk\u00fcl:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A Netramesh egy k\u00f6nny\u0171 service mesh megold\u00e1s\" src=\"\/wp-content\/uploads\/2019\/04\/6e0212c6d34f8fdabf7b2f50a4f8137a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>HTTP\/1-et haszn\u00e1lunk a szolg\u00e1ltat\u00e1sok k\u00f6z\u00f6tti kommunik\u00e1ci\u00f3ra. Az Istio proxy-\u00e1l\u00e1skor az envoy-on kereszt\u00fcl a v\u00e1laszid\u0151 ak\u00e1r 5-10ms-ra is n\u0151tt, ami el\u00e9g sok azoknak a szolg\u00e1ltat\u00e1soknak, melyek k\u00e9szen \u00e1llnak az egymilliomod m\u00e1sodpercre val\u00f3 v\u00e1laszad\u00e1sra. A Netramesh eset\u00e9ben ez az id\u0151 0.5-2ms-ra cs\u00f6kkent.<\/p>\n<p><\/p>\n<h1 id=\"masshtabiruemost\">Sk\u00e1l\u00e1zhat\u00f3s\u00e1g<\/h1>\n<p><\/p>\n<p>A proxy-k \u00e1ltal felhaszn\u00e1lt kis mennyis\u00e9g\u0171 er\u0151forr\u00e1s lehet\u0151v\u00e9 teszi, hogy minden szolg\u00e1ltat\u00e1s mellett helyet kapjanak. A Netramesh-t sz\u00e1nd\u00e9kosan control plane \u00f6sszetev\u0151 n\u00e9lk\u00fcl alkott\u00e1k meg, hogy minden sidecar k\u00f6nnyen karbantarthat\u00f3 maradjon. Gyakran a service mesh megold\u00e1sokban a control plane elosztja a szolg\u00e1ltat\u00e1s-felfedez\u00e9s inform\u00e1ci\u00f3j\u00e1t minden sidecar-hoz. Ezzel egy\u00fctt \u00e9rkezik a timeout \u00e9s a terhel\u00e9seloszt\u00e1si be\u00e1ll\u00edt\u00e1sok inform\u00e1ci\u00f3ja is. Mindez lehet\u0151v\u00e9 teszi sz\u00e1mos hasznos dolog elv\u00e9gz\u00e9s\u00e9t, de sajn\u00e1latos m\u00f3don megn\u00f6veli a sidecar-ok m\u00e9ret\u00e9t. <\/p>\n<p><\/p>\n<h1 id=\"service-discovery\">Szolg\u00e1ltat\u00e1s felfedez\u00e9s<\/h1>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A Netramesh egy k\u00f6nny\u0171 service mesh megold\u00e1s\" src=\"\/wp-content\/uploads\/2019\/04\/26bc86ed2ebf15a8d51388982e23e16d.jpg\" style=\"display:block;margin: 0 auto;\" \/> <\/p>\n<p><\/p>\n<p>A Netramesh nem ad hozz\u00e1 semmilyen extra mechanizmust a szolg\u00e1ltat\u00e1s-felfedez\u00e9shez. Az \u00f6sszes forgalom \u00e1tl\u00e1tsz\u00f3an ker\u00fcl proxy-z\u00e1sra a netra sidecar-on kereszt\u00fcl. <\/p>\n<p><\/p>\n<p>A Netramesh t\u00e1mogatja a HTTP\/1 alkalmaz\u00e1si protokollt. A meghat\u00e1roz\u00e1s\u00e1hoz konfigur\u00e1lhat\u00f3 portlist\u00e1t haszn\u00e1lunk. \u00c1ltal\u00e1ban a rendszerben t\u00f6bb olyan port van, amelyeken HTTP-n kereszt\u00fcl t\u00f6rt\u00e9nik a kommunik\u00e1ci\u00f3. P\u00e9ld\u00e1ul sz\u00e1munkra a szolg\u00e1ltat\u00e1sok \u00e9s a k\u00fcls\u0151 k\u00e9r\u00e9sek k\u00f6z\u00f6tti interakci\u00f3 sor\u00e1n a 80, 8890, 8080 portokat haszn\u00e1ljuk. Ilyenkor ezeket k\u00f6rnyezeti v\u00e1ltoz\u00f3 seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edthatjuk be. <code>NETRA_HTTP_PORTS<\/code>.<\/p>\n<p><\/p>\n<p>Ha Kubernetes-t haszn\u00e1lsz orkestr\u00e1tork\u00e9nt \u00e9s a Service entit\u00e1sok mechanizmus\u00e1t az intra-cluster szolg\u00e1ltat\u00e1sok k\u00f6z\u00f6tti interakci\u00f3hoz, akkor a mechanizmus pontosan ugyanaz marad. El\u0151sz\u00f6r a mikroszolg\u00e1ltat\u00e1s a kube-dns seg\u00edts\u00e9g\u00e9vel lek\u00e9ri a service IP c\u00edmet, \u00e9s \u00faj kapcsolatot nyit vele. Ez a kapcsolat el\u0151sz\u00f6r a helyi netra-sidecar-ral j\u00f6n l\u00e9tre, \u00e9s minden TCP csomag el\u0151sz\u00f6r is a netra-ba \u00e9rkezik. Ezut\u00e1n a netra-sidecar l\u00e9tes\u00edt kapcsolatot az eredeti c\u00e9lponttal. A NAT a pod IP-n a nodon pontosan ugyanaz marad, mint netra n\u00e9lk\u00fcl.<\/p>\n<p><\/p>\n<h1 id=\"raspredelennyy-tracing-i-prokidyvanie-konteksta\">Elosztott tracing \u00e9s a kontextus \u00e1tad\u00e1sa<\/h1>\n<p><\/p>\n<p>A Netramesh olyan funkcionalit\u00e1st biztos\u00edt, amely sz\u00fcks\u00e9ges a HTTP interakci\u00f3kr\u00f3l sz\u00f3l\u00f3 tracing span-ek k\u00fcld\u00e9s\u00e9hez. A netra-sidecar elemzi a HTTP protokollt, m\u00e9ri a k\u00e9r\u00e9sek k\u00e9sleltet\u00e9s\u00e9t, \u00e9s kiolvassa a sz\u00fcks\u00e9ges inform\u00e1ci\u00f3t a HTTP fejl\u00e9cb\u0151l. V\u00e9g\u00fcl az \u00f6sszes trace a Jaeger rendszerben \u00f6sszegy\u0171lik. Finomabb konfigur\u00e1l\u00e1shoz a hivatalos k\u00f6nyvt\u00e1r \u00e1ltal biztos\u00edtott k\u00f6rnyezeti v\u00e1ltoz\u00f3kat is haszn\u00e1lhatod. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jaegertracing\/jaeger-client-go#environment-variables\">jaeger go library<\/a><\/noindex>. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A Netramesh egy k\u00f6nny\u0171 service mesh megold\u00e1s\" src=\"\/wp-content\/uploads\/2019\/04\/22a2d3be2cef1e495702ad75e062676f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A Netramesh egy k\u00f6nny\u0171 service mesh megold\u00e1s\" src=\"\/wp-content\/uploads\/2019\/04\/20ff67f0c7f3590dce3d41db2a10267e.jpg\" style=\"display:block;margin: 0 auto;\" \/> <\/p>\n<p><\/p>\n<p>De van egy probl\u00e9ma. Am\u00edg a szolg\u00e1ltat\u00e1sok nem gener\u00e1lnak \u00e9s nem tov\u00e1bb\u00edtanak egy speci\u00e1lis uber fejl\u00e9cet, nem l\u00e1tjuk a csatlakozott tracing span-eket a rendszerben. Pedig erre van sz\u00fcks\u00e9g\u00fcnk a probl\u00e9m\u00e1k gyors felkutat\u00e1s\u00e1hoz. Itt a Netramesh \u00fajra megold\u00e1st k\u00edn\u00e1l. A proxyk olvass\u00e1k a HTTP fejl\u00e9ceket, \u00e9s ha nincs uber trace id, akkor gener\u00e1lj\u00e1k azt. A Netramesh emellett t\u00e1rolja a bej\u00f6v\u0151 \u00e9s kimen\u0151 k\u00e9r\u00e9sek inform\u00e1ci\u00f3it a sidecar-ban, \u00e9s \u00f6sszep\u00e1ros\u00edtja \u0151ket a sz\u00fcks\u00e9ges fejl\u00e9cel a kimen\u0151 k\u00e9r\u00e9sek gazdag\u00edt\u00e1sa \u00fatj\u00e1n. A szolg\u00e1ltat\u00e1sokban mind\u00f6ssze egy fejl\u00e9cet kell tov\u00e1bb\u00edtani. <code>X-Request-Id<\/code>, amelyet k\u00f6rnyezeti v\u00e1ltoz\u00f3 seg\u00edts\u00e9g\u00e9vel konfigur\u00e1lhatsz. <code>NETRA_HTTP_REQUEST_ID_HEADER_NAME<\/code>. A Netramesh kontextus\u00e1nak m\u00e9ret\u00e9nek kezel\u00e9s\u00e9re a k\u00f6vetkez\u0151 k\u00f6rnyezeti v\u00e1ltoz\u00f3kat lehet be\u00e1ll\u00edtani: <code>NETRA_TRACING_CONTEXT_EXPIRATION_MILLISECONDS<\/code> (az id\u0151, ameddig a kontextus t\u00e1rol\u00f3dik) \u00e9s <code>NETRA_TRACING_CONTEXT_CLEANUP_INTERVAL<\/code> (a kontextus tiszt\u00edt\u00e1s\u00e1nak gyakoris\u00e1ga).<\/p>\n<p><\/p>\n<p>T\u00f6bb \u00fatvonal kombin\u00e1l\u00e1sa lehets\u00e9ges az \u00d6n rendszer\u00e9ben, speci\u00e1lis munkamenet-jelz\u0151k haszn\u00e1lat\u00e1val. A Netra lehet\u0151v\u00e9 teszi, hogy be\u00e1ll\u00edtsa <code>HTTP_HEADER_TAG_MAP<\/code> az HTTP-fejl\u00e9cek megfelel\u0151 tracing span c\u00edmk\u00e9kk\u00e9 val\u00f3 \u00e1talak\u00edt\u00e1s\u00e1hoz. Ez k\u00fcl\u00f6n\u00f6sen hasznos lehet tesztel\u00e9s eset\u00e9n. A funkcion\u00e1lis tesztel\u00e9s ut\u00e1n meg lehet n\u00e9zni, hogy a rendszer melyik r\u00e9sz\u00e9t \u00e9rintette a megfelel\u0151 munkamenet-azonos\u00edt\u00f3 sz\u0171r\u00e9se alapj\u00e1n.<\/p>\n<p><\/p>\n<h1 id=\"opredelenie-istochnika-zaprosa\">A k\u00e9r\u00e9s forr\u00e1s\u00e1nak meghat\u00e1roz\u00e1sa<\/h1>\n<p><\/p>\n<p>A k\u00e9r\u00e9s forr\u00e1s\u00e1nak meghat\u00e1roz\u00e1s\u00e1hoz haszn\u00e1lhatja az automatikus forr\u00e1s-azonos\u00edt\u00f3 fejl\u00e9c hozz\u00e1ad\u00e1s\u00e1nak funkci\u00f3j\u00e1t. A \"NETRA_HTTP_X_SOURCE_HEADER_NAME\" k\u00f6rnyezeti v\u00e1ltoz\u00f3val <code>meghat\u00e1rozhatja a fejl\u00e9c nev\u00e9t, amely automatikusan be\u00e1ll\u00edt\u00e1sra ker\u00fcl. A \"NETRA_HTTP_X_SOURCE_VALUE\" v\u00e1ltoz\u00f3 seg\u00edts\u00e9g\u00e9vel<\/code> meghat\u00e1rozhatja az \u00e9rt\u00e9ket, amelybe az X-Source fejl\u00e9c minden kimen\u0151 k\u00e9r\u00e9shez be\u00e1ll\u00edt\u00e1sra ker\u00fcl. <code>Ez lehet\u0151v\u00e9 teszi, hogy az eg\u00e9sz h\u00e1l\u00f3zaton egys\u00e9gesen terjeszthesse ezt a hasznos fejl\u00e9cet. Ezt k\u00f6vet\u0151en m\u00e1r haszn\u00e1lhatja a szolg\u00e1ltat\u00e1sokban \u00e9s hozz\u00e1adhatja a napl\u00f3khoz, metrik\u00e1khoz.<\/code> Forgalomir\u00e1ny\u00edt\u00e1s \u00e9s a Netramesh bels\u0151 m\u0171k\u00f6d\u00e9se <\/p>\n<p><\/p>\n<p>A Netramesh k\u00e9t f\u0151 \u00f6sszetev\u0151b\u0151l \u00e1ll. Az els\u0151, a netra-init, a forgalom elfog\u00e1s\u00e1ra vonatkoz\u00f3 h\u00e1l\u00f3zati szab\u00e1lyokat \u00e1ll\u00edt be. Az<\/p>\n<p><\/p>\n<h1 id=\"routing-trafika-i-vnutrennosti-netramesh\">iptables redirect szab\u00e1lyok<\/h1>\n<p><\/p>\n<p>minden, vagy a forgalom egy r\u00e9sz\u00e9nek elfog\u00e1s\u00e1ra szolg\u00e1lnak a sidecar sz\u00e1m\u00e1ra, amely a Netramesh m\u00e1sodik f\u0151 \u00f6sszetev\u0151je. Be\u00e1ll\u00edthatja, hogy pontosan mely portokat kell elfogni a bej\u00f6v\u0151 \u00e9s kimen\u0151 TCP munkamenetekn\u00e9l: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Lookyan\/netramesh\/blob\/master\/iptables-rules.sh\">INBOUND_INTERCEPT_PORTS, OUTBOUND_INTERCEPT_PORTS<\/a><\/noindex> Az eszk\u00f6zben \u00e9rdekes lehet\u0151s\u00e9g is van \u2014 val\u00f3sz\u00edn\u0171s\u00e9gi forgalomir\u00e1ny\u00edt\u00e1s. Ha a Netramesht kiz\u00e1r\u00f3lag tracing span-ek gy\u0171jt\u00e9s\u00e9re haszn\u00e1lja, a termel\u00e9si k\u00f6rnyezetben er\u0151forr\u00e1sokat takar\u00edthat meg, \u00e9s val\u00f3sz\u00edn\u0171s\u00e9gi forgalomir\u00e1ny\u00edt\u00e1st aktiv\u00e1lhat a <code>NETRA_INBOUND_PROBABILITY, NETRA_OUTBOUND_PROBABILITY<\/code>.<\/p>\n<p><\/p>\n<p>(0 \u00e9s 1 k\u00f6z\u00f6tt). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1 (az \u00f6sszes forgalom elfog\u00e1sa). <code>A sikeres elfog\u00e1s ut\u00e1n a netra sidecar \u00faj kapcsolatot vesz fel, \u00e9s haszn\u00e1lja<\/code> \u00e9s <code>SO_ORIGINAL_DST<\/code> a socket opci\u00f3t az eredeti c\u00e9lpont megszerz\u00e9s\u00e9hez. Ezut\u00e1n a Netra \u00faj kapcsolatot l\u00e9tes\u00edt az eredeti IP-c\u00edmhez, \u00e9s k\u00e9tir\u00e1ny\u00fa TCP kommunik\u00e1ci\u00f3t \u00e1ll\u00edt fel a felek k\u00f6z\u00f6tt, figyelve az \u00f6sszes bej\u00f6v\u0151 forgalmat. Ha a port HTTP-k\u00e9nt van be\u00e1ll\u00edtva, a Netra megpr\u00f3b\u00e1lja elemezni \u00e9s nyomozni. Ha a HTTP elemz\u00e9s nem siker\u00fcl, a Netra visszal\u00e9p a TCP-re \u00e9s \u00e1tl\u00e1tsz\u00f3an proxyzza a biteket.<\/p>\n<p><\/p>\n<p>A sikeres elfog\u00e1s ut\u00e1n a netra sidecar \u00faj kapcsolatot l\u00e9tes\u00edt \u00e9s haszn\u00e1lja <code>SO_ORIGINAL_DST<\/code> a socket opci\u00f3t az eredeti c\u00e9lpont megszerz\u00e9s\u00e9hez. Ezt k\u00f6vet\u0151en a Netra \u00faj kapcsolatot nyit az eredeti IP-c\u00edmhez, \u00e9s k\u00e9tir\u00e1ny\u00fa TCP kommunik\u00e1ci\u00f3t l\u00e9tes\u00edt a felek k\u00f6z\u00f6tt, figyelve az \u00f6sszes \u00e1tfoly\u00f3 forgalmat. Ha a port HTTP-k\u00e9nt van megadva, a Netra megpr\u00f3b\u00e1lja elemezni \u00e9s k\u00f6vetni. Ha a HTTP elemz\u00e9s nem sikeres, a Netra vissza\u00e1ll a TCP-re \u00e9s \u00e1tl\u00e1that\u00f3an proxyzza a b\u00e1jtokat.<\/p>\n<p><\/p>\n<h1 id=\"postroenie-grafa-zavisimostey\">A f\u00fcgg\u0151s\u00e9gek grafikonj\u00e1nak fel\u00e9p\u00edt\u00e9se<\/h1>\n<p><\/p>\n<p>Miut\u00e1n nagy mennyis\u00e9g\u0171 tracing inform\u00e1ci\u00f3t kaptunk a Jaegerben, szeretn\u00e9nk megkapni a rendszer interakci\u00f3inak teljes grafikonj\u00e1t. De ha a rendszered el\u00e9gg\u00e9 leterhelt, \u00e9s naponta milli\u00e1rdos nagys\u00e1grendben gy\u0171lnek \u00f6ssze a tracing spanok, akkor az aggreg\u00e1l\u00e1suk m\u00e1r nem olyan egyszer\u0171 feladat. Van egy hivatalos m\u00f3d erre: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jaegertracing\/spark-dependencies\">spark-dependencies<\/a><\/noindex>. Ennek ellen\u00e9re \u00f3r\u00e1kba telik a teljes grafikon fel\u00e9p\u00edt\u00e9se, \u00e9s arra k\u00e9nyszer\u00edt, hogy a Jaegerb\u0151l le kell t\u00f6lteni az elm\u00falt 24 \u00f3ra teljes adathalmaszt. <\/p>\n<p><\/p>\n<p>Ha Elasticsearch-t haszn\u00e1lsz a tracing spanok t\u00e1rol\u00e1s\u00e1ra, akkor haszn\u00e1lhatsz <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Lookyan\/jaeger-dependencies\">egy egyszer\u0171 Golang eszk\u00f6zt<\/a><\/noindex>, amely hasonl\u00f3 grafikont \u00e9p\u00edt fel percek alatt, kihaszn\u00e1lva az Elasticsearch jellemz\u0151it \u00e9s k\u00e9pess\u00e9geit.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A Netramesh egy k\u00f6nny\u0171 service mesh megold\u00e1s\" src=\"\/wp-content\/uploads\/2019\/04\/26eb13e066ed8482010fde103d3832fd.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1 id=\"kak-ispolzovat-netramesh\">A Netramesh haszn\u00e1lata<\/h1>\n<p><\/p>\n<p>A Netr\u00e1t egyszer\u0171en hozz\u00e1 lehet adni b\u00e1rmely szolg\u00e1ltat\u00e1shoz, amely b\u00e1rmilyen orkhesztr\u00e1tor mellett m\u0171k\u00f6dik. Meg lehet n\u00e9zni egy p\u00e9ld\u00e1t <noindex><a rel=\"nofollow\" href=\"http:\/\/bit.ly\/2HVRv7D\">itt<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Jelenleg a Netr\u00e1nak nincs lehet\u0151s\u00e9ge a sidecar automatikus integr\u00e1l\u00e1s\u00e1ra a szolg\u00e1ltat\u00e1sokhoz, de tervek vannak a megval\u00f3s\u00edt\u00e1s\u00e1ra. <\/p>\n<p><\/p>\n<h1 id=\"buduschee-netramesh\">A Netramesh j\u00f6v\u0151je<\/h1>\n<p><\/p>\n<p>A legf\u0151bb c\u00e9lja <noindex><a rel=\"nofollow\" href=\"http:\/\/bit.ly\/netra_ru\">Netramesh<\/a><\/noindex> a minim\u00e1lis er\u0151forr\u00e1s-k\u00f6lts\u00e9gek el\u00e9r\u00e9se \u00e9s a magas teljes\u00edtm\u00e9ny biztos\u00edt\u00e1sa, alapvet\u0151 lehet\u0151s\u00e9geket ny\u00fajtva az observability \u00e9s a mikro-szolg\u00e1ltat\u00e1sok k\u00f6z\u00f6tti interakci\u00f3k ellen\u0151rz\u00e9s\u00e9re. <\/p>\n<p><\/p>\n<p>A j\u00f6v\u0151ben a Netramesh t\u00e1mogatni fogja m\u00e1s alkalmaz\u00e1si szint\u0171 protokollokat is a HTTP mellett. A k\u00f6zelj\u00f6v\u0151ben megjelenik az L7 ir\u00e1ny\u00edt\u00e1s lehet\u0151s\u00e9ge.<\/p>\n<p><\/p>\n<p>Haszn\u00e1lj Netramesht, ha ilyen probl\u00e9m\u00e1kkal tal\u00e1lkozol, \u00e9s \u00edrj nek\u00fcnk k\u00e9rd\u00e9seket \u00e9s javaslatokat.<\/p>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/avito\/blog\/449974\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043e\u0442 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043a \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u043c\u044b \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438. \u0412 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0432 \u043a\u0430\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u043a\u043e\u0434\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u0430, \u043b\u0438\u0431\u043e \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0432 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435, \u0432\u0441\u0451 \u0443\u0436\u0435 \u043d\u0435 \u0442\u0430\u043a \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e. \u041d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432\u0435\u0441\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24554,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32777","post","type-post","status-publish","format-standard","has-post-thumbnail","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=\"\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043e\u0442 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043a \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u043c\u044b \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438. \u0412 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0432 \u043a\u0430\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430.\" \/>\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\/hu\/blog\/administrirovanie\/netramesh-legkovesnoe-service-mesh-reshenie\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\udd47Netramesh \u2013 \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u043e\u0435 service mesh \u0440\u0435\u0448\u0435\u043d\u0438\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043e\u0442 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043a \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u043c\u044b \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438. \u0412 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0432 \u043a\u0430\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/netramesh-legkovesnoe-service-mesh-reshenie\" \/>\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-10-31T18:48:52+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:48:52+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\udd47Netramesh \u2013 k\u00f6nny\u0171 service mesh megold\u00e1s | ProHoster","description":"A monolitikus alkalmaz\u00e1sr\u00f3l a mikroszolg\u00e1ltat\u00e1s-architekt\u00far\u00e1ra val\u00f3 \u00e1t\u00e1ll\u00e1s sor\u00e1n \u00faj probl\u00e9m\u00e1kkal szembes\u00fcl\u00fcnk. A monolitikus alkalmaz\u00e1sban \u00e1ltal\u00e1ban elegend\u0151 csak meghat\u00e1rozni, hogy a rendszer mely r\u00e9sz\u00e9n t\u00f6rt\u00e9nt a probl\u00e9ma.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/netramesh-legkovesnoe-service-mesh-reshenie","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\udd47Netramesh \u2013 \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u043e\u0435 service mesh \u0440\u0435\u0448\u0435\u043d\u0438\u0435 | ProHoster","og:description":"\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043e\u0442 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043a \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u043c\u044b \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438. \u0412 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0432 \u043a\u0430\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/netramesh-legkovesnoe-service-mesh-reshenie","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-10-31T18:48:52+00:00","article:modified_time":"2019-10-31T18:48:52+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32777","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-21 12:29:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:20:44","updated":"2026-01-21 12:29:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/32777","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=32777"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/32777\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/24554"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=32777"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=32777"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=32777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}