{"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\/de\/blog\/administrirovanie\/post-mortem-po-nedostupnosti-quay-io","title":{"rendered":"Post Mortem zur Erreichbarkeit von Quay.io","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Anmerkung des \u00dcbersetzers.<\/b>: Anfang August hat Red Hat \u00f6ffentlich \u00fcber die L\u00f6sungen f\u00fcr die Verf\u00fcgbarkeitsprobleme berichtet, die in den Monaten zuvor bei den Nutzern ihres Dienstes aufgetreten sind. <noindex><a rel=\"nofollow\" href=\"http:\/\/quay.io\/\">Quay.io<\/a><\/noindex> (basierend auf einem Container-Image-Registry, das das Unternehmen mit dem Kauf von CoreOS \u00fcbernommen hat). Unabh\u00e4ngig von Ihrem Interesse an diesem Dienst ist der Weg, den die SRE-Ingenieure des Unternehmens zur Diagnose und Behebung der Ursachen des Ausfalls gegangen sind, lehrreich.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Post Mortem zur Erreichbarkeit von Quay.io\" src=\"\/wp-content\/uploads\/2020\/08\/67ef7fddee25448ae68ae7f4700bb25b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAm 19. Mai, fr\u00fch am Morgen (nach nordamerikanischer Sommerzeit, EDT), ist der Dienst quay.io ausgefallen. Der Ausfall betraf sowohl die Nutzer von quay.io als auch Open-Source-Projekte, die quay.io als Plattform f\u00fcr den Bau und die Verbreitung von Software verwenden. Red Hat legt gro\u00dfen Wert auf das Vertrauen beider Gruppen.<\/p>\n<p>Das Team der SRE-Ingenieure setzte sofort alles daran, den Service Quay so schnell wie m\u00f6glich wieder stabil zu machen. W\u00e4hrend sie daran arbeiteten, konnten die Kunden jedoch keine neuen Images pushen und nur sporadisch bestehende pullen. Aus unbekannten Gr\u00fcnden wurde die Datenbank von quay.io nach der Skalierung des Dienstes auf volle Leistung blockiert.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>\u00ab<b>Was hat sich ge\u00e4ndert?<\/b>\u00bb \u2014 das ist die erste Frage, die in solchen F\u00e4llen gestellt wird. Wir haben festgestellt, dass kurz vor dem Problem der OpenShift Dedicated-Cluster (auf dem quay.io l\u00e4uft) mit dem Update auf Version 4.3.19 begann. Da quay.io auf Red Hat OpenShift Dedicated (OSD) l\u00e4uft, waren regelm\u00e4\u00dfige Updates eine allt\u00e4gliche Operation und f\u00fchrten nie zu Problemen. Dar\u00fcber hinaus haben wir in den vergangenen sechs Monaten mehrere Cluster-Updates bei Quay durchgef\u00fchrt, ohne dass es zu Wartungsunterbrechungen kam.<\/p>\n<p>W\u00e4hrend wir versuchten, den Dienst wiederherzustellen, begannen andere Ingenieure mit der Vorbereitung eines neuen OSD-Clusters mit der vorherigen Softwareversion, um im Ernstfall alles darauf zu implementieren.<\/p>\n<h2>Ursachenanalyse<\/h2>\n<p>\nDas Hauptsymptom des Ausfalls war eine Welle von zehntausenden Verbindungen zur Datenbank, wodurch die MySQL-Instanz faktisch nicht mehr funktionsf\u00e4hig war. Dies erschwerte die Diagnose des Problems. Wir haben die maximale Anzahl von Verbindungen von Clients begrenzt, um dem SRE-Team zu helfen, das Problem zu bewerten. Es wurde kein ungew\u00f6hnlicher Datenverkehr zur Datenbank festgestellt: Tats\u00e4chlich waren die meisten Anfragen Leseanfragen, und nur wenige waren Schreibanfragen.<\/p>\n<p>Wir haben auch versucht, ein Muster im DB-Verkehr zu ermitteln, das diese Flut verursachen k\u00f6nnte. Allerdings konnten wir in den Protokollen keine Muster finden. In Erwartung der Fertigstellung des neuen Clusters mit OSD 4.3.18 haben wir weiterhin versucht, die Pods von quay.io zu starten. Jedes Mal, wenn das Cluster seine volle Kapazit\u00e4t erreichte, hing die Datenbank. Das bedeutete, dass es notwendig war, die RDS-Instanz zus\u00e4tzlich zu allen Pods von quay.io neu zu starten.<\/p>\n<p>Bis zum Abend stabilisierten wir den Dienst im Nur-Lesen-Modus und schalteten m\u00f6glichst viele unwesentlichen Funktionen (wie das Aufr\u00e4umen im Namensraum) ab, um die Belastung der Datenbank zu verringern. Die H\u00e4nger h\u00f6rten auf, <b>aber der Grund wurde nicht gefunden<\/b>. Der neue OSD-Cluster war bereit, und wir migrierten den Dienst, schlossen den Verkehr an und setzten die \u00dcberwachung fort.<\/p>\n<p>Quay.io lief stabil auf dem neuen OSD-Cluster, also haben wir die Datenbank-Logs wieder \u00fcberpr\u00fcft, konnten aber keine Korrelation finden, die die Sperrungen erkl\u00e4rte. Die Ingenieure von OpenShift arbeiteten mit uns zusammen, um zu verstehen, ob \u00c4nderungen in Red Hat OpenShift 4.3.19 Probleme mit Quay verursacht haben k\u00f6nnten. Doch es wurde nichts festgestellt und <b>es war nicht m\u00f6glich, das Problem im Labor zu reproduzieren<\/b>.<\/p>\n<h2>Der zweite Ausfall<\/h2>\n<p>\nAm 28. Mai, kurz vor Mittag EDT, fiel quay.io erneut mit demselben Symptom aus: die Funktion der Datenbank wurde blockiert. Und wieder versammelten wir alle Kr\u00e4fte f\u00fcr die Untersuchung. Zuerst musste der Dienst wiederhergestellt werden. Allerdings <b>In diesem Fall f\u00fchrten der Neustart von RDS und das Neustarten der Pods von quay.io zu nichts.<\/b>: eine weitere Welle von Verbindungen \u00fcberkam die Datenbank. Aber warum?<\/p>\n<p>Quay ist in Python geschrieben, und jeder Pod funktioniert als ein einziger monolithischer Container. Im Container-Execution-Umfeld werden gleichzeitig viele parallele Aufgaben ausgef\u00fchrt. Wir verwenden die Bibliothek <code>gevent<\/code> unter <code>gunicorn<\/code> zur Verarbeitung von Webanfragen. Wenn eine Anfrage an Quay gesendet wird (\u00fcber unsere eigene API oder \u00fcber die Docker-API), wird ihr ein gevent-Worker zugewiesen. Normalerweise sollte dieser Worker mit der Datenbank verbunden werden. Nach dem ersten Ausfall stellten wir fest, dass sich die gevent-Worker mit der Datenbank unter Verwendung der Standardeinstellungen verbanden.<\/p>\n<p>Angesichts der erheblichen Anzahl an Quay-Pods und Tausenden von Anfragen pro Sekunde k\u00f6nnte eine gro\u00dfe Anzahl von Verbindungen zur Datenbank theoretisch die MySQL-Instanz \u00fcberlasten. Durch das Monitoring war bekannt, dass Quay im Durchschnitt 5000 Anfragen pro Sekunde bearbeitet. Etwa ebenso hoch war die Anzahl der Verbindungen zur Datenbank. 5000 Verbindungen lagen noch innerhalb der Kapazit\u00e4ten unserer RDS-Instanz (was man nicht \u00fcber Zehntausende sagen kann). <b>Aus irgendeinem Grund gab es unerwartete Spitzen bei der Anzahl der Verbindungen.<\/b>, aber wir bemerkten keine Korrelation mit den eingehenden Anfragen.<\/p>\n<p>Diesmal haben wir uns entschieden, die Quelle des Problems zu finden und zu beheben, anstatt nur einen Neustart durchzuf\u00fchren. In den Quellcode von Quay <b>Es wurden \u00c4nderungen vorgenommen, die die Anzahl der Datenbankverbindungen f\u00fcr jeden Worker begrenzen.<\/b> gevent beschr\u00e4nken. Diese Anzahl wurde zu einem Parameter in der Konfiguration: Es war m\u00f6glich, sie \u201eon-the-fly\u201c zu \u00e4ndern, ohne ein neues Container-Image erstellen zu m\u00fcssen. Um herauszufinden, wie viele Verbindungen tats\u00e4chlich verarbeitet werden k\u00f6nnen, wurden mehrere Tests mit einer Staging-Umgebung durchgef\u00fchrt, bei denen verschiedene Werte festgelegt wurden, um zu sehen, wie sich das auf die Lasttestszenarien auswirkt. Letztendlich stellte sich heraus, dass <b>Quay beginnt, 502-Fehler auszugeben, wenn die Anzahl der Verbindungen 10.000 \u00fcberschreitet.<\/b><\/p>\n<p>Wir haben sofort diese neue Version in der Produktion bereitgestellt und die Verbindungsgrafik zur Datenbank \u00fcberwacht. In der Vergangenheit war die Datenbank etwa 20 Minuten nach dem Start blockiert. Nach 30 problemlosen Minuten hatten wir Hoffnung, und nach einer Stunde hatten wir Gewissheit. Wir haben den Schreibtraffic auf der Website wiederhergestellt und mit der Post-Mortem-Analyse begonnen.<\/p>\n<p>Indem wir das Problem, das zur Blockierung f\u00fchrte, umgingen, <b>konnten wir die wahren Ursachen nicht kl\u00e4ren.<\/b>Es stellte sich heraus, dass es nicht mit \u00c4nderungen in OpenShift 4.3.19 zusammenh\u00e4ngt, da dasselbe auch in der Version 4.3.18 aufgetreten ist, die zuvor ohne Probleme mit Quay funktionierte.<\/p>\n<p>Im Cluster verbarg sich offensichtlich etwas anderes.<\/p>\n<h2>Eine detaillierte Untersuchung<\/h2>\n<p>\nQuay.io hat sechs Jahre lang die Standardkonfiguration zur Verbindung mit der Datenbank ohne Probleme genutzt. Was hat sich ge\u00e4ndert? Es ist klar, dass der Verkehr auf quay.io in dieser Zeit st\u00e4ndig zugenommen hat. In unserem Fall schien es, als ob ein gewisser Schwellenwert erreicht wurde, der einen Ansto\u00df zu einer Flut von Verbindungen gab. Wir haben die Datenbankprotokolle nach dem zweiten Ausfall weiterhin untersucht, konnten jedoch keine Muster oder offensichtlichen Zusammenh\u00e4nge feststellen.<\/p>\n<p>W\u00e4hrenddessen hat das SRE-Team an Verbesserungen der Sichtbarkeit von Anfragen in Quay und der allgemeinen Gesundheit des Dienstes gearbeitet. <b>Es wurden neue Metriken und Dashboards bereitgestellt<\/b>, die zeigen, welche Teile von Quay bei den Kunden am meisten gefragt sind.<\/p>\n<p>Quay.io funktionierte bis zum 9. Juni normal. Am Morgen (EDT) waren wir erneut Zeugen eines signifikanten Anstiegs der Verbindungen zur Datenbank. <b>Diesmal gab es keine Ausfallzeiten<\/b>, da ein neuer Parameter ihre Anzahl begrenzte und es nicht erlaubte, die Kapazit\u00e4t von MySQL zu \u00fcberschreiten. Allerdings berichteten viele Nutzer etwa eine halbe Stunde lang von einer langsamen Leistung von quay.io. Wir haben schnell alle verf\u00fcgbaren Daten gesammelt und die hinzugef\u00fcgten \u00dcberwachungswerkzeuge genutzt. Pl\u00f6tzlich trat ein Muster zutage.<\/p>\n<p><b>Vor dem Anstieg der Verbindungen gab es eine gro\u00dfe Anzahl von Anfragen an die App Registry API<\/b>. Die App Registry ist eine wenig bekannte Funktion von quay.io. Sie erm\u00f6glicht das Speichern von Dingen wie Helm-Charts und Containern mit reichhaltigen Metadaten. Die meisten Nutzer von quay.io arbeiten nicht mit dieser Funktion, sie wird jedoch aktiv von Red Hat OpenShift genutzt. OperatorHub innerhalb von OpenShift speichert alle Operatoren in der App Registry. Diese Operatoren sind die Grundlage f\u00fcr das \u00d6kosystem von Arbeitslasten in OpenShift und das auf Partner ausgerichtete Betriebsmodell (im Rahmen der zweitagen Aktivit\u00e4ten, Day 2).<\/p>\n<p>Jeder OpenShift 4-Cluster verwendet Operatoren aus dem integrierten OperatorHub, um einen Katalog von Operatoren bereitzustellen, die installiert werden k\u00f6nnen, sowie Updates f\u00fcr bereits installierte Operatoren bereitzustellen. Mit der zunehmenden Beliebtheit von OpenShift 4 stieg auch die Anzahl der Cluster weltweit. Jeder dieser Cluster l\u00e4dt den Inhalt der Operatoren herunter, um den integrierten OperatorHub zu starten, wobei das App-Registry innerhalb von quay.io als Backend dient. <b>Auf der Suche nach der Ursache des Problems haben wir \u00fcbersehen, dass mit dem allm\u00e4hlichen Anstieg der Beliebtheit von OpenShift auch die Last auf eine der selten verwendeten Funktionen von quay.io zunahm.<\/b>.<\/p>\n<p>Wir haben eine Analyse des Anfragetraffics der App-Registry durchgef\u00fchrt und in den Code des Registrys geschaut. Sofort wurden Schw\u00e4chen offensichtlich, die dazu f\u00fchrten, dass Datenbankanfragen suboptimal gebildet wurden. Bei geringer Last stellten sie kein Problem dar, aber bei steigender Last wurden sie zu einer Quelle von Problemen. Die App-Registry hatte zwei problematische Endpunkte, die schlecht auf die Lastanstiege reagierten: Der erste gab eine Liste aller Pakete im Repository aus, der zweite gab alle Blobs f\u00fcr ein Paket zur\u00fcck.<\/p>\n<h2>Ursachenbeseitigung<\/h2>\n<p>\nDie gesamte n\u00e4chste Woche verbrachten wir mit der Optimierung des Codes des App Registrys und seiner Umgebung. Offensichtlich ineffiziente SQL-Abfragen wurden \u00fcberarbeitet, unn\u00f6tige Befehlsaufrufe beseitigt, <code>tar<\/code> (Sie wurde bei jedem Auszug von Blobs ausgef\u00fchrt), Caching wurde \u00fcberall hinzugef\u00fcgt, wo es m\u00f6glich war. Anschlie\u00dfend wurde umfangreiches Leistungstest durchgef\u00fchrt und die Geschwindigkeit des App Registry vor und nach den \u00c4nderungen verglichen.<\/p>\n<p><b>API-Anfragen, die zuvor bis zu eine halbe Minute in Anspruch nahmen, wurden nun in Millisekunden ausgef\u00fchrt.<\/b>. In der n\u00e4chsten Woche haben wir die \u00c4nderungen in der Produktion ausgerollt, und seitdem funktioniert quay.io stabil. In dieser Zeit gab es mehrere pl\u00f6tzliche Spitzen im Traffic am Endpoint des App Registry, aber die vorgenommenen Verbesserungen verhinderten Unterbrechungen in der Datenbank.<\/p>\n<h2>Was haben wir gelernt?<\/h2>\n<p>\nEs ist klar, dass jeder Dienst bestrebt ist, Ausfallzeiten zu vermeiden. In unserem Fall glauben wir, dass die k\u00fcrzlichen Ausf\u00e4lle dazu beigetragen haben, quay.io zu verbessern. Wir haben einige grundlegende Lektionen gelernt, die wir teilen m\u00f6chten:<\/p>\n<ol>\n<li> <b>Daten dar\u00fcber, wer und wie Ihr Dienst genutzt wird, sind niemals \u00fcberfl\u00fcssig.<\/b>Da Quay \u201eeinfach funktionierte\u201c, hatten wir nie das Bed\u00fcrfnis, Zeit mit der Optimierung des Verkehrs und dem Lastmanagement zu verbringen. Das erzeugte ein falsches Gef\u00fchl der Sicherheit, dass der Dienst unbegrenzt skalierbar sei.<\/li>\n<li> Wenn ein Dienst ausf\u00e4llt, <b>ist die Wiederherstellung seiner Funktionst\u00fcchtigkeit die h\u00f6chste Priorit\u00e4t.<\/b>. Da Quay w\u00e4hrend des ersten Ausfalls weiterhin unter einer blockierten Datenbank litt, hatten unsere Standardverfahren nicht den gew\u00fcnschten Effekt und wir konnten den Dienst mit deren Hilfe nicht wiederherstellen. Dies f\u00fchrte zu einer Situation, in der Zeit f\u00fcr die Analyse und Datensammlung aufgewendet werden musste, in der Hoffnung, die Ursache zu finden \u2014 anstatt all unsere Anstrengungen auf die Wiederherstellung der Funktionsf\u00e4higkeit zu konzentrieren.<\/li>\n<li> <b>Bewerten Sie die Auswirkungen jeder Funktion des Dienstes<\/b>. Kunden haben das App-Registry selten genutzt, sodass es f\u00fcr unser Team keine Priorit\u00e4t hatte. Wenn bestimmte Funktionen eines Produkts kaum benutzt werden, treten ihre Bugs selten auf und die Entwickler h\u00f6ren auf, den Code zu \u00fcberwachen. Es ist leicht, dem Missverst\u00e4ndnis zu erliegen, dass es so sein sollte \u2014 bis pl\u00f6tzlich diese Funktion im Mittelpunkt eines gro\u00dfangelegten Vorfalls steht.<\/li>\n<\/ol>\n<p><\/p>\n<h2>Was folgt jetzt?<\/h2>\n<p>\nDie Arbeit an der Stabilit\u00e4t des Dienstes h\u00f6rt niemals auf, und wir verbessern ihn st\u00e4ndig. Die Verkehrsmengen auf quay.io wachsen weiter, und wir sind uns bewusst, dass wir alles tun m\u00fcssen, um das Vertrauen unserer Kunden zu rechtfertigen. Daher arbeiten wir derzeit an den folgenden Aufgaben:<\/p>\n<ol>\n<li> Bereitstellung von nur-lesenden Datenbank-Replikaten, um dem Dienst zu helfen, den entsprechenden Verkehr im Falle von Problemen mit der Hauptinstanz RDS zu bew\u00e4ltigen.<\/li>\n<li> Aktualisierung der RDS-Instanz. Die aktuelle Version ist an sich kein Problem. Vielmehr m\u00f6chten wir einfach die falsche Spur beseitigen (die wir w\u00e4hrend des Ausfalls verfolgt haben); die Software aktuell zu halten, wird einen weiteren Faktor im Falle zuk\u00fcnftiger Ausf\u00e4lle ausschlie\u00dfen.<\/li>\n<li> Zus\u00e4tzliches Caching im gesamten Cluster. Wir suchen weiterhin nach Bereichen, in denen Caching dazu beitragen kann, die Last auf die Datenbank zu reduzieren.<\/li>\n<li> Hinzuf\u00fcgung einer Webanwendungs-Firewall (WAF), um zu sehen, wer und warum sich mit quay.io verbindet.<\/li>\n<li> Ab dem n\u00e4chsten Release werden die Red Hat OpenShift-Cluster auf App Registry verzichten zugunsten von Operator-Katalogen, die auf Container-Images basieren, die auf quay.io verf\u00fcgbar sind.<\/li>\n<li> Eine langfristige Alternative zur App Registry k\u00f6nnte die Unterst\u00fctzung der Spezifikationen der Open Container Initiative (OCI) sein. Diese wird derzeit als native Funktion von Quay implementiert und wird Benutzern zur Verf\u00fcgung stehen, sobald die Spezifikation endg\u00fcltig vereinbart ist.<\/li>\n<\/ol>\n<p>\nAlle oben genannten Punkte sind Teil der fortlaufenden Investitionen von Red Hat in quay.io, w\u00e4hrend wir von einem kleinen, \u201estart-up-\u00e4hnlichen\u201c Team zu einer ausgereiften Plattform \u00fcbergehen, die von SRE verwaltet wird. Wir wissen, dass viele unserer Kunden, einschlie\u00dflich Red Hat, auf quay.io in ihrem t\u00e4glichen Betrieb angewiesen sind und bem\u00fchen uns, so transparent wie m\u00f6glich in Bezug auf k\u00fcrzliche Ausf\u00e4lle und unsere anhaltenden Bem\u00fchungen, uns zu verbessern, zu sein.<\/p>\n<h2>P.S. vom \u00dcbersetzer<\/h2>\n<p>\nLesen Sie auch in unserem Blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/news\/t\/475716\/\/\">Red Hat hat den Code des Registrys f\u00fcr Container-Images von CoreOS \u2013 Quay \u2013 ge\u00f6ffnet.<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/510486\/\">Praktische Geschichten aus unserem SRE-Alltag. Teil 2<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/461807\/\">Wie die Priorit\u00e4ten von Pods in Kubernetes zu Ausfallzeiten bei Grafana Labs f\u00fchrten<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Quelle: <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.1.1 - 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\/de\/blog\/administrirovanie\/post-mortem-po-nedostupnosti-quay-io\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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 zur Nichterreichbarkeit von Quay.io | ProHoster","description":"z.B.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/post-mortem-po-nedostupnosti-quay-io","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/92073","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=92073"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/92073\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/92074"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=92073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=92073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=92073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}