{"id":80532,"date":"2020-05-07T01:42:17","date_gmt":"2020-05-06T23:42:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/problemy-s-dns-v-kubernetes-publichnyj-postmortem"},"modified":"2020-05-07T01:42:17","modified_gmt":"2020-05-06T23:42:17","slug":"problemy-s-dns-v-kubernetes-publichnyj-postmortem","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/problemy-s-dns-v-kubernetes-publichnyj-postmortem","title":{"rendered":"DNS Issues in Kubernetes. Public Postmortem","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Nota:<\/b> this is a translation of a public postmortem from the engineering blog of the company <noindex><a rel=\"nofollow\" href=\"https:\/\/preply.com\/\">Preply<\/a><\/noindex>. It describes a problem with conntrack in the Kubernetes cluster that led to partial downtime of some production services.<\/i><\/p>\n<p>This article may be useful for those who want to learn a little more about postmortems or prevent some potential DNS issues in the future.<\/p>\n<p><img decoding=\"async\" alt=\"DNS Issues in Kubernetes. Public Postmortem\" src=\"\/wp-content\/uploads\/2020\/05\/0e841b0231f11171d52d82030cd1df21.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>This is not DNS<br \/>\nCannot be that this is DNS<br \/>\nThis was DNS<\/i><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>A little about postmortems and processes at Preply<\/h2>\n<p><\/p>\n<blockquote><p>A postmortem describes a failure or any event in production. A postmortem includes a timeline of events, a description of the impact on users, root cause, actions taken, and lessons learned.<\/p>\n<p><i><noindex><a rel=\"nofollow\" href=\"http:\/\/shop.oreilly.com\/product\/0636920063964.do\">Seeking SRE<\/a><\/noindex><\/i><\/p><\/blockquote>\n<p>\nAt weekly pizza meetings with the tech team, we share various information. One of the most important parts of these meetings is the postmortems, which are often accompanied by a presentation with slides and a deeper analysis of the incident that occurred. Although we do not \"applaud\" after postmortems, we strive to cultivate a culture of \"no blame\" (<noindex><a rel=\"nofollow\" href=\"https:\/\/codeascraft.com\/2012\/05\/22\/blameless-postmortems\/\">blameless culture<\/a><\/noindex>). We believe that writing and presenting postmortems can help us (and not just us) in preventing similar incidents in the future, which is why we share them.<\/p>\n<blockquote><p>Those involved in the incident should feel that they can talk about it in detail without fear of punishment or retaliation. No blame! Writing a postmortem is not a punishment but a learning opportunity for the whole company.<\/p>\n<p><i><noindex><a rel=\"nofollow\" href=\"https:\/\/devblog.axway.com\/dev-insights\/keep-calms-devops-s-sharing\/\">Keep CALMS &amp; DevOps: S is for Sharing<\/a><\/noindex><\/i><\/p><\/blockquote>\n<p><\/p>\n<h2>DNS Issues in Kubernetes. Postmortem<\/h2>\n<p>\n<b>Date:<\/b> 28.02.2020<\/p>\n<p><b>Authors:<\/b> Amet U., Andrey S., Igor K., Alexey P.<\/p>\n<p><b>Status:<\/b> Completed<\/p>\n<p><b>In short:<\/b> Partial DNS unavailability (26 min) for some services in the Kubernetes cluster<\/p>\n<p><b>Impact:<\/b> 15000 events lost for services A, B, and C<\/p>\n<p><b>Root cause:<\/b> Kube-proxy failed to correctly remove the old entry from the conntrack table, causing some services to still try to connect to non-existent pods.<\/p>\n<pre><code class=\"bash\">E0228 20:13:53.795782       1 proxier.go:610] Failed to delete kube-system\/kube-dns:dns endpoint connections, error: error deleting conntrack entries for UDP peer {100.64.0.10, 100.110.33.231}, error: conntrack command returned: ...<\/code><\/pre>\n<p>\n<b>Trigger:<\/b> Due to low load within the Kubernetes cluster, CoreDNS-autoscaler reduced the number of pods in the deployment from three to two.<\/p>\n<p><b>Solution:<\/b> Another application deployment initiated the creation of new nodes, CoreDNS-autoscaler added more pods to serve the cluster, which prompted a rewrite of the conntrack table.<\/p>\n<p><b>Detection:<\/b> Prometheus monitoring detected a large number of 5xx errors for services A, B, and C, and initiated a call to on-duty engineers.<\/p>\n<p><img decoding=\"async\" alt=\"DNS Issues in Kubernetes. Public Postmortem\" src=\"\/wp-content\/uploads\/2020\/05\/14a2216ce7564f05c6dc3e7cb1c3dbb0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>5xx errors in Kibana<\/i><\/p>\n<h3>Actions<\/h3>\n<p><\/p>\n<p>Action<br \/>\nType<br \/>\nResponsible<br \/>\nTask<\/p>\n<p>Disable autoscaler for CoreDNS<br \/>\nprevent.<br \/>\nAmet U.<br \/>\nDEVOPS-695<\/p>\n<p>Set up a caching DNS server<br \/>\nreduce.<br \/>\nMax V.<br \/>\nDEVOPS-665<\/p>\n<p>Configure conntrack monitoring<br \/>\nprevent.<br \/>\nAmet U.<br \/>\nDEVOPS-674<\/p>\n<p><\/p>\n<h3>Lessons Learned<\/h3>\n<p>\n<b>What went well:<\/b><\/p>\n<ul>\n<li>Monitoring worked smoothly. The reaction was quick and organized.<\/li>\n<li>We didn't hit any limits on the nodes.<\/li>\n<\/ul>\n<p><b>What went wrong:<\/b><\/p>\n<ul>\n<li>The real root cause is still unknown, appears to be <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/66651\">a specific bug<\/a><\/noindex> in conntrack.<\/li>\n<li>All actions only address the consequences, not the root cause (the bug).<\/li>\n<li>We knew that sooner or later we might face DNS issues, but we didn't prioritize the tasks.<\/li>\n<\/ul>\n<p>\n<b>Where we got lucky:<\/b><\/p>\n<ul>\n<li>Another deployment triggered CoreDNS-autoscaler, which rewrote the conntrack table.<\/li>\n<li>This bug affected only a portion of services.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Timeline (EET)<\/h3>\n<p><\/p>\n<p>Time<br \/>\nAction<\/p>\n<p>22:13<br \/>\nCoreDNS-autoscaler reduced the number of pods from three to two.<\/p>\n<p>22:18<br \/>\nOn-duty engineers began receiving calls from the monitoring system.<\/p>\n<p>22:21<br \/>\nOn-duty engineers started investigating the cause of the errors.<\/p>\n<p>22:39<br \/>\nOn-duty engineers began rolling back one of the last services to the previous version.<\/p>\n<p>22:40<br \/>\n5xx errors ceased to appear, the situation stabilized.<\/p>\n<p><\/p>\n<ul>\n<li><b>Time to detection:<\/b> 4 min<\/li>\n<li><b>Time to take action:<\/b> 21 min<\/li>\n<li><b>Time to fix:<\/b> 1 min<\/li>\n<\/ul>\n<p><\/p>\n<h3>Additional information<\/h3>\n<p><\/p>\n<ul>\n<li>CoreDNS Logs:\n<pre><code class=\"bash\">I0228 20:13:53.507780       1 event.go:221] Event(v1.ObjectReference{Kind:\"Deployment\", Namespace:\"kube-system\", Name:\"coredns\", UID:\"2493eb55-3dc0-11ea-b3a2-02bb48f8c230\", APIVersion:\"apps\/v1\", ResourceVersion:\"132690686\", FieldPath:\"\"}): type: 'Normal' reason: 'ScalingReplicaSet' Scaled down replica set coredns-6cbb6646c9 to 2<\/code><\/pre>\n<\/li>\n<li>Links to Kibana (cut out), Grafana (cut out)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.projectcalico.org\/when-linux-conntrack-is-no-longer-your-friend\/\">Where Linux conntrack is no longer your friend<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2019\/03\/29\/kube-proxy-subtleties-debugging-an-intermittent-connection-reset\/\">kube-proxy Subtleties: Debugging an Intermittent Connection Reset<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/blog\/racy-conntrack-and-dns-lookup-timeouts\">Racy conntrack and DNS lookup timeouts<\/a><\/noindex><\/li>\n<\/ul>\n<p>\nTo minimize CPU usage, the Linux kernel uses something called conntrack. In short, it is a utility that maintains a list of NAT entries stored in a special table. When the next packet comes from the same pod to the same pod as before, the final IP address will not be recalculated but will be taken from the conntrack table.<br \/>\n<img decoding=\"async\" alt=\"DNS Issues in Kubernetes. Public Postmortem\" src=\"\/wp-content\/uploads\/2020\/05\/895db4057ee0912e16e017c6e3134162.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>How conntrack works<\/i><\/p>\n<h2>Summary<\/h2>\n<p>\nThis was an example of one of our postmortems with some useful links. Specifically, in this article, we share information that might be beneficial to other companies. This is why we are not afraid to make mistakes and why we have made one of our postmortems public. Here are a few more interesting public postmortems:<\/p>\n<ul>\n<li>GitLab: <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/blog\/2017\/02\/10\/postmortem-of-database-outage-of-january-31\/\">Postmortem of database outage of January 31<\/a><\/noindex><\/li>\n<li>Dropbox: <noindex><a rel=\"nofollow\" href=\"https:\/\/dropbox.tech\/infrastructure\/outage-post-mortem\">Outage post-mortem<\/a><\/noindex><\/li>\n<li>Spotify: <noindex><a rel=\"nofollow\" href=\"https:\/\/labs.spotify.com\/2017\/03\/31\/spotifys-lovehate-relationship-with-dns\/\">Spotify\u2019s Love\/Hate Relationship with DNS<\/a><\/noindex><\/li>\n<li>Many others from <noindex><a rel=\"nofollow\" href=\"https:\/\/gist.github.com\/cheapRoc\/d9e73fe05480330c1e36410cbdf0e867\">this gist<\/a><\/noindex> and repository <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kubernetes-failure-stories\">Kubernetes Failure Stories<\/a><\/noindex><\/li>\n<li>Also <noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/sre-book\/chapters\/postmortem\/\">an example<\/a><\/noindex> public postmortem from the SRE Book<\/li>\n<\/ul>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/500346\/\">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\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u043c\u043e\u0440\u0442\u0435\u043c\u0430 \u0438\u0437 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u0433\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Preply. \u0412 \u043d\u0435\u043c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 conntrack \u0432 Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u0432\u0435\u043b\u0430 \u043a \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0441\u0442\u043e\u044e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d\u0430. \u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0442\u0435\u043c, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0443\u0437\u043d\u0430\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043e \u043f\u043e\u0441\u0442\u043c\u043e\u0440\u0442\u0435\u043c\u0430\u0445 \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 DNS \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c. \u042d\u0442\u043e \u043d\u0435 DNS \u041d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":80533,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-80532","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.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u043c\u043e\u0440\u0442\u0435\u043c\u0430 \u0438\u0437 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u0433\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Preply.\" \/>\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\/en\/blog\/administrirovanie\/problemy-s-dns-v-kubernetes-publichnyj-postmortem\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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\udd47\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 DNS \u0432 Kubernetes. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043f\u043e\u0441\u0442\u043c\u043e\u0440\u0442\u0435\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u043c\u043e\u0440\u0442\u0435\u043c\u0430 \u0438\u0437 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u0433\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Preply.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/problemy-s-dns-v-kubernetes-publichnyj-postmortem\" \/>\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-05-06T23:42:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-06T23:42:17+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\udd47DNS Issues in Kubernetes. Public Postmortem | ProHoster","description":"Note: this is a translation of a public postmortem from the engineering blog of Preply.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/problemy-s-dns-v-kubernetes-publichnyj-postmortem","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\udd47\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 DNS \u0432 Kubernetes. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043f\u043e\u0441\u0442\u043c\u043e\u0440\u0442\u0435\u043c | ProHoster","og:description":"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u043c\u043e\u0440\u0442\u0435\u043c\u0430 \u0438\u0437 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u0433\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Preply.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/problemy-s-dns-v-kubernetes-publichnyj-postmortem","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-05-06T23:42:17+00:00","article:modified_time":"2020-05-06T23:42:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"80532","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 16:16:27","updated":"2022-09-28 05:25:18","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/80532","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=80532"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/80532\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/80533"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=80532"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=80532"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=80532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}