{"id":37372,"date":"2019-10-31T22:17:16","date_gmt":"2019-10-31T19:17:16","guid":{"rendered":"https:\/\/prohoster.info\/blog\/etc-resolv-conf-dlya-kubernetes-pods-optsiya-ndots-5-kak-eto-mozhet-negativno-skazatsya-na-proizvoditelnosti-prilozheniya\/"},"modified":"2019-10-31T22:17:16","modified_gmt":"2019-10-31T19:17:16","slug":"etc-resolv-conf-dlya-kubernetes-pods-optsiya-ndots-5-kak-eto-mozhet-negativno-skazatsya-na-proizvoditelnosti-prilozheniya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/etc-resolv-conf-dlya-kubernetes-pods-optsiya-ndots-5-kak-eto-mozhet-negativno-skazatsya-na-proizvoditelnosti-prilozheniya","title":{"rendered":"\/etc\/resolv.conf \u0434\u043b\u044f Kubernetes pods, \u043e\u043f\u0446\u0438\u044f ndots:5, \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"\/etc\/resolv.conf \u0434\u043b\u044f Kubernetes pods, \u043e\u043f\u0446\u0438\u044f ndots:5, \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\" src=\"\/wp-content\/uploads\/2019\/08\/4f54468a29cfe5380666af7639a7b3f3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Onlangs hebben we Kubernetes 1.9 op AWS gelanceerd met behulp van Kops. Gisteren, tijdens een geleidelijke uitrol van nieuwe verkeer naar een van onze grootste Kubernetes-clusters, begon ik ongebruikelijke DNS-resolutiefouten op te merken die door onze applicatie werden gelogd.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Dit is al een tijdje op GitHub <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/45976\">besproken<\/a><\/noindex>, dus besloot ik ook het uit te zoeken. Uiteindelijk ontdekte ik dat dit in ons geval werd veroorzaakt door een verhoogde belasting op <code>kube-dns<\/code> en <code>dnsmasq<\/code>. Het meest interessante en nieuwe voor mij was de oorzaak van de aanzienlijke toename van DNS-verkeer. Daarover en wat we daaraan kunnen doen, gaat mijn post.<\/p>\n<p><\/p>\n<p>De DNS-resolutie binnen een container - net als in elk Linux-systeem - wordt bepaald door een configuratiebestand <code>\/etc\/resolv.conf<\/code>. Standaard heeft Kubernetes <code>dnsPolicy<\/code> het <code>ClusterFirst<\/code>, wat betekent dat elk DNS-verzoek wordt doorgestuurd naar <code>dnsmasq<\/code>, dat binnen de pod is gestart <code>kube-dns<\/code> in de cluster, dat het verzoek vervolgens zal doorsturen naar de applicatie <code>kube-dns<\/code>, als de naam eindigt op de clustersuffix, of anders naar een hoger gelegen DNS-server.<\/p>\n<p><\/p>\n<p>Bestand <code>\/etc\/resolv.conf<\/code> Binnen elke container ziet het standaard er als volgt uit:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">nameserver 100.64.0.10\nsearch namespace.svc.cluster.local svc.cluster.local cluster.local \neu-west-1.compute.internal\noptions ndots:5<\/code><\/pre>\n<p><\/p>\n<p>Zoals te zien is, zijn er drie richtlijnen:<\/p>\n<p><\/p>\n<ol>\n<li>De naamserver is het IP-adres van de service <code>kube-dns<\/code><\/li>\n<li>Er zijn 4 lokale zoekdomeinen opgegeven <code>search<\/code><\/li>\n<li>Er is een optie <code>ndots:5<\/code><\/li>\n<\/ol>\n<p><\/p>\n<p>Een interessant aspect van deze configuratie is hoe de lokale zoekdomeinen en instellingen <code>ndots:5<\/code> samenleven. Om dit te begrijpen, is het nodig om te begrijpen hoe DNS-resolutie voor onvolledige namen werkt.<\/p>\n<p><\/p>\n<h3 id=\"chto-takoe-polnoe-imya\">Wat is een volledig naam?<\/h3>\n<p><\/p>\n<p>Een volledig gekwalificeerde naam is een naam waarvoor geen lokale zoekopdracht wordt uitgevoerd, en de naam wordt als absoluut beschouwd tijdens de naamresolutie. Volgens afspraak beschouwt DNS-software een naam als volledig gekwalificeerd als deze eindigt op een punt (.), En als niet volledig gekwalificeerd in andere gevallen. Dat wil zeggen, <code>google.com.<\/code> is volledig gekwalificeerd, en <code>google.com<\/code> is dat niet. <\/p>\n<p><\/p>\n<h3 id=\"kak-obrabatyvaetsya-nepolnoe-imya\">Hoe wordt een onvolledige naam verwerkt?<\/h3>\n<p><\/p>\n<p>Wanneer een applicatie verbinding maakt met een externe host die in de naam is opgegeven, wordt de DNS-resolutie meestal uitgevoerd met een systeemaanroep, zoals <code>getaddrinfo()<\/code>. Maar als de naam onvolledig is (niet eindigend op .), is het interessant of de systeemaanroep eerst zal proberen de naam als absoluut op te lossen, of dat deze eerst door de lokale zoekdomeinen gaat? Dit hangt af van de optie <code>ndots<\/code>.<\/p>\n<p><\/p>\n<p>Uit de handleiding voor <code>resolv.conf<\/code>:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">ndots:n\n\nstelt de drempel in voor het aantal punten dat in de naam moet verschijnen voordat er een initi\u00eble absolute aanvraag wordt gedaan. De standaardwaarde voor n is 1, wat betekent dat als er enige punten in de naam staan, de naam eerst als absolute naam wordt geprobeerd voordat er elementen van de zoeklijst aan worden toegevoegd.<\/code><\/pre>\n<p><\/p>\n<p>Dit betekent dat als voor <code>ndots<\/code> de waarde 5 is ingesteld en de naam minder dan 5 punten bevat, de systeembel wordt geprobeerd deze opeenvolgend te resolven, eerst door alle lokale zoekdomeinen en, in geval van mislukking, uiteindelijk als absolute naam.<\/p>\n<p><\/p>\n<h3 id=\"pochemu-zhe-ndots5-mozhet-negativno-skazatsya-na-proizvoditelnost-prilozheniya\">Waarom kan <code>ndots:5<\/code> een negatieve impact hebben op de prestaties van de applicatie?<\/h3>\n<p><\/p>\n<p>Zoals u begrijpt, als uw applicatie veel extern verkeer gebruikt, zal voor elke TCP-verbinding die is ingesteld (of, nauwkeuriger, voor elke opgeloste naam) het 5 DNS-verzoeken genereren voordat de naam correct wordt opgelost, omdat het eerst door 4 lokale zoekdomeinen gaat en uiteindelijk een verzoek voor de oplossing van de absolute naam genereert.<\/p>\n<p><\/p>\n<p>In het volgende diagram wordt het totale verkeer op onze 3 kube-dns-modules weergegeven voor en na het schakelen van een aantal hostnamen die in onze applicatie zijn ingesteld naar volledig gedefinieerde namen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\/etc\/resolv.conf \u0434\u043b\u044f Kubernetes pods, \u043e\u043f\u0446\u0438\u044f ndots:5, \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\" src=\"\/wp-content\/uploads\/2019\/08\/6014b1718da5034f8ab8b8148ecfb4e4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In het volgende diagram wordt de vertraging van de applicatie weergegeven voor en na het schakelen van een aantal hostnamen die in onze applicatie zijn ingesteld naar volledige namen (de verticale blauwe lijn is de implementatie):<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\/etc\/resolv.conf \u0434\u043b\u044f Kubernetes pods, \u043e\u043f\u0446\u0438\u044f ndots:5, \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\" src=\"\/wp-content\/uploads\/2019\/08\/78f69b5ce6d2b1c232b61e89bbfc5959.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"reshenie-1---ispolzovat-polnostyu-opredelennye-imena\">Oplossing #1 - gebruik volledig gedefinieerde namen<\/h3>\n<p><\/p>\n<p>Als u weinig statische externe namen heeft (d.w.z. gedefinieerd in de applicatieconfiguratie) waar u een groot aantal verbindingen mee maakt, is het mogelijk de eenvoudigste oplossing om ze op volledig gedefinieerd te schakelen door gewoon aan het einde toe te voegen.<\/p>\n<p><\/p>\n<p>Dit is geen definitieve oplossing, maar helpt snel, zij het niet perfect, om de situatie te verbeteren. Deze patch hebben we toegepast om ons probleem op te lossen, waarvan de resultaten in de bovenstaande screenshots zijn weergegeven.<\/p>\n<p><\/p>\n<h3 id=\"reshenie-2---kastomizaciya-ndots-v-dnsconfig\">Oplossing #2 - maatwerk <code>ndots<\/code> in <code>dnsConfig<\/code><\/h3>\n<p><\/p>\n<p>In Kubernetes 1.9 werd er in alpha-modus functionaliteit ge\u00efntroduceerd (beta-versie v1.10), die beter controle biedt over de DNS-instellingen via de pod-eigenschap in <code>dnsConfig<\/code>. Onder andere stelt het in staat om de waarde <code>ndots<\/code> voor een specifieke pod in te stellen, d.w.z.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">apiVersion: v1\nkind: Pod\nmetadata:\n  namespace: default\n  name: dns-example\nspec:\n  containers:\n    - name: test\n      image: nginx\n  dnsConfig:\n    options:\n      - name: ndots\n        value: \"1\"<\/code><\/pre>\n<p><\/p>\n<h3 id=\"istochniki\">Bronnen<\/h3>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/jdebp.eu.\/FGA\/dns-name-qualification.html\">Welke DNS-naamkwalificatie is<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/dns-pod-service\/\">Kubernetes: DNS voor Services en Pods<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"takzhe-chitayte-drugie-stati-v-nashem-bloge\">Lees ook andere artikelen op onze blog:<\/h3>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/461723\/\">Aan de slag met het Context-pakket in Golang<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/437372\/\">Drie eenvoudige technieken om Docker-afbeeldingen te verkleinen<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/426543\/\">Back-ups van Stateful in Kubernetes<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/424717\/\">Back-up van een grote verscheidenheid aan webprojecten<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/347526\/\">Telegram-bot voor Redmine. Hoe je het leven voor jezelf en anderen kunt vergemakkelijken<\/a><\/noindex><\/li>\n<\/ul>\n<p>Bron: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/464371\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 Kubernetes 1.9 \u043d\u0430 AWS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Kops. \u0412\u0447\u0435\u0440\u0430, \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0432\u044b\u043a\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0430 \u0441\u0430\u043c\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 Kubernetes \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432, \u044f \u043d\u0430\u0447\u0430\u043b \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u043d DNS, \u0437\u0430\u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u0448\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c. \u041d\u0430 GitHub \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0433\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0442\u043e\u0436\u0435 \u0440\u0435\u0448\u0438\u043b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f. \u0412 \u0438\u0442\u043e\u0433\u0435 \u044f \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28037,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37372","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.3 - aioseo.com -->\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\/nl\/blog\/administrirovanie\/etc-resolv-conf-dlya-kubernetes-pods-optsiya-ndots-5-kak-eto-mozhet-negativno-skazatsya-na-proizvoditelnosti-prilozheniya\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/etc\/resolv.conf \u0434\u043b\u044f Kubernetes pods, \u043e\u043f\u0446\u0438\u044f ndots:5, \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/etc-resolv-conf-dlya-kubernetes-pods-optsiya-ndots-5-kak-eto-mozhet-negativno-skazatsya-na-proizvoditelnosti-prilozheniya\" \/>\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=\"2019-10-31T19:17:16+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:17:16+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\udd47 \/etc\/resolv.conf voor Kubernetes pods, optie ndots:5, hoe dit de prestaties van de applicatie negatief kan be\u00efnvloeden | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/etc-resolv-conf-dlya-kubernetes-pods-optsiya-ndots-5-kak-eto-mozhet-negativno-skazatsya-na-proizvoditelnosti-prilozheniya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/etc\/resolv.conf \u0434\u043b\u044f Kubernetes pods, \u043e\u043f\u0446\u0438\u044f ndots:5, \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f | ProHoster","og:url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/etc-resolv-conf-dlya-kubernetes-pods-optsiya-ndots-5-kak-eto-mozhet-negativno-skazatsya-na-proizvoditelnosti-prilozheniya","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":"2019-10-31T19:17:16+00:00","article:modified_time":"2019-10-31T19:17:16+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37372","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 17:33:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:16:34","updated":"2026-01-23 17:33:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/37372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=37372"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/37372\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/28037"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=37372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=37372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=37372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}