{"id":82913,"date":"2020-05-26T13:42:32","date_gmt":"2020-05-26T11:42:32","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-korrektnoe-otklyuchenie-terminate"},"modified":"2020-05-26T13:42:32","modified_gmt":"2020-05-26T11:42:32","slug":"luchshie-praktiki-kubernetes-korrektnoe-otklyuchenie-terminate","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-korrektnoe-otklyuchenie-terminate","title":{"rendered":"Mejores pr\u00e1cticas de Kubernetes. Desactivaci\u00f3n correcta de Terminate","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502052\/\">Mejores pr\u00e1cticas de Kubernetes. Creaci\u00f3n de contenedores peque\u00f1os<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502320\/\">Mejores pr\u00e1cticas de Kubernetes. Organizaci\u00f3n de Kubernetes con el espacio de nombres<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502430\/\">Mejores pr\u00e1cticas de Kubernetes. Verificaci\u00f3n de la viabilidad de Kubernetes mediante pruebas de Readiness y Liveness.<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502614\/\">Mejores pr\u00e1cticas de Kubernetes. Configuraci\u00f3n de solicitudes y l\u00edmites de recursos<\/a><\/noindex><\/p>\n<p><img decoding=\"async\" alt=\"Mejores pr\u00e1cticas de Kubernetes. Desactivaci\u00f3n correcta de Terminate\" src=\"\/wp-content\/uploads\/2020\/05\/4c3f50a0968007bbfa99d167b43d0a5a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUn aspecto importante en el funcionamiento de los sistemas distribuidos es el manejo de fallos. Kubernetes ayuda en esto utilizando controladores que supervisan el estado de su sistema y reinician los servicios que han dejado de funcionar. Sin embargo, Kubernetes puede detener forzosamente sus aplicaciones para garantizar la viabilidad general del sistema. En esta serie, veremos c\u00f3mo puede ayudar a Kubernetes a realizar su trabajo de manera m\u00e1s efectiva y reducir el tiempo de inactividad de las aplicaciones. <noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Antes de comenzar a usar contenedores, la mayor\u00eda de las aplicaciones se ejecutaban en m\u00e1quinas virtuales o f\u00edsicas. Si una aplicaci\u00f3n fallaba o se bloqueaba, se necesitaba mucho tiempo para detener la tarea en ejecuci\u00f3n y reiniciar el programa. En el peor de los casos, alguien ten\u00eda que resolver este problema manualmente por la noche, en un momento poco oportuno. Si una tarea importante era realizada por solo 1-2 m\u00e1quinas de trabajo, tal fallo era completamente inaceptable. <br \/>\nPor lo tanto, en lugar de reinicios manuales, se comenz\u00f3 a utilizar la supervisi\u00f3n a nivel de procesos para reiniciar autom\u00e1ticamente la aplicaci\u00f3n en caso de un cierre inesperado. Si el programa falla, el proceso de supervisi\u00f3n captura el c\u00f3digo de salida y reinicia el servidor. Con la llegada de sistemas como Kubernetes, este tipo de respuesta a los fallos del sistema se integr\u00f3 directamente en la infraestructura.<\/p>\n<p>Kubernetes utiliza un bucle de eventos de 'observaci\u00f3n - registro de diferencias - acci\u00f3n' para asegurarse de que los recursos mantengan su operatividad desde los contenedores hasta los nodos mismos.<\/p>\n<p><img decoding=\"async\" alt=\"Mejores pr\u00e1cticas de Kubernetes. Desactivaci\u00f3n correcta de Terminate\" src=\"\/wp-content\/uploads\/2020\/05\/fe255d31824d2e570492a882ea7e54c7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEsto significa que ya no es necesario iniciar manualmente la supervisi\u00f3n de procesos. Si un recurso no pasa la verificaci\u00f3n de estado de Health Check, Kubernetes simplemente proporcionar\u00e1 autom\u00e1ticamente un reemplazo. A su vez, Kubernetes hace mucho m\u00e1s que solo monitorear los fallos de sus aplicaciones. Puede crear m\u00e1s copias de la aplicaci\u00f3n para funcionar en varias m\u00e1quinas, actualizar la aplicaci\u00f3n o ejecutar simult\u00e1neamente varias versiones de su aplicaci\u00f3n.<br \/>\nPor lo tanto, existen muchas razones por las que Kubernetes puede interrumpir el funcionamiento de un contenedor completamente sano. Por ejemplo, si actualiza su despliegue, Kubernetes detendr\u00e1 lentamente los pods antiguos mientras inicia nuevos. Si apaga un nodo, Kubernetes detendr\u00e1 todos los pods en ese nodo. Finalmente, si un nodo se queda sin recursos, Kubernetes apagar\u00e1 todos los pods para liberar esos recursos.<\/p>\n<p>Por lo tanto, es muy importante que su aplicaci\u00f3n se detenga con el m\u00ednimo impacto en el usuario final y con un tiempo de recuperaci\u00f3n m\u00ednimo. Esto significa que, antes de apagarse, debe guardar todos los datos que necesite almacenar, cerrar todas las conexiones de red, completar el trabajo restante y realizar otras tareas urgentes.<\/p>\n<p>En la pr\u00e1ctica, esto significa que su aplicaci\u00f3n debe ser capaz de manejar el mensaje SIGTERM, que es la se\u00f1al de terminaci\u00f3n del proceso, la cual es la se\u00f1al predeterminada para la utilidad kill en los sistemas operativos basados en Unix. Al recibir este mensaje, la aplicaci\u00f3n debe apagarse.<\/p>\n<p>Una vez que Kubernetes decide terminar el pod, se produce una serie de eventos. Vamos a revisar cada etapa que Kubernetes realiza al cerrar un contenedor o pod.<\/p>\n<p>Supongamos que queremos terminar uno de los pods. En este momento, dejar\u00e1 de recibir tr\u00e1fico nuevo; los contenedores que est\u00e1n funcionando en el pod no se ver\u00e1n afectados, pero todo el tr\u00e1fico nuevo ser\u00e1 bloqueado.<\/p>\n<p><img decoding=\"async\" alt=\"Mejores pr\u00e1cticas de Kubernetes. Desactivaci\u00f3n correcta de Terminate\" src=\"\/wp-content\/uploads\/2020\/05\/d89c31e39bfdc16e5a8db3b4e22f8dca.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVeamos el gancho preStop: es un comando especial o una solicitud HTTP que se env\u00eda a los contenedores en el pod. Si su aplicaci\u00f3n no se apaga correctamente al recibir SIGTERM, puede usar preStop para cerrar correctamente. <\/p>\n<p><img decoding=\"async\" alt=\"Mejores pr\u00e1cticas de Kubernetes. Desactivaci\u00f3n correcta de Terminate\" src=\"\/wp-content\/uploads\/2020\/05\/9d45a209daf3b5698266481680b45da2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa mayor\u00eda de los programas se apagan correctamente al recibir la se\u00f1al SIGTERM, pero si utiliza c\u00f3digo de terceros o un sistema que no puede controlar completamente, el gancho preStop es una excelente manera de invocar un apagado elegante sin modificar la aplicaci\u00f3n.<\/p>\n<p>Despu\u00e9s de la ejecuci\u00f3n de este hook, Kubernetes enviar\u00e1 una se\u00f1al SIGTERM a los contenedores en el pod, lo que les informar\u00e1 que pronto ser\u00e1n desconectados. Al recibir esta se\u00f1al, su c\u00f3digo comenzar\u00e1 el proceso de desconexi\u00f3n. Este proceso puede incluir la detenci\u00f3n de cualquier conexi\u00f3n de larga duraci\u00f3n, como una conexi\u00f3n a la base de datos o un flujo WebSocket, la salvaguarda del estado actual, y cosas similares.<\/p>\n<p>Incluso si utiliza el hook preStop, es muy importante verificar qu\u00e9 ocurre con su aplicaci\u00f3n cuando le env\u00eda la se\u00f1al SIGTERM, c\u00f3mo se comporta, para que eventos o cambios en el funcionamiento del sistema provocados por la desconexi\u00f3n del pod no le tomen por sorpresa.<\/p>\n<p>En este momento, antes de tomar m\u00e1s acciones, Kubernetes esperar\u00e1 durante el tiempo especificado, llamado terminationGracePeriodSecond, o periodo para una desconexi\u00f3n adecuada al recibir la se\u00f1al SIGTERM.<\/p>\n<p><img decoding=\"async\" alt=\"Mejores pr\u00e1cticas de Kubernetes. Desactivaci\u00f3n correcta de Terminate\" src=\"\/wp-content\/uploads\/2020\/05\/6f74959ff74252bb1ad2dd9c011c177c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPor defecto, este periodo es de 30 segundos. Es importante se\u00f1alar que dura en paralelo con el hook preStop y la se\u00f1al SIGTERM. Kubernetes no esperar\u00e1 a que finalice el hook preStop y la SIGTERM; si su aplicaci\u00f3n finaliza antes de que termine el periodo de TerminationGracePeriod, Kubernetes pasar\u00e1 inmediatamente al siguiente paso. Por lo tanto, aseg\u00farese de que el valor de este periodo en segundos no sea menor que el tiempo necesario para una desconexi\u00f3n adecuada del pod, y si supera los 30s, aumente el periodo al valor requerido en YAML. En el ejemplo dado, es de 60s.<\/p>\n<p>Y finalmente, el \u00faltimo paso: si los contenedores a\u00fan siguen funcionando al finalizar el terminationGracePeriod, enviar\u00e1n una se\u00f1al SIGKILL y ser\u00e1n eliminados forzosamente. En este momento, Kubernetes tambi\u00e9n limpiar\u00e1 todos los dem\u00e1s objetos del pod.<\/p>\n<p><img decoding=\"async\" alt=\"Mejores pr\u00e1cticas de Kubernetes. Desactivaci\u00f3n correcta de Terminate\" src=\"\/wp-content\/uploads\/2020\/05\/cb71079ffd166c955474738e5af6301a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKubernetes detiene los pods por muchas razones, as\u00ed que aseg\u00farese de que, en cualquier caso, su aplicaci\u00f3n se cierre correctamente para garantizar la estabilidad del servicio. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/503612\/\">Mejores pr\u00e1cticas de Kubernetes. Mapeo de servicios externos <\/a><\/noindex><\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"Z_l_kE1MDTc\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/Z_l_kE1MDTc\/hqdefault.jpg\" alt=\"Reproducir video\" 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>Un poco de publicidad \ud83d\ude42<\/h3>\n<p>\nGracias por permanecer con nosotros. \u00bfTe gustan nuestros art\u00edculos? \u00bfQuieres ver m\u00e1s contenido interesante? Ap\u00f3yanos haciendo un pedido o recomendando a tus conocidos, <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">VPS en la nube para desarrolladores desde $4.99<\/a><\/noindex>, <b>un an\u00e1logo \u00fanico de servidores entry-level que hemos dise\u00f1ado para Ti:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">Toda la verdad sobre VPS (KVM) E5-2697 v3 (6 n\u00facleos) 10GB DDR4 480GB SSD 1Gbps desde $19, o c\u00f3mo dividir correctamente un servidor?<\/a><\/noindex> (disponibles opciones con RAID1 y RAID10, hasta 24 n\u00facleos y hasta 40GB DDR4).<\/p>\n<p><b>\u00bfDell R730xd a mitad de precio en el centro de datos Equinix Tier IV en \u00c1msterdam?<\/b> Solo aqu\u00ed <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 100 TB desde $199<\/a><\/noindex> \u00a1en los Pa\u00edses Bajos! <b>Dell R420 \u2014 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 \u00a1desde $99!<\/b><\/b> Lee sobre c\u00f3mo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">Construir infraestructura de clase empresarial usando servidores Dell R730xd E5-2650 v4 que cuestan 9000 euros a un precio asequible?<\/a><\/noindex><br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/503488\/\">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 \u0412\u0430\u0436\u043d\u044b\u043c \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u0431\u043e\u0435\u0432. Kubernetes \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432 \u044d\u0442\u043e\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u0435\u0434\u044f\u0442 \u0437\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u0432\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":82914,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-82913","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=\"\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\/es\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-korrektnoe-otklyuchenie-terminate\" \/>\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\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 | 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\/es\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-korrektnoe-otklyuchenie-terminate\" \/>\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:32+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-26T11:42:32+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 Mejores pr\u00e1cticas de Kubernetes. Desconexi\u00f3n adecuada Terminar | ProHoster","description":"Mejores pr\u00e1cticas de Kubernetes.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-korrektnoe-otklyuchenie-terminate","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\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 | ProHoster","og:description":"\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-korrektnoe-otklyuchenie-terminate","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:32+00:00","article:modified_time":"2020-05-26T11:42:32+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"82913","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:28:37","updated":"2022-09-29 17:02:01","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\/82913","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=82913"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/82913\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/82914"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=82913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=82913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=82913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}