{"id":82902,"date":"2020-05-26T13:42:27","date_gmt":"2020-05-26T11:42:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-mapping-vneshnih-servisov"},"modified":"2020-05-26T13:42:27","modified_gmt":"2020-05-26T11:42:27","slug":"luchshie-praktiki-kubernetes-mapping-vneshnih-servisov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-mapping-vneshnih-servisov","title":{"rendered":"Best Practices for Kubernetes. Mapping External Services","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502052\/\">Beste Kubernetes-praktijken. Het cre\u00ebren van kleine containers<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502320\/\">Beste Kubernetes-praktijken. Organisatie van Kubernetes met namespaces<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502430\/\">Beste Kubernetes-praktijken. Het testen van de levensvatbaarheid van Kubernetes met Readiness- en Liveness-tests<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502614\/\">Beste praktijken voor Kubernetes. Instellen van verzoeken en resource-limieten.<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/503488\/\">Best Practices for Kubernetes. Proper Shutdown Terminate<\/a><\/noindex><\/p>\n<p>Als u op de meeste mensen lijkt, gebruikt u waarschijnlijk middelen die buiten uw cluster functioneren. Misschien gebruikt u de Taleo API om sms-berichten te verzenden of analyseert u afbeeldingen met de Google Cloud Vision API.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Als u dezelfde endpoint gebruikt \u2014 het ontvangspunt voor serveraanvragen in al uw omgevingen en niet van plan bent om uw servers naar Kubernetes te verplaatsen, is het volkomen normaal om de service-endpoint rechtstreeks in uw code te hebben. Er zijn echter veel andere scenario's. In deze serie 'Kubernetes Best Practices' leert u hoe u de ingebouwde mechanismen van Kubernetes kunt gebruiken voor serviceontdekking, zowel binnen als buiten het cluster. <\/p>\n<p>Een voorbeeld van een veelgebruikte externe service is een database die buiten het Kubernetes-cluster draait. In tegenstelling tot cloud-databases zoals Google Cloud Data Store of Google Cloud Spanner, die \u00e9\u00e9n endpoint voor alle soorten toegang gebruiken, hebben de meeste databases aparte endpoints voor verschillende situaties.<br \/>\nEen best practice voor traditionele databases zoals MySQL en MongoDB houdt meestal in dat u verbinding maakt met verschillende componenten voor verschillende omgevingen. U kunt een krachtige machine hebben voor productiegegevens en een kleinere voor de testomgeving. Elke machine heeft zijn eigen IP-adres of domeinnaam, maar u wilt waarschijnlijk uw code niet wijzigen bij het overschakelen van de ene omgeving naar de andere. Daarom kunt u in plaats van deze adressen hardcoded in te voeren de ingebouwde DNS-gebaseerde serviceontdekking van Kubernetes gebruiken om externe diensten op dezelfde manier te ontdekken als inheemse Kubernetes-diensten.<\/p>\n<p><img decoding=\"async\" alt=\"Best Practices for Kubernetes. Mapping External Services\" src=\"\/wp-content\/uploads\/2020\/05\/b64f2f5857f32d2d927c8dad1e4b1e36.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nStel dat u een MongoDB-database draait in Google Compute Engine. U zult vastzitten in deze hybride wereld totdat u deze kunt verplaatsen naar het cluster.<\/p>\n<p>Gelukkig kunt u statische Kubernetes-services gebruiken om het uzelf iets gemakkelijker te maken. In dit voorbeeld heb ik een MongoDB-server gemaakt met behulp van Google Cloud Launcher. Aangezien deze is gemaakt in hetzelfde netwerk (of VPC van het Kubernetes-cluster), is de toegang voorzien van een hoogpresterend intern IP-adres.<\/p>\n<p><img decoding=\"async\" alt=\"Best Practices for Kubernetes. Mapping External Services\" src=\"\/wp-content\/uploads\/2020\/05\/cafe19eabc8ac144d27bd06f6c44ac5f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn Google Cloud is dit de standaardinstelling, dus je hoeft niets in te stellen. Nu er een IP-adres is, is de volgende stap het cre\u00ebren van een service. Je zult opmerken dat er geen podselectors voor deze service zijn. Dit betekent dat we een service hebben gecre\u00eberd die niet weet waar verkeer naartoe gestuurd moet worden. Dit maakt het mogelijk om handmatig een endpoint-object te cre\u00ebren dat het verkeer van deze service zal ontvangen. <\/p>\n<p><img decoding=\"async\" alt=\"Best Practices for Kubernetes. Mapping External Services\" src=\"\/wp-content\/uploads\/2020\/05\/4f3643f3ce2f2d3f5b207429bb269058.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHet volgende voorbeeld toont aan dat de endpoints het IP-adres voor de database defini\u00ebren, met dezelfde naam mongo als de service.<\/p>\n<p><img decoding=\"async\" alt=\"Best Practices for Kubernetes. Mapping External Services\" src=\"\/wp-content\/uploads\/2020\/05\/dbba2655a9e2295cb8a7de4c97eddc8f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKubernetes zal alle IP-adressen gebruiken om de endpoints te vinden, alsof ze gewone Kubernetes-pods zijn, zodat je nu toegang kunt krijgen tot de database met behulp van een eenvoudige verbindingsstring naar de hierboven genoemde naam mongodb:\/\/mongo. Daarbij is er helemaal geen noodzaak om IP-adressen in je code te gebruiken.<\/p>\n<p>Als in de toekomst de IP-adressen veranderen, kun je eenvoudig de endpoints bijwerken met het nieuwe IP-adres, en hoeven je toepassingen niet op enige andere manier aangepast te worden.<\/p>\n<p>Als je een database gebruikt die gehost wordt door een externe host, hebben de hosteigenaars je waarschijnlijk een uniforme resource identifier URI gegeven voor de verbinding. Dus als je een IP-adres hebt gekregen, kun je gewoon de eerder genoemde methode gebruiken. Dit voorbeeld laat zien dat ik twee MongoDB-databases heb, die gehost worden door mLab.<\/p>\n<p><img decoding=\"async\" alt=\"Best Practices for Kubernetes. Mapping External Services\" src=\"\/wp-content\/uploads\/2020\/05\/088a578041c3d7c924c77f0a2e67e323.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEen daarvan is de ontwikkelaarsdatabase en de andere is de productie-database. De verbindingsstrings voor deze databases zijn als volgt \u2014 mLab geeft je een dynamische URI en een dynamische poort. Zoals je kunt zien, zijn ze verschillend.<\/p>\n<p><img decoding=\"async\" alt=\"Best Practices for Kubernetes. Mapping External Services\" src=\"\/wp-content\/uploads\/2020\/05\/41d2e22371e85b7e794a9df7b2db515d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOm hiervan te abstraheren, gebruiken we Kubernetes en verbinden we met de ontwikkelaarsdatabase. Je kunt een externe naamservice in Kubernetes cre\u00ebren, wat je een statische service zal geven die verkeer naar de externe service doorstuurt. <\/p>\n<p><img decoding=\"async\" alt=\"Best Practices for Kubernetes. Mapping External Services\" src=\"\/wp-content\/uploads\/2020\/05\/ed07c1e9818a6641b29d5c941bdf68cb.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDeze service zal een eenvoudige CNAME-omleiding op kernniveau uitvoeren, wat een minimale impact op de prestaties zal hebben. Hierdoor kun je een eenvoudigere verbindingsstring gebruiken.<\/p>\n<p><img decoding=\"async\" alt=\"Best Practices for Kubernetes. Mapping External Services\" src=\"\/wp-content\/uploads\/2020\/05\/ee5442aec9c1a9d19f78bd92d44a97ec.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMaar omdat de externe naam een CNAME-omleiding gebruikt, kan deze geen poorten opnieuw toewijzen. Daarom is deze oplossing alleen toepasbaar voor statische poorten en kan deze niet worden gebruikt met dynamische poorten. De gratis mLab Free Tier biedt standaard een dynamisch poortnummer aan de gebruiker, en dit kan niet worden gewijzigd. Dit betekent dat je verschillende verbindingsregelexemplaren nodig hebt voor dev en prod. Het nadeel is dat je het poortnummer hardcoded moet invoeren. Hoe kun je poorttoewijzing laten werken?<\/p>\n<p>De eerste stap is het verkrijgen van het IP-adres uit de URI. Door het commando nslookup uit te voeren, de hostnaam of het URI te pingen, kun je het IP-adres van de database krijgen. Als de service je meerdere IP-adressen teruggeeft, kunnen al deze adressen worden gebruikt in de eindpunten van het object.<\/p>\n<p><img decoding=\"async\" alt=\"Best Practices for Kubernetes. Mapping External Services\" src=\"\/wp-content\/uploads\/2020\/05\/6cd63eb3c8bd733afbd7fe791ef7b8f4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe moet je realiseren dat de IP-adressen van de URI zonder voorafgaande kennisgeving kunnen veranderen, dus het is riskant om ze in prod te gebruiken. Met zo'n IP-adres kun je verbinding maken met een externe database zonder een poort op te geven. Op deze manier voert de Kubernetes-service vrij transparant poorttoewijzing uit.<\/p>\n<p><img decoding=\"async\" alt=\"Best Practices for Kubernetes. Mapping External Services\" src=\"\/wp-content\/uploads\/2020\/05\/3f718da15739fd42dc640f44b34c7cab.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMapping, of het koppelen van externe bronnen aan interne, stelt je in staat deze services binnen het cluster in de toekomst flexibel te gebruiken met minimale inspanning voor refactoring. Het vergemakkelijkt ook het beheer en geeft inzicht in welke externe services jouw bedrijf gebruikt. <\/p>\n<p>De voortzetting volgt zeer binnenkort...<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"fvpq4jqtuZ8\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/fvpq4jqtuZ8\/hqdefault.jpg\" alt=\"Video afspelen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<h3>Een beetje reclame \ud83d\ude42<\/h3>\n<p>\nBedankt dat je bij ons blijft. Houd je van onze artikelen? Wil je meer interessante inhoud zien? Ondersteun ons door een bestelling te plaatsen of ons aan vrienden aan te bevelen, <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">cloud VPS voor ontwikkelaars vanaf $4,99<\/a><\/noindex>, <b>een unieke variant van entry-level servers, die we voor jou hebben bedacht:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">De waarheid over VPS (KVM) E5-2697 v3 (6 Kernen) 10GB DDR4 480GB SSD 1Gbps vanaf $19 of hoe deel je een server correct?<\/a><\/noindex> (opties beschikbaar met RAID1 en RAID10, tot 24 cores en tot 40GB DDR4).<\/p>\n<p><b>Dell R730xd is 2 keer goedkoper in datacenter Equinix Tier IV in Amsterdam?<\/b> Alleen bij ons <b><noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/serversnl\">2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100TB vanaf $199<\/a><\/noindex> in Nederland! <b>Dell R420 \u2014 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 vanaf $99!<\/b><\/b> Lees over hoe <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">je een infrastructuur van bedrijfsniveau kunt opbouwen met Dell R730xd E5-2650 v4 servers die wel \u20ac9000 kosten voor een prikkie?<\/a><\/noindex><br \/>\n<br \/>Bron: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/503612\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f Kubernetes \u0441 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e\u043c \u0438\u043c\u0435\u043d \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0436\u0438\u0437\u043d\u0435\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 Kubernetes \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0435\u0441\u0442\u043e\u0432 Readiness \u0438 Liveness \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043b\u0438\u043c\u0438\u0442\u043e\u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 Terminate \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043b\u044e\u0434\u0435\u0439, \u0442\u043e, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u0432\u0430\u0448\u0435\u0433\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":82903,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-82902","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=\"description\" content=\"\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes.\" \/>\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\/luchshie-praktiki-kubernetes-mapping-vneshnih-servisov\" \/>\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\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-mapping-vneshnih-servisov\" \/>\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-26T11:42:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-26T11:42:27+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\udd47Beste praktijken Kubernetes. Mapping van externe services | ProHoster","description":"Beste praktijken voor Kubernetes.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-mapping-vneshnih-servisov","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\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 | ProHoster","og:description":"\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes.","og:url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-mapping-vneshnih-servisov","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-26T11:42:27+00:00","article:modified_time":"2020-05-26T11:42:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"82902","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 15:29:29","updated":"2022-10-02 08:31:16","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\/82902","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=82902"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/82902\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/82903"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=82902"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=82902"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=82902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}