{"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\/es\/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>No hace mucho tiempo lanzamos Kubernetes 1.9 en AWS utilizando Kops. Ayer, durante el rollout suave de nuevo tr\u00e1fico en uno de nuestros cl\u00fasteres de Kubernetes m\u00e1s grandes, comenc\u00e9 a notar errores inusuales de resoluci\u00f3n de nombres DNS registrados por nuestra aplicaci\u00f3n.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>En GitHub se ha hablado de esto durante bastante tiempo, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/45976\">as\u00ed que decid\u00ed inspeccionarlo tambi\u00e9n.<\/a><\/noindex>Al final entend\u00ed que en nuestro caso esto se debe a una carga incrementada en <code>kube-dns<\/code> y <code>dnsmasq<\/code>. Lo m\u00e1s interesante y novedoso para m\u00ed fue la misma raz\u00f3n del aumento significativo en el tr\u00e1fico de consultas DNS. De esto y de qu\u00e9 hacer al respecto, trata mi publicaci\u00f3n.<\/p>\n<p><\/p>\n<p>La resoluci\u00f3n de DNS dentro de un contenedor, al igual que en cualquier sistema Linux, se determina por un archivo de configuraci\u00f3n <code>\/etc\/resolv.conf<\/code>. Por defecto, Kubernetes <code>dnsPolicy<\/code> este <code>ClusterFirst<\/code>, lo que significa que cualquier consulta DNS se redirigir\u00e1 a <code>dnsmasq<\/code>, que se ejecuta en un pod <code>kube-dns<\/code> dentro del cl\u00faster, que a su vez redirigir\u00e1 la consulta a la aplicaci\u00f3n <code>kube-dns<\/code>, si el nombre termina con el sufijo del cl\u00faster, o de lo contrario, al servidor DNS de nivel superior.<\/p>\n<p><\/p>\n<p>Archivo <code>\/etc\/resolv.conf<\/code> Dentro de cada contenedor por defecto se ver\u00e1 as\u00ed:<\/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>Como se puede observar, hay tres directivas:<\/p>\n<p><\/p>\n<ol>\n<li>El servidor de nombres es la IP del servicio, <code>kube-dns<\/code><\/li>\n<li>Se especifican 4 dominios de b\u00fasqueda locales, <code>search<\/code><\/li>\n<li>Hay una opci\u00f3n <code>ndots:5<\/code><\/li>\n<\/ol>\n<p><\/p>\n<p>Una parte interesante de esta configuraci\u00f3n es c\u00f3mo los dominios de b\u00fasqueda locales y las configuraciones <code>ndots:5<\/code> conviven. Para entender esto, es necesario desentra\u00f1ar c\u00f3mo funciona la resoluci\u00f3n DNS para nombres incompletos.<\/p>\n<p><\/p>\n<h3 id=\"chto-takoe-polnoe-imya\">\u00bfQu\u00e9 es un nombre completo?<\/h3>\n<p><\/p>\n<p>Un nombre completamente definido es aquel para el cual no se realizar\u00e1 una b\u00fasqueda local, y su nombre se considerar\u00e1 absoluto durante la resoluci\u00f3n de nombres. Por convenci\u00f3n, el software DNS considera que un nombre est\u00e1 completamente definido si termina con un punto (.), y no completamente definido de lo contrario. Es decir, <code>google.com.<\/code> est\u00e1 completamente definido, mientras que <code>google.com<\/code> no lo est\u00e1. <\/p>\n<p><\/p>\n<h3 id=\"kak-obrabatyvaetsya-nepolnoe-imya\">\u00bfC\u00f3mo se maneja un nombre incompleto?<\/h3>\n<p><\/p>\n<p>Cuando una aplicaci\u00f3n se conecta a un host remoto especificado en el nombre, la resoluci\u00f3n de nombres DNS generalmente se realiza mediante una llamada al sistema, como <code>getaddrinfo()<\/code>. Sin embargo, si el nombre es incompleto (no termina en .), resulta interesante si la llamada al sistema intentar\u00e1 resolver el nombre como absoluto primero, o si pasar\u00e1 primero por los dominios de b\u00fasqueda locales. Esto depende de la opci\u00f3n <code>ndots<\/code>.<\/p>\n<p><\/p>\n<p>Seg\u00fan el manual de <code>resolv.conf<\/code>:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">ndots:n\n\nestablece el umbral para la cantidad de puntos que deben aparecer en el nombre antes de que se realice la primera consulta absoluta. El valor predeterminado para n es 1, lo que significa que si el nombre tiene alg\u00fan punto, el nombre se probar\u00e1 primero como un nombre absoluto antes de que se le agreguen elementos de la lista de b\u00fasqueda.<\/code><\/pre>\n<p><\/p>\n<p>Esto significa que si <code>ndots<\/code> se establece en 5 y el nombre contiene menos de 5 puntos, la llamada del sistema intentar\u00e1 resolverlo secuencialmente, pasando primero por todos los dominios de b\u00fasqueda locales y, en caso de falla, finalmente lo resolver\u00e1 como un nombre absoluto.<\/p>\n<p><\/p>\n<h3 id=\"pochemu-zhe-ndots5-mozhet-negativno-skazatsya-na-proizvoditelnost-prilozheniya\">\u00bfPor qu\u00e9 podr\u00eda <code>ndots:5<\/code> afectar negativamente el rendimiento de la aplicaci\u00f3n?<\/h3>\n<p><\/p>\n<p>Como comprender\u00e1s, si tu aplicaci\u00f3n utiliza mucho tr\u00e1fico externo, por cada conexi\u00f3n TCP establecida (o, m\u00e1s precisamente, por cada nombre resuelto) generar\u00e1 5 consultas DNS antes de que el nombre se resuelva correctamente, ya que primero pasar\u00e1 por 4 dominios de b\u00fasqueda locales y al final realizar\u00e1 una consulta de resoluci\u00f3n del nombre absoluto.<\/p>\n<p><\/p>\n<p>En el siguiente gr\u00e1fico se muestra el tr\u00e1fico total en nuestros 3 m\u00f3dulos kube-dns antes y despu\u00e9s de que cambiamos varios nombres de host configurados en nuestra aplicaci\u00f3n a nombres completamente calificados.<\/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>En el siguiente gr\u00e1fico se muestra la latencia de la aplicaci\u00f3n antes y despu\u00e9s de que cambiamos varios nombres de host configurados en nuestra aplicaci\u00f3n a nombres completos (la l\u00ednea azul vertical indica el despliegue):<\/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\">Soluci\u00f3n #1: usar nombres completamente calificados<\/h3>\n<p><\/p>\n<p>Si tienes pocos nombres est\u00e1ticos externos (es decir, definidos en la configuraci\u00f3n de la aplicaci\u00f3n) a los que realizas un gran n\u00famero de conexiones, posiblemente la soluci\u00f3n m\u00e1s sencilla sea cambiar a nombres completamente calificados, simplemente a\u00f1adiendo. al final.<\/p>\n<p><\/p>\n<p>No es una soluci\u00f3n definitiva, pero ayuda a mejorar la situaci\u00f3n r\u00e1pidamente, aunque no de manera limpia. Este parche lo aplicamos para resolver nuestro problema, cuyos resultados se mostraron en las capturas de pantalla anteriores.<\/p>\n<p><\/p>\n<h3 id=\"reshenie-2---kastomizaciya-ndots-v-dnsconfig\">Soluci\u00f3n #2: personalizaci\u00f3n <code>ndots<\/code> en <code>dnsConfig<\/code><\/h3>\n<p><\/p>\n<p>En Kubernetes 1.9 se introdujo en modo alfa una funcionalidad (versi\u00f3n beta v1.10) que permite un mejor control de los par\u00e1metros DNS a trav\u00e9s de la propiedad del pod en <code>dnsConfig<\/code>. Entre otras cosas, permite configurar el valor <code>ndots<\/code> para un pod espec\u00edfico, es decir.<\/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\">Fuentes<\/h3>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/jdebp.eu.\/FGA\/dns-name-qualification.html\">\u00bfQu\u00e9 es la calificaci\u00f3n de nombre DNS?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/dns-pod-service\/\">Kubernetes: DNS para Servicios y Pods<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"takzhe-chitayte-drugie-stati-v-nashem-bloge\">Tambi\u00e9n lee otros art\u00edculos en nuestro blog:<\/h3>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/461723\/\">Entendiendo el paquete Context en Golang<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/437372\/\">Tres simples t\u00e9cnicas para reducir im\u00e1genes de Docker<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/426543\/\">Copias de seguridad de Stateful en Kubernetes<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/424717\/\">Copia de seguridad de un gran n\u00famero de proyectos web heterog\u00e9neos<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/347526\/\">Telegram-bot para Redmine. C\u00f3mo simplificar la vida a uno mismo y a los dem\u00e1s<\/a><\/noindex><\/li>\n<\/ul>\n<p>Fuente: <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.2 - 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\/es\/blog\/administrirovanie\/etc-resolv-conf-dlya-kubernetes-pods-optsiya-ndots-5-kak-eto-mozhet-negativno-skazatsya-na-proizvoditelnosti-prilozheniya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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 para pods de Kubernetes, opci\u00f3n ndots:5, c\u00f3mo puede afectar negativamente al rendimiento de la aplicaci\u00f3n | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/es\/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":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/37372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=37372"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/37372\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/28037"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=37372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=37372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=37372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}