{"id":54987,"date":"2020-01-09T00:00:00","date_gmt":"2020-01-08T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/istio-circuit-breaker-otklyuchaem-neispravnye-kontejnery"},"modified":"2020-02-18T14:03:03","modified_gmt":"2020-02-18T11:03:03","slug":"istio-circuit-breaker-otklyuchaem-neispravnye-kontejnery","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/istio-circuit-breaker-otklyuchaem-neispravnye-kontejnery","title":{"rendered":"Istio Circuit Breaker: dezactiv\u0103m containerele defecte","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>S\u0103rb\u0103torile s-au \u00eencheiat \u0219i revenim cu al doilea nostru articol din seria despre Istio Service Mesh.<\/p>\n<p><img decoding=\"async\" alt=\"Istio Circuit Breaker: dezactiv\u0103m containerele defecte\" src=\"\/wp-content\/uploads\/2020\/01\/6d65a62468d0f17570cb8b92e03ceb71.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTema de ast\u0103zi este Circuit Breaker, care \u00een traducere \u00een rom\u00e2n\u0103 \u00eenseamn\u0103 \u201edisjunctor\u201d, cunoscut \u0219i sub denumirea popular\u0103 de \u201eautomatul de protec\u021bie\u201d. Doar c\u0103 \u00een Istio acest automat nu deconecteaz\u0103 un circuit scurtcircuitat sau suprasolicitat, ci containerele defecte.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Cum ar trebui s\u0103 func\u021bioneze ideal<\/h3>\n<p>\nC\u00e2nd microserviciile sunt gestionate de Kubernetes, de exemplu, \u00een cadrul platformei OpenShift, ele se scalaz\u0103 automat \u00een sus \u0219i \u00een jos \u00een func\u021bie de \u00eenc\u0103rcare. Deoarece microserviciile func\u021bioneaz\u0103 \u00een poduri, la un singur punct final pot exista mai multe instan\u021be ale microserviciului containerizat, iar Kubernetes va ruta cererile \u0219i va echilibra \u00eenc\u0103rcarea \u00eentre acestea. \u0218i \u2013 \u00een mod ideal \u2013 totul ar trebui s\u0103 func\u021bioneze perfect.<\/p>\n<p>Ne amintim c\u0103 microserviciile sunt mici \u0219i efemere. Efemeritatea, \u00een acest context, \u00eenseamn\u0103 u\u0219urin\u021ba cu care apar \u0219i dispar, aspeptare c\u0103reia \u00eei subestim\u0103m adesea importan\u021ba. Na\u0219terea \u0219i moartea unei noi instan\u021be de microserviciu \u00eentr-un pod sunt lucruri complet normale, pe care OpenShift \u0219i Kubernetes le gestioneaz\u0103 bine, \u0219i totul func\u021bioneaz\u0103 minunat \u2013 dar din nou, doar \u00een teorie.<\/p>\n<h3>Cum func\u021bioneaz\u0103 de fapt<\/h3>\n<p>\nAcum imagina\u021bi-v\u0103 c\u0103 o anumit\u0103 instan\u021b\u0103 a microserviciului, adic\u0103 un container, a devenit defect\u0103: fie nu r\u0103spunde (eroare 503), fie \u2013 ceea ce este \u0219i mai nepl\u0103cut \u2013 r\u0103spunde, dar este prea lent. Cu alte cuvinte, are mici erori sau nu r\u0103spunde la cereri, dar nu este eliminat automat din grup. Ce ar trebui s\u0103 facem \u00een acest caz? S\u0103 repet\u0103m \u00eencercarea? S\u0103-l elimin\u0103m din schema de rutare? \u0218i ce \u00eenseamn\u0103 \u201eprea lent\u201d \u2013 c\u00e2te date sunt acestea, \u0219i cine le stabile\u0219te? Poate ar trebui pur \u0219i simplu s\u0103-i d\u0103m o pauz\u0103 \u0219i s\u0103 \u00eencerc\u0103m din nou mai t\u00e2rziu? Dac\u0103 da, atunci c\u00e2t de t\u00e2rziu?<\/p>\n<h3>Ce este Pool Ejection \u00een Istio<\/h3>\n<p>\n\u0218i aici intervine Istio cu automatele sale de protec\u021bie Circuit Breaker, care elimin\u0103 temporar containerele defecte din grupul de resurse de rutare \u0219i echilibrare a \u00eenc\u0103rc\u0103rii, implement\u00e2nd procedura de Pool Ejection.<\/p>\n<p>Folosind strategia de detectare a anomaliilor (outlier detection), Istio detecteaz\u0103 podurile anormale, care se abat\u0103 de la norma general\u0103, \u0219i le elimin\u0103 din grupul de resurse pentru o perioad\u0103 specificat\u0103, cunoscut\u0103 sub denumirea de \u201efereastra de somn\u201d (sleep window). <\/p>\n<p>Pentru a ar\u0103ta cum func\u021bioneaz\u0103 acest lucru \u00een Kubernetes pe platforma OpenShift, s\u0103 \u00eencepem cu un screenshot al microservicelor care func\u021bioneaz\u0103 normal din exemplul din repository <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/redhat-developer-demos\/istio-tutorial\">Demonstra\u021bii Red Hat Developer<\/a><\/noindex>. Aici avem dou\u0103 poduri, v1 \u0219i v2, fiecare con\u021bin\u00e2nd un container. Atunci c\u00e2nd reguli de rutare Istio nu sunt utilizate, Kubernetes aplic\u0103 implicit rutarea echilibrat\u0103 uniform:<\/p>\n<p><img decoding=\"async\" alt=\"Istio Circuit Breaker: dezactiv\u0103m containerele defecte\" src=\"\/wp-content\/uploads\/2020\/01\/6bd750250a84fdbd2f3e1fcfe0c2d9fd.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Ne preg\u0103tim pentru o defec\u021biune<\/h3>\n<p>\n\u00cenainte de a face Pool Ejection, trebuie s\u0103 cre\u0103m o regul\u0103 de rutare Istio. S\u0103 presupunem c\u0103 dorim s\u0103 distribuim cererile \u00eentre poduri \u00een propor\u021bie de 50\/50. De asemenea, vom cre\u0219te num\u0103rul de containere v2 de la unul la dou\u0103, iat\u0103 cum:<\/p>\n<pre><code class=\"plaintext\">oc scale deployment recommendation-v2 --replicas=2 -n tutorial\n<\/code><\/pre>\n<p>\nAcum stabilim o regul\u0103 de rutare pentru a distribui traficul \u00eentre poduri \u00een propor\u021bie de 50\/50.<\/p>\n<p><img decoding=\"async\" alt=\"Istio Circuit Breaker: dezactiv\u0103m containerele defecte\" src=\"\/wp-content\/uploads\/2020\/01\/e40af0e8d94fc5ae0d8dcdd6105d34eb.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nIat\u0103 cum arat\u0103 rezultatul acestei reguli:<\/p>\n<p><img decoding=\"async\" alt=\"Istio Circuit Breaker: dezactiv\u0103m containerele defecte\" src=\"\/wp-content\/uploads\/2020\/01\/70e4a251f33828b4c1ac688921e5545a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nSe poate observa c\u0103 \u00een acest screenshot nu este 50\/50, ci 14:9, dar cu timpul situa\u021bia se va ajusta.<\/p>\n<h3>Provoc\u0103m o defec\u021biune<\/h3>\n<p>\nAcum vom scoate din func\u021biune unul dintre cele dou\u0103 containere v2, astfel \u00eenc\u00e2t s\u0103 avem un container v1 func\u021bional, un container v2 func\u021bional \u0219i un container v2 defect: <\/p>\n<p><img decoding=\"async\" alt=\"Istio Circuit Breaker: dezactiv\u0103m containerele defecte\" src=\"\/wp-content\/uploads\/2020\/01\/c376ed242d5659c6953e8cd4821222ab.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Remediem defec\u021biunea<\/h3>\n<p>\nA\u0219adar, avem un container defect, iar acum a venit momentul pentru Pool Ejection. Cu un config foarte simplu, vom exclude acest container defect din orice scheme de rutare timp de 15 secunde, \u00een a\u0219teptarea c\u0103 se va restabili (fie se va reporni, fie va recupera performan\u021ba). Iat\u0103 cum arat\u0103 acest config \u0219i rezultatele sale:<\/p>\n<p><img decoding=\"async\" alt=\"Istio Circuit Breaker: dezactiv\u0103m containerele defecte\" src=\"\/wp-content\/uploads\/2020\/01\/1f7261c7907d12002249642dbc2be054.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Istio Circuit Breaker: dezactiv\u0103m containerele defecte\" src=\"\/wp-content\/uploads\/2020\/01\/cb9378b82e533d4b6dd312928294b3a1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDup\u0103 cum se observ\u0103, containerul defect v2 nu mai este utilizat \u00een rutarea cererilor, deoarece a fost exclus din pool. Dar, dup\u0103 15 secunde, se va \u00eentoarce automat \u00een pool. Practic, tocmai am demonstrat cum func\u021bioneaz\u0103 Pool Ejection.<\/p>\n<h3>\u00cencepem s\u0103 construim arhitectura<\/h3>\n<p>\nPool Ejection, \u00eempreun\u0103 cu capabilit\u0103\u021bile de monitorizare Istio, permite \u00eenceperea construc\u021biei unui cadru de \u00eenlocuire automat\u0103 a containerelor defecte, pentru a reduce sau chiar a elimina timpii mor\u021bi \u0219i defec\u021biunile.<br \/>\n\u2003<br \/>\nNASA are un slogan celebru - Failure Is Not an Option, atribuit managerului de zbor <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D1%80%D0%B0%D0%BD%D1%86,_%D0%94%D0%B6%D0%B8%D0%BD\">Gene Kranz<\/a><\/noindex>. \u00cen rom\u00e2n\u0103, acesta poate fi tradus ca \u201eE\u0219ecul nu este o op\u021biune\u201d, iar sensul este c\u0103 totul poate fi f\u0103cut s\u0103 func\u021bioneze av\u00e2nd suficient\u0103 voin\u021b\u0103. Totu\u0219i, \u00een via\u021ba real\u0103, e\u0219ecurile nu se \u00eent\u00e2mpl\u0103 doar ocazional, ci sunt inevitabile, pretutindeni \u0219i \u00een toate domeniile. Cum putem face fa\u021b\u0103 acestor situa\u021bii \u00een cazul microserviciilor? Dup\u0103 p\u0103rerea noastr\u0103, este mai bine s\u0103 ne baz\u0103m nu pe voin\u021ba uman\u0103, ci pe capacit\u0103\u021bile containerelor. <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/kubernetes\/\">Kubernetes<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/products\/openshift\/overview\/\">Red Hat OpenShift<\/a><\/noindex>, \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/service-mesh\/\">Istio<\/a><\/noindex>.<\/p>\n<p>Istio, a\u0219a cum am men\u021bionat mai devreme, implementeaz\u0103 o concep\u021bie bine cunoscut\u0103 din lumea fizic\u0103, \u0219i anume conceptul de disjunctor automat. A\u0219a cum un disjunctor electric deconecteaz\u0103 o parte problem\u0103 a circuitului, tot a\u0219a Circuit Breaker din Istio \u00eentrerupe leg\u0103tura dintre fluxul de cereri \u0219i containerul problematic atunci c\u00e2nd exist\u0103 o problem\u0103 cu punctul final, de exemplu, c\u00e2nd serverul a c\u0103zut sau a \u00eenceput s\u0103 \u00eencetineasc\u0103.<\/p>\n<p>\u00cen plus, \u00een al doilea caz, problemele sunt cu at\u00e2t mai multe, deoarece \u00eencetinirea unui container nu doar c\u0103 produce o cascad\u0103 de \u00eent\u00e2rzieri \u00een serviciile care \u00eel acceseaz\u0103, \u0219i, ca rezultat, reduce performan\u021ba sistemului \u00een ansamblu, ci \u0219i genereaz\u0103 cereri repetate c\u0103tre serviciul deja lent, ceea ce agraveaz\u0103 situa\u021bia.<\/p>\n<h3>Circuit Breaker \u00een teorie<\/h3>\n<p>\nCircuit Breaker este un proxy care controleaz\u0103 fluxul cererilor c\u0103tre punctul final. Atunci c\u00e2nd acest punct \u00eenceteaz\u0103 s\u0103 func\u021bioneze sau, \u00een func\u021bie de set\u0103rile specificate, \u00eencepe s\u0103 \u00eencetineasc\u0103, proxy-ul \u00eentrerupe leg\u0103tura cu containerul. Dup\u0103 aceea, traficul este redirec\u021bionat c\u0103tre alte containere, pur \u0219i simplu din cauza echilibr\u0103rii \u00eenc\u0103rc\u0103rii. Leg\u0103tura r\u0103m\u00e2ne deschis\u0103 (open) pe parcursul unei feronierii stabilite, s\u0103 spunem, dou\u0103 minute, \u0219i apoi este considerat\u0103 semi-deschis\u0103 (half-open). \u00cencercarea de a trimite urm\u0103toarea cerere determin\u0103 starea ulterioar\u0103 a conexiunii. Dac\u0103 totul este \u00een regul\u0103 cu serviciul, conexiunea revine la starea de func\u021bionare \u0219i devine din nou \u00eenchis\u0103 (closed). Dac\u0103 serviciul continu\u0103 s\u0103 aib\u0103 probleme, conexiunea se deschide din nou \u0219i se reactiveaz\u0103 fereastra de somn. A\u0219a arat\u0103 o diagram\u0103 simplificat\u0103 a schimb\u0103rilor de stare ale Circuit Breaker:<\/p>\n<p><img decoding=\"async\" alt=\"Istio Circuit Breaker: dezactiv\u0103m containerele defecte\" src=\"\/wp-content\/uploads\/2020\/01\/7ba3e945451cbcaf797f9706c8dacb3c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nEste important de men\u021bionat c\u0103 totul se \u00eent\u00e2mpl\u0103 la nivelul, a\u0219a-zisei, arhitecturi de sistem. Prin urmare, va trebui la un moment dat s\u0103 \u00eenv\u0103\u021ba\u021bi aplica\u021biile dvs. s\u0103 func\u021bioneze cu Circuit Breaker, de exemplu, oferind un r\u0103spuns implicit sau, dac\u0103 este posibil, ignor\u00e2nd existen\u021ba serviciului. Pentru aceasta, se folose\u0219te pattern-ul bulkhead, dar acesta dep\u0103\u0219e\u0219te subiectul acestui articol.<\/p>\n<h3>Circuit Breaker \u00een practic\u0103<\/h3>\n<p>\nCa exemplu, vom lansa pe OpenShift dou\u0103 versiuni ale microserviciului nostru de recomand\u0103ri. Versiunea 1 va func\u021biona normal, \u00een timp ce \u00een v2 vom introduce o \u00eent\u00e2rziere pentru a imita un blocaj pe server. Instrumentul folosit pentru vizualizarea rezultatelor este <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/JoeDog\/siege\">siege<\/a><\/noindex>:<\/p>\n<pre><code class=\"plaintext\">siege -r 2 -c 20 -v customer-tutorial.$(minishift ip).nip.io\n<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"Istio Circuit Breaker: dezactiv\u0103m containerele defecte\" src=\"\/wp-content\/uploads\/2020\/01\/0660814fd5d7ebc9d9a3fa9f95fbae3c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nTotul pare s\u0103 func\u021bioneze, dar la ce pre\u021b? La prima vedere, avem o disponibilitate de 100%, dar dac\u0103 ne uit\u0103m mai atent \u2013 durata maxim\u0103 a tranzac\u021biei este de 12 secunde. Acesta este clar un punct slab \u0219i trebuie s\u0103 \u00eel remediem.<\/p>\n<p>Pentru aceasta, vom folosi Istio pentru a exclude apelurile c\u0103tre containerele lente. Iat\u0103 cum arat\u0103 configura\u021bia corespunz\u0103toare folosind Circuit Breaker:<\/p>\n<p><img decoding=\"async\" alt=\"Istio Circuit Breaker: dezactiv\u0103m containerele defecte\" src=\"\/wp-content\/uploads\/2020\/01\/bb7349d199dad89964d824ae1194c3fc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nUltima linie cu parametrul httpMaxRequestsPerConnection semnaleaz\u0103 c\u0103 conexiunea trebuie s\u0103 fie deschis\u0103 la \u00eencercarea de a crea o nou\u0103 \u2013 a doua \u2013 conexiune pe l\u00e2ng\u0103 cea existent\u0103. Deoarece containerul nostru imit\u0103 un serviciu care \u00eent\u00e2rzie, astfel de situa\u021bii vor ap\u0103rea periodic, iar Istio va returna o eroare 503, iar ceea ce va ar\u0103ta siege:<\/p>\n<p><img decoding=\"async\" alt=\"Istio Circuit Breaker: dezactiv\u0103m containerele defecte\" src=\"\/wp-content\/uploads\/2020\/01\/2bb6f4fb3669bd4ea6214b98bcfa22ac.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Bine, avem Circuit Breaker, ce urmeaz\u0103?<\/h3>\n<p>\nA\u0219adar, am implementat deconectarea automat\u0103, f\u0103r\u0103 a modifica codul surs\u0103 al serviciilor \u00een sine. Folosind Circuit Breaker \u0219i procedura descris\u0103 anterior de Pool Ejection, putem elimina din pool-ul de resurse containerele care blocheaz\u0103, p\u00e2n\u0103 c\u00e2nd acestea revin la normal, \u0219i putem verifica starea lor la intervale definite \u2013 \u00een exemplul nostru, dou\u0103 minute (parametrul sleepWindow).<\/p>\n<p>Re\u021bine\u021bi c\u0103 capacitatea aplica\u021biei de a reac\u021biona la eroarea 503 este \u00eenc\u0103 definit\u0103 la nivelul codului s\u0103u surs\u0103. Exist\u0103 numeroase strategii pentru utilizarea Circuit Breaker, care se aplic\u0103 \u00een func\u021bie de situa\u021bie.<\/p>\n<p><b>\u00cen urm\u0103toarea postare:<\/b> vom discuta despre trasarea \u0219i monitorizarea care sunt deja integrate sau u\u0219or de ad\u0103ugat \u00een Istio, precum \u0219i despre cum putem introduce erori \u00een sistem inten\u021bionat.<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/redhatrussia\/blog\/483262\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0430\u0437\u0434\u043d\u0438\u043a\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0438\u0441\u044c, \u0438 \u043c\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0441 \u043d\u0430\u0448\u0438\u043c \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u0441\u0442\u043e\u043c \u0438\u0437 \u0441\u0435\u0440\u0438\u0438 \u043f\u043e Istio Service Mesh. \u0421\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u044f\u044f \u0442\u0435\u043c\u0430 \u2013 Circuit Breaker, \u0447\u0442\u043e \u0432 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u00ab\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c\u00bb, \u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0435\u0447\u0438\u0438 \u2013 \u00ab\u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0437\u0430\u0449\u0438\u0442\u044b\u00bb. \u0422\u043e\u043b\u044c\u043a\u043e \u0432 Istio \u044d\u0442\u043e\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043d\u0435 \u043a\u043e\u0440\u043e\u0442\u043d\u0443\u0432\u0448\u0443\u044e \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u0443\u044e \u0446\u0435\u043f\u044c, \u0430 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b. \u041a\u0430\u043a \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0438\u0434\u0435\u0430\u043b\u0435 \u041a\u043e\u0433\u0434\u0430 [&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-54987","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0430\u0437\u0434\u043d\u0438\u043a\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0438\u0441\u044c, \u0438 \u043c\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0441 \u043d\u0430\u0448\u0438\u043c \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u0441\u0442\u043e\u043c \u0438\u0437 \u0441\u0435\u0440\u0438\u0438 \u043f\u043e Istio Service Mesh.\" \/>\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\/ro\/blog\/administrirovanie\/istio-circuit-breaker-otklyuchaem-neispravnye-kontejnery\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\udd47Istio Circuit Breaker: \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0430\u0437\u0434\u043d\u0438\u043a\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0438\u0441\u044c, \u0438 \u043c\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0441 \u043d\u0430\u0448\u0438\u043c \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u0441\u0442\u043e\u043c \u0438\u0437 \u0441\u0435\u0440\u0438\u0438 \u043f\u043e Istio Service Mesh.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/istio-circuit-breaker-otklyuchaem-neispravnye-kontejnery\" \/>\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-08T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:03+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Istio Circuit Breaker: dezactiv\u0103m containerele defecte | ProHoster","description":"S\u0103rb\u0103torile s-au \u00eencheiat \u0219i revenim cu al doilea nostru articol din seria despre Istio Service Mesh.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/istio-circuit-breaker-otklyuchaem-neispravnye-kontejnery","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\udd47Istio Circuit Breaker: \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b | ProHoster","og:description":"\u041f\u0440\u0430\u0437\u0434\u043d\u0438\u043a\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0438\u0441\u044c, \u0438 \u043c\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0441 \u043d\u0430\u0448\u0438\u043c \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u0441\u0442\u043e\u043c \u0438\u0437 \u0441\u0435\u0440\u0438\u0438 \u043f\u043e Istio Service Mesh.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/istio-circuit-breaker-otklyuchaem-neispravnye-kontejnery","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-08T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54987","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 13:26:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:54:34","updated":"2026-01-24 13:26:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/54987","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=54987"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/54987\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=54987"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=54987"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=54987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}