{"id":92073,"date":"2020-08-22T19:41:56","date_gmt":"2020-08-22T17:41:56","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/post-mortem-po-nedostupnosti-quay-io"},"modified":"2020-08-22T19:41:56","modified_gmt":"2020-08-22T17:41:56","slug":"post-mortem-po-nedostupnosti-quay-io","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/post-mortem-po-nedostupnosti-quay-io","title":{"rendered":"Post Mortem o nedostupnosti Quay.io","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Napomena za prijevod.<\/b>: po\u010detkom kolovoza Red Hat je javno objavio rje\u0161enje za probleme dostupnosti koji su se pojavili tijekom prethodnih mjeseci kod korisnika njihove usluge <noindex><a rel=\"nofollow\" href=\"http:\/\/quay.io\/\">Quay.io<\/a><\/noindex> (temeljen na registru za slike kontejnera, koji je tvrtka dobila s kupnjom CoreOS-a). Neovisno o va\u0161em interesu za ovu uslugu kao takvu, pou\u010dan je put koji su pro\u0161li SRE in\u017eenjeri tvrtke kako bi dijagnosticirali i uklonili uzroke incidenta.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Post Mortem o nedostupnosti Quay.io\" src=\"\/wp-content\/uploads\/2020\/08\/67ef7fddee25448ae68ae7f4700bb25b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n19. svibnja, rano ujutro (prema ljetnom sjevernoameri\u010dkom isto\u010dnom vremenu, EDT), usluga quay.io je pala. Incident je utjecao na potro\u0161a\u010de quay.io, kao i na open source projekte koji koriste quay.io kao platformu za izgradnju i distribuciju softvera. Red Hat cijeni povjerenje i jednih i drugih.<\/p>\n<p>Tim SRE in\u017eenjera odmah se uklju\u010dio u rad i nastojao \u0161to prije stabilizirati rad usluge Quay. Me\u0111utim, dok su radili na tome, klijenti su izgubili mogu\u0107nost slanja novih slika, a samo su povremeno mogli povu\u0107i postoje\u0107e. Iz nepoznatih razloga, baza podataka quay.io je bila blokirana nakon skaliranja usluge na punu snagu.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>\u00ab<b>\u0160to se promijenilo?<\/b>\u2014 to je prvo pitanje koje se postavlja u sli\u010dnim slu\u010dajevima. Primijetili smo da je nedugo prije problema klaster OpenShift Dedicated (na kojem radi quay.io) po\u010deo s a\u017euriranjem na verziju 4.3.19. Budu\u0107i da quay.io radi na Red Hat OpenShift Dedicated (OSD), redovita a\u017euriranja su bila uobi\u010dajena operacija i nikada nisu uzrokovala probleme. \u0160tovi\u0161e, u proteklih \u0161est mjeseci nekoliko smo puta a\u017eurirali klastere Quay bez ikakvih prekida u radu.<\/p>\n<p>Dok smo poku\u0161avali ponovno pokrenuti uslugu, drugi in\u017eenjeri su po\u010deli pripremati novi OSD klaster s prethodnom verzijom softvera, kako bi sve u slu\u010daju nu\u017ede mogli implementirati na njemu.<\/p>\n<h2>Analiza uzroka<\/h2>\n<p>\nGlavni simptom kvara bila je lavina od desetaka tisu\u0107a veza na bazu podataka, zbog \u010dega je instanca MySQL-a postala prakti\u010dki neupotrebljiva. Zbog toga je bilo te\u0161ko dijagnosticirati problem. Postavili smo ograni\u010denje na maksimalni broj veza od klijenata kako bismo pomogli SRE timu da procijeni problem. Nismo primijetili neuobi\u010dajen promet prema bazi podataka: zapravo, ve\u0107ina zahtjeva bila je za \u010ditanje, dok su samo neki bili za pisanje.<\/p>\n<p>Poku\u0161ali smo tako\u0111er otkriti obrazac u prometu DB-a koji bi mogao izazvati ovu lavinu. Me\u0111utim, nismo uspjeli prona\u0107i nikakve obrasce u zapisima. O\u010dekuju\u0107i dovr\u0161enje novog klastera s OSD 4.3.18, nastavili smo s poku\u0161ajima pokretanja podova quay.io. Svaki put kada je klaster dostigao punu snagu, baza podataka bi se smrzavala. To je zna\u010dilo da je bilo potrebno ponovno pokrenuti RDS instancu uz sve podove quay.io.<\/p>\n<p>Do ve\u010deri smo stabilizirali uslugu u read-only re\u017eimu i isklju\u010dili maksimalni broj nebitnih funkcija (na primjer, sakupljanje sme\u0107a u prostoru imena) kako bismo smanjili optere\u0107enje na bazi podataka. Zale\u0111ivanja su prestala, <b>ali uzrok nije prona\u0111en<\/b>. Novi OSD klaster je bio spreman, i prebacili smo uslugu, povezali promet i nastavili s pra\u0107enjem.<\/p>\n<p>Quay.io je stabilno radio na novom OSD klasteru, stoga smo se vratili logovima baze podataka, no nismo uspjeli otkriti korelaciju koja bi objasnila blokade. In\u017eenjeri OpenShifta radili su zajedno s nama, poku\u0161avaju\u0107i razumjeti mogu li promjene u Red Hat OpenShift 4.3.19 uzrokovati probleme s Quay. Me\u0111utim, ni\u0161ta nije otkriveno, a <b>nije uspjelo reproducirati problem u laboratorijskim uvjetima<\/b>.<\/p>\n<h2>Drugi kvar<\/h2>\n<p>\n28. svibnja, nedugo prije podneva po EDT-u, quay.io se ponovno sru\u0161io s istim simptomima: funkcionalnost baze podataka bila je blokirana. I ponovo smo mobilizirali sve snage za istragu. Prvo \u0161to je trebalo u\u010diniti bilo je ponovno pokrenuti uslugu. Me\u0111utim, <b>Ovaj put ponovno pokretanje RDS-a i ponovno pokretanje podova quay.io nisu urodili plodom.<\/b>Quay je napisan na Pythonu, a svaki pod radi kao jedinstveni monolitni kontejner. U radnom okru\u017eenju kontejnera izvr\u0161ava se mnogo paralelnih zadataka. Koristimo biblioteku<\/p>\n<p>gevent <code>za obradu web zahtjeva. Kada Quay primi zahtjev (putem na\u0161eg API-ja ili preko Dockerovog API-ja), dodijeljuje se gevent radnik. Obi\u010dno taj radnik treba uspostaviti vezu s bazom podataka. Nakon prvog kvara otkrili smo da su se gevent radnici koristili podacima o vezi prema zadanim postavkama.<\/code> pod <code>gunicorn<\/code> za obradu web zahtjeva. Kada Quay primi zahtjev (putem na\u0161eg API-ja ili putem Docker API-ja), dodijeljuje mu gevent worker. Obi\u010dno bi taj worker trebao komunicirati s bazom podataka. Nakon prvog pada otkrili smo da se gevent worker-i povezivali s bazom koriste\u0107i zadane postavke.<\/p>\n<p>S obzirom na zna\u010dajan broj podova Quay i tisu\u0107e pristiglih zahtjeva u sekundi, veliki broj veza s bazom podataka teoretski bi mogao preopteretiti MySQL instancu. Monitoring je pokazao da Quay prosje\u010dno obra\u0111uje 5 tisu\u0107a zahtjeva u sekundi. Otprilike toliko je bilo i veza s bazom podataka. 5 tisu\u0107a veza bez problema se uklapalo u mogu\u0107nosti na\u0161e RDS instance (\u0161to se ne mo\u017ee re\u0107i za desetke tisu\u0107a). <b>Iz nekog razloga doga\u0111ali su se neo\u010dekivani skokovi u broju veza.<\/b>, me\u0111utim, nismo primijetili nikakvu korelaciju s dolaznim zahtjevima.<\/p>\n<p>Ovaj put \u010dvrsto smo odlu\u010dili prona\u0107i i otkloniti izvor problema, a ne ograni\u010diti se na ponovno pokretanje. U kodnoj bazi Quay <b>napravljene su promjene koje ograni\u010davaju broj veza s DB-om za svakog workera.<\/b> gevent. Taj broj postao je parametar u konfiguraciji: bilo je mogu\u0107e mijenjati ga 'u hodu', bez potrebe za ponovno sastavljanjem novog kontejnerskog identiteta. Kako bismo saznali koji broj veza se zapravo mo\u017ee obraditi, provedeni su brojne probe sa staging okru\u017eenjem, u kojima su postavljene razli\u010dite vrijednosti kako bi se vidjelo kako \u0107e to utjecati na scenarije testiranja optere\u0107enja. Na kraju je otkriveno da <b>Quay po\u010dinje isporu\u010divati gre\u0161ke 502 kada broj veza prema\u0161i 10 tisu\u0107a.<\/b><\/p>\n<p>Odmah smo implementirali ovu novu verziju u produkciji i po\u010deli pratiti grafikon veza na bazu podataka. U pro\u0161losti se baza zaklju\u010davala otprilike nakon 20 minuta. Nakon 30 minuta bez problema stekli smo nadu, a nakon sat vremena \u2014 sigurnost. Vratili smo promet za pisanje na stranici i zapo\u010deli postmortem analizu.<\/p>\n<p>Uspijev\u0161i zaobi\u0107i problem koji je vodio do zaklju\u010davanja, <b>nismo otkrili njene prave uzroke<\/b>. Potvr\u0111eno je da to nije povezano s bilo kakvim promjenama u OpenShift-u 4.3.19, budu\u0107i da se isto dogodilo i na verziji 4.3.18, koja je ranije radila s Quay bez ikakvih problema.<\/p>\n<p>U klasteru se o\u010dito skrivala ne\u0161to drugo.<\/p>\n<h2>Detaljna ispitivanja<\/h2>\n<p>\nQuay.io \u0161est godina koristio je zadane postavke za povezivanje s bazom podataka bez problema. \u0160to se promijenilo? Jasno je da je u me\u0111uvremenu promet na quay.io neprekidno rastao. U na\u0161em slu\u010daju \u010dini se kao da je postignuta odre\u0111ena prag vrijednost koja je poslu\u017eila kao okida\u010d za lavinu veza. Nastavili smo prou\u010davati logove baze podataka nakon drugog kvara, ali nismo prona\u0161li nikakvih obrazaca ili o\u010ditih povezanosti.<\/p>\n<p>U me\u0111uvremenu, SRE tim radio je na pobolj\u0161anju vidljivosti zahtjeva u Quayu i op\u0107em zdravlju usluge. <b>Postavljene su nove metrike i nadzorne plo\u010de<\/b>, pokazuju\u0107i koji dijelovi Quaya imaju najve\u0107i promet me\u0111u korisnicima.<\/p>\n<p>Quay.io normalno je radio do 9. lipnja. Ujutro (po EDT-u) ponovno smo svjedo\u010dili zna\u010dajnom porastu broja veza s bazom podataka. <b>Ovaj put do\u0161lo je do zastoja<\/b>, jer je nova postavka ograni\u010dila njihov broj i onemogu\u0107ila prekora\u010denje propusnosti MySQL-a. Me\u0111utim, tijekom otprilike pola sata mnogi korisnici su primijetili usporen rad quay.io. Brzo smo prikupili sve dostupne podatke, koriste\u0107i dodane alate za nadzor. Iznenada se pokazala povezanost.<\/p>\n<p><b>Prije samog skoka u broju veza, veliki broj zahtjeva stigao je na App Registry API<\/b>. App Registry je malo poznata funkcija quay.io. Omogu\u0107uje pohranu stvari poput Helm dijagrama i kontejnera s bogatim metapodacima. Ve\u0107ina korisnika quay.io ne koristi ovu funkciju, me\u0111utim, aktivno je koristi Red Hat OpenShift. OperatorHub unutar OpenShifta pohranjuje sve operatore u App Registry. Ti operatori \u010dine osnovu ekosustava radnih optere\u0107enja OpenShifta i operativnog modela (u okviru operacija 'drugog dana', Day 2) orijentiranog na partnere.<\/p>\n<p>Svaki OpenShift 4 klaster koristi operatore iz ugra\u0111enog OperatorHub-a za publikaciju kataloga operatora dostupnih za instalaciju i pru\u017eanje a\u017euriranja za ve\u0107 instalirane. S porastom popularnosti OpenShift 4 pove\u0107ao se i broj klastera na njemu \u0161irom svijeta. Svaki od tih klastera preuzima sadr\u017eaj operatora kako bi pokrenuo ugra\u0111eni OperatorHub, koriste\u0107i App Registry unutar quay.io kao backend. <b>U potrazi za izvorom problema, propustili smo da primijetimo da je s postepenim porastom popularnosti OpenShift pove\u0107an i pritisak na jednu od rijetko kori\u0161tenih funkcija quay.io.<\/b>.<\/p>\n<p>Proveli smo analizu prometa zahtjeva App Registry i zavirili u kod registra. Odmah su se pojavili nedostaci koji su uzrokovali neoptimalno formiranje zahtjeva prema bazi podataka. U uvjetima male optere\u0107enosti nisu stvarali nikakve probleme, no kada je optere\u0107enje raslo, postajali su izvor problema. App Registry imao je dva problemati\u010dna endpoint-a koja su lo\u0161e reagirala na pove\u0107ano optere\u0107enje: prvi je vra\u0107ao popis svih paketa u repozitoriju, a drugi je vra\u0107ao sve blob-ove za paket.<\/p>\n<h2>Uklanjanje uzroka<\/h2>\n<p>\nCijeli sljede\u0107i tjedan posvetili smo optimizaciji koda App Registry i njegovog okru\u017eenja. Preina\u010deni su o\u010digledno neu\u010dinkoviti SQL upiti, uklonjeni su suvi\u0161ni pozivi komandi (koji su se pokretali pri svakom va\u0111enju blobova), i dodano je ke\u0161iranje gdje god je to bilo mogu\u0107e. Nakon toga provedeno je opse\u017eno testiranje performansi i uspore\u0111ena je brzina rada App Registry prije i nakon promjena. <code>tar<\/code> (pokretala se pri svakom izdavanju blobova), dodano ke\u0161iranje gdje god je to mogu\u0107e. Zatim je provedeno opse\u017eno testiranje performansi i uspore\u0111ena brzina rada App Registry-a prije i nakon promjena.<\/p>\n<p><b>. Sljede\u0107eg tjedna implementirali smo promjene u produkciju, i od tada quay.io radi stabilno. U to vrijeme zabilje\u017eeni su nekoliko naglih porasta prometa na endpointu App Registry, ali u\u010dinjene nadogradnje sprije\u010dile su prekide u radu baze podataka.<\/b>. Sljede\u0107i tjedan implementirali smo promjene u produkciji, i od tada quay.io radi stabilno. Tijekom tog vremena zabilje\u017eeni su nekoliko naglih skokova prometa na endpointu App Registry-a, ali napravljena pobolj\u0161anja sprije\u010dila su prekide rada baze podataka.<\/p>\n<h2>Jasno je da svaka usluga nastoji izbje\u0107i zastoje. U na\u0161em slu\u010daju, vjerujemo da su nedavni problemi pomogli da quay.io postane bolji. Za sebe smo izvukli nekoliko klju\u010dnih lekcija koje \u017eelimo podijeliti:<\/h2>\n<p>\nPodaci o tome tko i kako koristi va\u0161u uslugu nikada nisu suvi\u0161ni.<\/p>\n<ol>\n<li> <b>Kako je Quay \u00absamo radio\u00bb, nikada nismo imali potrebu tro\u0161iti vrijeme na optimizaciju prometa i upravljanje optere\u0107enjem. Sve to stvorilo je la\u017eni osje\u0107aj sigurnosti da se usluga mo\u017ee skalirati neograni\u010deno.<\/b>Kada usluga padne,<\/li>\n<li> obnova njenog rada je glavni prioritet. <b>obnova njegovog rada je na\u0161 glavni prioritet<\/b>. Budu\u0107i da je Quay nastavio trpjeti od blokirane baze podataka tijekom prvog kvara, na\u0161i standardni postupci nisu imali planirani u\u010dinak i nismo uspjeli obnoviti rad usluge njihovom pomo\u0107i. To je dovelo do situacije u kojoj je bilo potrebno provesti vrijeme analiziraju\u0107i i prikupljaju\u0107i podatke u nadi da \u0107emo prona\u0107i uzrok \u2014 umjesto da usmjerimo sve napore na obnavljanje funkcionalnosti.<\/li>\n<li> <b>Procijenite utjecaj svake funkcije usluge<\/b>. Klijenti rijetko koriste App Registry, stoga nije bio prioritet za na\u0161 tim. Kada se neke funkcije proizvoda gotovo uop\u0107e ne koriste, njihovi bugovi se rje\u0111e 'otkrivaju', a programeri prestaju pratiti kod. Lako je postati \u017ertva zablude da to tako treba biti \u2014 dok iznenada ta funkcija ne postane u sredi\u0161tu velikog incidenta.<\/li>\n<\/ol>\n<p><\/p>\n<h2>\u0160to dalje?<\/h2>\n<p>\nRad na osiguranju stabilnosti usluge nikada ne prestaje i stalno je pobolj\u0161avamo. Obujmi prometa na quay.io i dalje rastu, a mi smo svjesni da moramo u\u010diniti sve \u0161to je mogu\u0107e kako bismo opravdali povjerenje klijenata. Stoga trenutno radimo na sljede\u0107im zadacima:<\/p>\n<ol>\n<li> Implementacija replikacija baza podataka samo za \u010ditanje, kako bi se pomoglo usluzi da obradi odgovaraju\u0107i promet u slu\u010daju problema s glavnim primjerkom RDS-a.<\/li>\n<li> A\u017euriranje primjerka RDS-a. Trenutna verzija sama po sebi nije problem. Umjesto toga, jednostavno \u017eelimo ukloniti la\u017eni trag (koji smo slijedili tijekom kvara); odr\u017eavanje softvera a\u017eurnim omogu\u0107it \u0107e uklanjanje jo\u0161 jednog faktora za budu\u0107a isklju\u010denja.<\/li>\n<li> Dodatno cacheiranje u cijelom klasteru. Nastavljamo tra\u017eiti podru\u010dja u kojima cacheiranje mo\u017ee smanjiti optere\u0107enje na bazi podataka.<\/li>\n<li> Dodavanje vatrozida aplikacija (WAF), kako bismo vidjeli tko i za\u0161to pristupa quay.io.<\/li>\n<li> Po\u010dev\u0161i od sljede\u0107e verzije, klasteri Red Hat OpenShift odustaju od App Registry u korist kataloga operatora (Operator Catalogs), koji se temelje na slikama kontejnera dostupnim na quay.io.<\/li>\n<li> Dugoro\u010dna zamjena za App Registry mogla bi biti podr\u0161ka specifikacijama artefakata Open Container Initiative (OCI). Trenutno je implementirana kao izvorna funkcionalnost Quay i bit \u0107e dostupna korisnicima kada se sama specifikacija kona\u010dno usuglasi.<\/li>\n<\/ol>\n<p>\nSve navedeno dio je kontinuiranih ulaganja Red Hata u quay.io dok prelazimo iz male \"startupa\" ekipe u zrelu platformu koju upravlja SRE. Svjesni smo da mnogi na\u0161i klijenti ovise o quay.io u svom svakodnevnom radu (uklju\u010duju\u0107i i Red Hat!) i trudimo se biti \u0161to otvoreniji u vezi s nedavnim neuspjesima i stalnim naporima da postanemo bolji.<\/p>\n<h2>P.S. od prevodioca<\/h2>\n<p>\nPro\u010ditajte i na na\u0161em blogu:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/news\/t\/475716\/\/\">Red Hat je otvorio kod registra za slike kontejnera od CoreOS-a \u2014 Quay<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/510486\/\">Prakti\u010dne pri\u010de iz na\u0161eg SRE svakodnevnog \u017eivota. Dio 2<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/461807\/\">Kako su prioriteti podova u Kubernetesu uzrokovali prekid u Grafana Labs<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/515932\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0430\u0432\u0433\u0443\u0441\u0442\u0430 Red Hat \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0430 \u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u043c\u0435\u0441\u044f\u0446\u044b \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0435\u0451 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 Quay.io (\u0432 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0435 \u2014 \u0440\u0435\u0435\u0441\u0442\u0440 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u0434\u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u043e\u043a\u0443\u043f\u043a\u043e\u0439 CoreOS). \u0412\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0432 \u044d\u0442\u043e\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0435 \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0432\u043e\u043c, \u043f\u043e\u0443\u0447\u0438\u0442\u0435\u043b\u0435\u043d \u0441\u0430\u043c \u043f\u0443\u0442\u044c, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0440\u043e\u0448\u043b\u0438 SRE-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":92074,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-92073","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.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c.\" \/>\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\/hr\/blog\/administrirovanie\/post-mortem-po-nedostupnosti-quay-io\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\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\udd47Post Mortem \u043f\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 Quay.io | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/post-mortem-po-nedostupnosti-quay-io\" \/>\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-08-22T17:41:56+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-22T17:41:56+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\udd47Post Mortem o nedostupnosti Quay.io | ProHoster","description":"Prim.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/post-mortem-po-nedostupnosti-quay-io","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","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\udd47Post Mortem \u043f\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 Quay.io | ProHoster","og:description":"\u041f\u0440\u0438\u043c.","og:url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/post-mortem-po-nedostupnosti-quay-io","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-08-22T17:41:56+00:00","article:modified_time":"2020-08-22T17:41:56+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"92073","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 12:15:36","updated":"2022-10-02 22:37:13","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/92073","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=92073"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/92073\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/92074"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=92073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=92073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=92073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}