{"id":77693,"date":"2020-04-13T01:42:39","date_gmt":"2020-04-12T23:42:39","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes"},"modified":"2020-04-13T01:42:39","modified_gmt":"2020-04-12T23:42:39","slug":"cpu-limity-i-agressivnyj-trottling-v-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes","title":{"rendered":"CPU-Limits und aggressive Drosselung in Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Hinweis.<\/b>: Diese lehrreiche Geschichte von Omio \u2013 dem europ\u00e4ischen Reiseaggregator \u2013 f\u00fchrt die Leser von den grundlegenden Theorien zu spannenden praktischen Feinheiten in der Kubernetes-Konfiguration. Solche Fallstudien erweitern nicht nur den Horizont, sondern helfen auch, unauff\u00e4llige Probleme zu vermeiden.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"CPU-Limits und aggressive Drosselung in Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/1175c9df746e43b5a7d81476164929db.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHaben Sie schon einmal erlebt, dass eine Anwendung \u00abeingefroren\u00bb ist, nicht mehr auf Statusanfragen (Health Checks) reagiert hat und Sie nicht verstehen konnten, warum? Eine m\u00f6gliche Erkl\u00e4rung h\u00e4ngt mit dem Limit der CPU-Ressourcenzuteilung zusammen. Darum wird es in diesem Artikel gehen.<\/p>\n<p><b>TL;DR:<br \/>\nWir empfehlen dringend, die CPU-Limits in Kubernetes abzulehnen (oder die CFS-Quoten im Kubelet zu deaktivieren), wenn eine Linux-Kernel-Version mit einem CFS-Quota-Fehler verwendet wird. Im Kernel <noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.kernel.org\/show_bug.cgi?id=198197\">Wir haben<\/a><\/noindex> Es handelt sich um einen <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/67577\">bekannten<\/a><\/noindex> Fehler, der zu \u00fcberm\u00e4\u00dfigem Throttling und Verz\u00f6gerungen f\u00fchrt.<\/b>.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Bei Omio <b>wird die gesamte Infrastruktur von Kubernetes verwaltet.<\/b>. Alle unsere stateful- und stateless-Lasten laufen ausschlie\u00dflich auf Kubernetes (wir nutzen Google Kubernetes Engine). In den letzten sechs Monaten haben wir zuf\u00e4llige Leistungsprobleme beobachtet. Anwendungen h\u00e4ngen oder reagieren nicht mehr auf Health Checks, verlieren die Netzwerkanbindung usw. Dieses Verhalten hat uns lange Zeit ratlos gemacht, und schlie\u00dflich haben wir beschlossen, das Problem intensiver zu behandeln.<\/p>\n<p>Kurzzusammenfassung des Artikels:<\/p>\n<ul>\n<li> Einige Worte \u00fcber Container und Kubernetes;<\/li>\n<li> Wie CPU-Anforderungen und -Limits implementiert sind;<\/li>\n<li> Wie das CPU-Limit in Umgebungen mit mehreren Kernen funktioniert;<\/li>\n<li> Wie man das CPU-Throttling \u00fcberwacht;<\/li>\n<li> Die L\u00f6sung des Problems und wichtige Details.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Einige Worte \u00fcber Container und Kubernetes<\/h2>\n<p>\nKubernetes ist im Grunde der moderne Standard in der Infrastrukturwelt. Seine Hauptaufgabe ist die Orchestrierung von Containern.<\/p>\n<h3>Container<\/h3>\n<p>\nFr\u00fcher mussten wir Artefakte wie Java JARs\/WARs, Python Eggs oder ausf\u00fchrbare Dateien erstellen, um sie anschlie\u00dfend auf Servern auszuf\u00fchren. Um sie zum Laufen zu bringen, war jedoch zus\u00e4tzliche Arbeit erforderlich: die Runtime-Umgebung (Java\/Python) einzurichten, die notwendigen Dateien an den richtigen Orten zu platzieren, die Kompatibilit\u00e4t mit einer bestimmten Betriebssystemversion sicherzustellen usw. Mit anderen Worten, die Konfigurationsverwaltung erforderte viel Aufmerksamkeit, was oft zu Spannungen zwischen Entwicklern und Systemadministratoren f\u00fchrte.<\/p>\n<p><b>Container haben alles ver\u00e4ndert.<\/b> Heute ist das Artefakt ein Container-Image. Man kann sich das wie eine erweiterte ausf\u00fchrbare Datei vorstellen, die nicht nur das Programm, sondern auch eine vollst\u00e4ndige Ausf\u00fchrungsumgebung (Java\/Python\/\u2026) sowie die notwendigen Dateien\/Pakete enth\u00e4lt, die vorinstalliert und bereit zum Starten sind. Container k\u00f6nnen auf verschiedenen Servern bereitgestellt und ausgef\u00fchrt werden, ohne dass zus\u00e4tzliche Ma\u00dfnahmen erforderlich sind.<\/p>\n<p>Dar\u00fcber hinaus arbeiten Container in einer eigenen Sandbox-Umgebung. Jeder Container verf\u00fcgt \u00fcber einen eigenen virtuellen Netzwerkadapter, ein eigenes Dateisystem mit eingeschr\u00e4nktem Zugriff, eine eigene Prozesshierarchie, spezifische CPU- und RAM-Beschr\u00e4nkungen usw. Dies wird durch ein besonderes Subsystem des Linux-Kernels, die Namespaces, realisiert.<\/p>\n<h3>Kubernetes<\/h3>\n<p>\nWie bereits erw\u00e4hnt, ist Kubernetes ein Container-Orchestrator. Er funktioniert folgenderma\u00dfen: Sie stellen ihm einen Pool von Maschinen zur Verf\u00fcgung und sagen dann: 'Hey, Kubernetes, starte zehn Instanzen meines Containers mit 2 Prozessoren und 3 GB RAM pro Instanz und halte sie am Laufen!'. Kubernetes k\u00fcmmert sich um den Rest. Er findet freie Kapazit\u00e4ten, startet die Container und startet sie bei Bedarf neu, f\u00fchrt Upgrades bei Versionswechsel durch usw. Im Wesentlichen erm\u00f6glicht Kubernetes die Abstraktion von der Hardware und macht alle Arten von Systemen f\u00fcr die Bereitstellung und Ausf\u00fchrung von Anwendungen geeignet.<\/p>\n<p><img decoding=\"async\" alt=\"CPU-Limits und aggressive Drosselung in Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/6509bb1b66a4a0f5e9a479d0bd6ececb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kubernetes aus der Sicht des Durchschnittsnutzers<\/i><\/p>\n<h2>Was sind Requests und Limits in Kubernetes<\/h2>\n<p>\nOkay, wir haben uns mit Containern und Kubernetes besch\u00e4ftigt. Wir wissen auch, dass mehrere Container auf einer Maschine laufen k\u00f6nnen.<\/p>\n<p>Man kann dies mit einer Wohngemeinschaft vergleichen. Ein ger\u00e4umiger Raum (Maschinen\/Knoten) wird an mehrere Mieter (Container) vermietet. Kubernetes agiert dabei als Immobilienmakler. Die Frage ist, wie man Konflikte zwischen den Mietern vermeiden kann? Was passiert, wenn einer von ihnen beschlie\u00dft, das Badezimmer f\u00fcr einen halben Tag in Beschlag zu nehmen?<\/p>\n<p>Hier kommen Requests und Limits ins Spiel. CPU <b>Request<\/b> dient ausschlie\u00dflich der Planung. Es ist so etwas wie eine \"Wunschliste\" des Containers und wird verwendet, um den geeignetsten Knoten auszuw\u00e4hlen. Gleichzeitig <b>Limit<\/b> kann man mit einem Mietvertrag vergleichen \u2014 sobald wir einen Knoten f\u00fcr den Container ausgew\u00e4hlt haben, <b>kann dieser<\/b> die festgelegten Grenzen nicht \u00fcberschreiten. Und hier entsteht das Problem\u2026<\/p>\n<h3>Wie Requests und Limits in Kubernetes implementiert sind<\/h3>\n<p>\nKubernetes nutzt einen im Kernel integrierten Drosselungsmechanismus, um CPU-Limits umzusetzen. \u00dcberschreitet eine Anwendung das Limit, wird das Drosseln aktiviert (d.h. sie erh\u00e4lt weniger CPU-Zyklen). Anfragen und Limits f\u00fcr den Arbeitsspeicher sind anders organisiert, weshalb sie leichter zu erkennen sind. Es gen\u00fcgt, den letzten Status des Pod-Neustarts zu \u00fcberpr\u00fcfen: Ist er nicht \u201eOOMKilled\u201c. Bei der CPU-Drosselung ist es nicht so einfach, da K8s nur Metriken zur Nutzung, nicht aber zu cgroups verf\u00fcgbar macht.<\/p>\n<h4>CPU-Anfrage<\/h4>\n<p>\n<img decoding=\"async\" alt=\"CPU-Limits und aggressive Drosselung in Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/fbc8bf3f775ffd9513374ce94b20535d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Wie die CPU-Anfrage umgesetzt wird<\/i><\/p>\n<p>Zur Vereinfachung betrachten wir den Prozess anhand eines Beispiels mit einer Maschine mit einem 4-Kern-CPU.<\/p>\n<p>K8s verwendet einen Mechanismus f\u00fcr Kontrollgruppen (cgroups), um die Verteilung von Ressourcen (Speicher und Prozessor) zu steuern. Es steht ein hierarchisches Modell zur Verf\u00fcgung: Ein Nachkomme erbt die Limits der \u00fcbergeordneten Gruppe. Die Details der Verteilung werden im virtuellen Dateisystem gespeichert (<code>\/sys\/fs\/cgroup<\/code>). Im Falle des Prozessors ist das <code>\/sys\/fs\/cgroup\/cpu,cpuacct\/*<\/code>.<\/p>\n<p>K8s verwendet die Datei <code>cpu.share<\/code> zur Verteilung von CPU-Ressourcen. In unserem Fall erh\u00e4lt die Root-Control-Gruppe 4096 Anteile der CPU-Ressourcen \u2013 100% der verf\u00fcgbaren Prozessorkapazit\u00e4t (1 Kern = 1024; dies ist ein fester Wert). Die Root-Gruppe verteilt die Ressourcen proportional basierend auf den Anteilen der Nachkommen, die in <code>cpu.share<\/code>, und diese verfahren ihrerseits ebenso mit ihren Nachkommen usw. In einem typischen Kubernetes-Knoten hat die Root-Control-Gruppe drei Nachkommen: <code>system.slice<\/code>, <code>user.slice<\/code> und <code>kubepods<\/code>. Die ersten beiden Untergruppen werden verwendet, um Ressourcen zwischen kritischen Systemlasten und Benutzeranwendungen au\u00dferhalb von K8s zu verteilen. Die Letzte \u2013 <code>kubepods<\/code> \u2014 das von Kubernetes erstellt wird, um Ressourcen zwischen Pods zu verteilen.<\/p>\n<p>Im obigen Diagramm ist zu sehen, dass die erste und die zweite Untergruppe jeweils <b>1024<\/b> Anteile erhalten haben, w\u00e4hrend der Untergruppe kubepod <b>4096<\/b> Anteile zugewiesen wurden. Wie ist das m\u00f6glich: Die Root-Gruppe hat insgesamt nur <b>4096<\/b> Anteile zur Verf\u00fcgung, w\u00e4hrend die Summe der Anteile ihrer Nachkommen deutlich h\u00f6her ist (<b>6144<\/b>)? Es ist wichtig zu verstehen, dass der Wert eine logische Bedeutung hat, weshalb der Linux-Scheduler (CFS) ihn f\u00fcr die proportionale Verteilung der CPU-Ressourcen verwendet. In unserem Fall erhalten die ersten beiden Gruppen jeweils <b>680<\/b> reale Anteile (16,6% von 4096), w\u00e4hrend kubepod die verbleibenden <b>2736<\/b> Anteile erh\u00e4lt. Im Falle von Leerlauf werden die ersten beiden Gruppen keine zugewiesenen Ressourcen nutzen.<\/p>\n<p>Gl\u00fccklicherweise verf\u00fcgt der Scheduler \u00fcber einen Mechanismus, der den Verlust ungenutzter CPU-Ressourcen verhindert. Er \u00fcbertr\u00e4gt die \u201eleerlaufenden\u201c Kapazit\u00e4ten in einen globalen Pool, aus dem sie an Gruppen verteilt werden, die zus\u00e4tzliche Prozessorkapazit\u00e4ten ben\u00f6tigen (die \u00dcbertragung erfolgt in Paketen, um Verluste durch Rundungsfehler zu vermeiden). Ein \u00e4hnliches Verfahren wird auch auf alle Nachkommen angewandt.<\/p>\n<p>Dieser Mechanismus gew\u00e4hrleistet eine faire Verteilung der Prozessorkapazit\u00e4ten und stellt sicher, dass kein Prozess Ressourcen von anderen \u201estehlen\u201c kann.<\/p>\n<h4>CPU-Limit<\/h4>\n<p>\nObwohl die Konfigurationen von Limits und Anfragen in K8s \u00e4hnlich aussehen, unterscheiden sie sich in ihrer Umsetzung grundlegend: dies ist <b>der irref\u00fchrendste<\/b> und am wenigsten dokumentierte Teil.<\/p>\n<p>K8s nutzt <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/scheduler\/sched-design-CFS.txt\">den CFS-Quota-Mechanismus<\/a><\/noindex> zur Umsetzung von Limits. Ihre Einstellungen werden in Dateien festgelegt <code>cfs_period_us<\/code> und <code>cfs_quota_us<\/code> im Verzeichnis cgroup (dort befindet sich auch die Datei <code>cpu.share<\/code>).<\/p>\n<p>Im Gegensatz zu <code>cpu.share<\/code>, basiert das Kontingent auf <b>Zeitperioden<\/b>, nicht auf der verf\u00fcgbaren Rechenleistung. <code>cfs_period_us<\/code> legt die Dauer der Periode (Epoche) fest \u2014 dies sind immer 100000 \u00b5s (100 ms). In K8s gibt es die M\u00f6glichkeit, diesen Wert zu \u00e4ndern, jedoch ist dies bisher nur in der Alpha-Version verf\u00fcgbar. Der Scheduler verwendet die Epoche, um die verwendeten Kontingente zur\u00fcckzusetzen. Die zweite Datei, <code>cfs_quota_us<\/code>, legt die verf\u00fcgbare Zeit (Kontingent) in jeder Epoche fest. Beachten Sie, dass sie ebenfalls in Mikrosekunden angegeben wird. Das Kontingent kann die Dauer der Epoche \u00fcberschreiten; mit anderen Worten, es kann mehr als 100 ms betragen.<\/p>\n<p>Schauen wir uns zwei Szenarien auf 16-Kern-Maschinen an (der am h\u00e4ufigsten verwendete Computertyp bei uns in Omio):<\/p>\n<p><img decoding=\"async\" alt=\"CPU-Limits und aggressive Drosselung in Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/61c6105320af3a92a91cec1007da0d45.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Szenario 1: 2 Threads und ein Limit von 200 ms. Ohne Drosselung.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"CPU-Limits und aggressive Drosselung in Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/c33993341d5395bb73dda1f4c8482a11.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Szenario 2: 10 Threads und ein Limit von 200 ms. Drosselung beginnt nach 20 ms, der Zugriff auf die Rechenressourcen wird nach weiteren 80 ms wiederhergestellt.<\/i><\/p>\n<p>Angenommen, Sie haben das CPU-Limit auf <b>2<\/b> Kerne; Kubernetes \u00fcbersetzt diesen Wert in 200 ms. Das bedeutet, dass der Container maximal 200 ms CPU-Zeit ohne Drosselung nutzen kann.<\/p>\n<p>Hier beginnt das Interessanteste. Wie bereits erw\u00e4hnt, betr\u00e4gt das verf\u00fcgbare Kontingent 200 ms. Wenn Sie parallel <b>zehn<\/b> Streams auf einer 12-Kern-Maschine (siehe Abbildung zu Szenario 2), w\u00e4hrend alle anderen Pods unt\u00e4tig sind, wird das Kontingent bereits nach 20 ms ersch\u00f6pft sein (da 10 * 20 ms = 200 ms), und alle Streams dieses Pods werden \u00abeinfrieren\u00bb <i>(throttle)<\/i> f\u00fcr die n\u00e4chsten 80 ms. Versch\u00e4rft wird die Situation durch den bereits erw\u00e4hnten <noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.kernel.org\/show_bug.cgi?id=198197\">Fehler im Scheduler,<\/a><\/noindex>der zu \u00fcberm\u00e4\u00dfiger Drosselung f\u00fchrt und der Container nicht einmal das vorhandene Kontingent nutzen kann.<\/p>\n<h2>Wie beurteilt man das Throttling in Pods?<\/h2>\n<p>\nTreten Sie einfach in den Pod ein und f\u00fchren Sie <code>cat \/sys\/fs\/cgroup\/cpu\/cpu.stat<\/code>.<\/p>\n<ul>\n<li> <code>nr_periods<\/code> \u2014 die Gesamtzahl der Scheduler-Zeitr\u00e4ume;<\/li>\n<li> <code>nr_throttled<\/code> \u2014 die Anzahl der gedrosselten Zeitr\u00e4ume innerhalb von <code>nr_periods<\/code>;<\/li>\n<li> <code>throttled_time<\/code> \u2014 die gesamte gedrosselte Zeit in Nanosekunden.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"CPU-Limits und aggressive Drosselung in Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/a1818614914a8c31f7f7f1331cc02e8b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Was passiert tats\u00e4chlich?<\/h3>\n<p>\nAm Ende erfahren wir eine hohe Drosselung in allen Anwendungen. Manchmal ist sie um <b>anderthalb Mal<\/b> st\u00e4rker als erwartet!<\/p>\n<p>Dies f\u00fchrt zu verschiedenen Fehlern \u2013 Ausf\u00e4llen bei der Bereitschaftskontrolle, Container-H\u00e4ngern, Netzwerkausf\u00e4llen und Timeouts bei Serviceaufrufen. Letztendlich \u00e4u\u00dfert sich dies in erh\u00f6hten Latenzzeiten und einer Zunahme der Fehleranzahl.<\/p>\n<h2>L\u00f6sungen und Folgen<\/h2>\n<p>\nDas ist ganz einfach. Wir haben auf CPU-Limits verzichtet und das Betriebssystem in den Clustern auf die neueste Version aktualisiert, in der der Fehler behoben wurde. Die Anzahl der Fehler (HTTP 5xx) in unseren Diensten ist sofort erheblich gesunken:<\/p>\n<h3>HTTP 5xx Fehler<\/h3>\n<p>\n<img decoding=\"async\" alt=\"CPU-Limits und aggressive Drosselung in Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/86ab1694b952b5451a4ae075cbda2788.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>HTTP 5xx Fehler eines kritischen Dienstes<\/i><\/p>\n<h3>p95 Antwortzeiten<\/h3>\n<p>\n<img decoding=\"async\" alt=\"CPU-Limits und aggressive Drosselung in Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/63922c8eb468366a7d05154a3adf40e6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Latenz der Anfragen an den kritischen Dienst, 95. Perzentil<\/i><\/p>\n<h3>Betriebskosten<\/h3>\n<p>\n<img decoding=\"async\" alt=\"CPU-Limits und aggressive Drosselung in Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/8405c26fcbd82853e296fa7e3bcba131.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Anzahl der aufgewendeten Instanzstunden<\/i><\/p>\n<h2>Was ist der Haken?<\/h2>\n<p>\nWie zu Beginn des Artikels erw\u00e4hnt:<\/p>\n<blockquote><p>Man kann es mit einer Wohngemeinschaft vergleichen\u2026 Kubernetes fungiert als Immobilienverwalter. Aber wie kann man die Mieter davon abhalten, Konflikte miteinander zu haben? Was ist, wenn einer von ihnen zum Beispiel beschlie\u00dft, das Badezimmer f\u00fcr einen halben Tag zu besetzen?<\/p><\/blockquote>\n<p>\nHier liegt der Haken. Ein einzelner schlecht konfigurierter Container kann alle verf\u00fcgbaren CPU-Ressourcen auf dem Server aufbrauchen. Wenn Sie jedoch einen soliden Anwendungsstack haben (zum Beispiel korrekt konfigurierte JVMs, Go oder Node-VMs), stellt das kein Problem dar: In solchen Bedingungen kann man \u00fcber l\u00e4ngere Zeitr\u00e4ume arbeiten. Ist die Anwendungsoptimierung hingegen unzul\u00e4nglich oder ganz fehlend, kann die Situation schnell au\u00dfer Kontrolle geraten.<code>FROM java:latest<\/code>In unserem Unternehmen, Omio, verf\u00fcgen wir \u00fcber automatisierte Basis-Dockerfiles mit ad\u00e4quaten Voreinstellungen f\u00fcr die Hauptprogrammiersprachen, sodass solche Probleme in der Regel nicht auftreten.<\/p>\n<p>Wir empfehlen, die Metriken <noindex><a rel=\"nofollow\" href=\"http:\/\/www.brendangregg.com\/usemethod.html\">USE<\/a><\/noindex> (Nutzung, Saturation und Fehler), API-Latenzen und H\u00e4ufigkeit von Fehlern im Auge zu behalten. Stellen Sie sicher, dass die Ergebnisse Ihren Erwartungen entsprechen.<\/p>\n<h2>Links<\/h2>\n<p>\nDas ist unsere Geschichte. Die folgenden Materialien haben erheblich dazu beigetragen, zu verstehen, was vor sich geht:<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/scheduler\/sched-design-CFS.txt\">kernel.org \u2192 CFS Scheduler<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/scheduler\/sched-bwc.txt\">kernel.org \u2192 CFS Bandwidth Control<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/engineering.squarespace.com\/blog\/2017\/understanding-linux-container-scheduling\">Understanding Linux Container Scheduling<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.linuxjournal.com\/content\/everything-you-need-know-about-linux-containers-part-i-linux-control-groups-and-process\">Everything You Need to Know about Linux Containers, Part I: Linux Control Groups and Process Isolation<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/k8s.af\/\">Kubernetes Failure Stories<\/a><\/noindex> \u2014 suchen Sie nach \u201ecpu throttling\u201c.<\/li>\n<\/ul>\n<p>\nKubernetes Fehlerberichte:<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/51135#issuecomment-373454012\">#51135: Avoid setting CPU limits for Guaranteed pods<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/67577\">#67577: CFS quotas can lead to unnecessary throttling<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/gist.github.com\/bobrik\/2030ff040fad360327a5fab7a09c4ff1\">\u00dcberm\u00e4\u00dfig aggressives CFS<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nHatten Sie \u00e4hnliche Probleme in Ihrer Praxis oder Erfahrungen mit Throttling in containerisierten Produktionsumgebungen? Teilen Sie Ihre Geschichte in den Kommentaren!<\/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\/blog\/459326\/\">Automatisches Skalieren und Ressourcenmanagement in Kubernetes (\u00dcberblick und Vortragvideo)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/418269\/\">Wie funktioniert der CPU-Manager in Kubernetes?<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/342822\/\">Was passiert in Kubernetes, wenn kubectl run ausgef\u00fchrt wird? Teil 2<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/489668\/\">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.: \u044d\u0442\u0430 \u043f\u043e\u0443\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f Omio \u2014 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u0430 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0439 \u2014 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0442\u0435\u043e\u0440\u0438\u0438 \u0434\u043e \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Kubernetes. \u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0441\u043b\u0443\u0447\u0430\u044f\u043c\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u043a\u0440\u0443\u0433\u043e\u0437\u043e\u0440, \u043d\u043e \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0414\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043b\u0438 \u0432\u0430\u043c \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u00ab\u0437\u0430\u0441\u0442\u0440\u0435\u0432\u0430\u043b\u043e\u00bb \u043d\u0430 \u043c\u0435\u0441\u0442\u0435, \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u0430\u043b\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":77694,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-77693","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u044d\u0442\u0430 \u043f\u043e\u0443\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f Omio \u2014 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u0430 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0439 \u2014 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0442\u0435\u043e\u0440\u0438\u0438 \u0434\u043e \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Kubernetes. \u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0441\u043b\u0443\u0447\u0430\u044f\u043c\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u043a\u0440\u0443\u0433\u043e\u0437\u043e\u0440, \u043d\u043e \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0414\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043b\u0438 \u0432\u0430\u043c \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u00ab\u0437\u0430\u0441\u0442\u0440\u0435\u0432\u0430\u043b\u043e\u00bb \u043d\u0430 \u043c\u0435\u0441\u0442\u0435, \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u0430\u043b\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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\udd47CPU-\u043b\u0438\u043c\u0438\u0442\u044b \u0438 \u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0442\u0440\u043e\u0442\u0442\u043b\u0438\u043d\u0433 \u0432 Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u044d\u0442\u0430 \u043f\u043e\u0443\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f Omio \u2014 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u0430 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0439 \u2014 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0442\u0435\u043e\u0440\u0438\u0438 \u0434\u043e \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Kubernetes. \u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0441\u043b\u0443\u0447\u0430\u044f\u043c\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u043a\u0440\u0443\u0433\u043e\u0437\u043e\u0440, \u043d\u043e \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0414\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043b\u0438 \u0432\u0430\u043c \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u00ab\u0437\u0430\u0441\u0442\u0440\u0435\u0432\u0430\u043b\u043e\u00bb \u043d\u0430 \u043c\u0435\u0441\u0442\u0435, \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u0430\u043b\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes\" \/>\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-04-12T23:42:39+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-12T23:42:39+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\udd47CPU-Grenzen und aggressives Throttling in Kubernetes | ProHoster","description":"HINWEIS der \u00dcbersetzer: Diese lehrreiche Geschichte von Omio, einem europ\u00e4ischen Reiseaggregator, f\u00fchrt die Leser von den Grundlagen bis zu spannenden praktischen Feinheiten in der Kubernetes-Konfiguration. Das Kennenlernen solcher F\u00e4lle hilft nicht nur, den Horizont zu erweitern, sondern auch, nicht triviale Probleme zu vermeiden. Kam es Ihnen schon einmal vor, dass eine Anwendung 'stecken blieb' und keine Statusanfragen mehr beantwortete?","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes","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\udd47CPU-\u043b\u0438\u043c\u0438\u0442\u044b \u0438 \u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0442\u0440\u043e\u0442\u0442\u043b\u0438\u043d\u0433 \u0432 Kubernetes | ProHoster","og:description":"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u044d\u0442\u0430 \u043f\u043e\u0443\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f Omio \u2014 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u0430 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0439 \u2014 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0442\u0435\u043e\u0440\u0438\u0438 \u0434\u043e \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Kubernetes. \u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0441\u043b\u0443\u0447\u0430\u044f\u043c\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u043a\u0440\u0443\u0433\u043e\u0437\u043e\u0440, \u043d\u043e \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0414\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043b\u0438 \u0432\u0430\u043c \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u00ab\u0437\u0430\u0441\u0442\u0440\u0435\u0432\u0430\u043b\u043e\u00bb \u043d\u0430 \u043c\u0435\u0441\u0442\u0435, \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u0430\u043b\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes","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-04-12T23:42:39+00:00","article:modified_time":"2020-04-12T23:42:39+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"77693","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 17:13:23","updated":"2022-09-29 12:06:45"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/77693","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=77693"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/77693\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/77694"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=77693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=77693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=77693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}