{"id":81185,"date":"2020-05-11T13:42:59","date_gmt":"2020-05-11T11:42:59","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/k8s-multicluster-journey"},"modified":"2020-05-11T13:42:59","modified_gmt":"2020-05-11T11:42:59","slug":"k8s-multicluster-journey","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/k8s-multicluster-journey","title":{"rendered":"K8S Multicluster Journey","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ciao, Habr!<\/p>\n<p>Presentiamo il team della piattaforma Exness. I nostri colleghi hanno gi\u00e0 scritto un articolo riguardo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/exness\/blog\/488392\/\">Immagini pronte per la produzione per k8s<\/a><\/noindex>. Oggi vogliamo condividere l'esperienza di migrazione dei servizi su Kubernetes.<\/p>\n<p><img decoding=\"async\" alt=\"K8S Multicluster Journey\" src=\"\/wp-content\/uploads\/2020\/05\/23684e366a59da27be15384fc9e9f2b9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nIniziamo fornendo alcune cifre per comprendere meglio di cosa si parler\u00e0:<\/p>\n<ul>\n<li>Il nostro dipartimento di sviluppo conta oltre 100 persone, tra cui pi\u00f9 di 10 team con processi Auto-sufficienti di QA, DevOps e Scrum. Il nostro stack tecnologico include Python, PHP, C++, Java e Golang.\u00a0\n<\/li>\n<li>Le dimensioni dell'ambiente di test e di produzione sono circa 2000 container ciascuno, gestiti tramite Rancher v1.6 sulla propria virtualizzazione e sotto VMware.\u00a0\n<\/li>\n<\/ul>\n<p><\/p>\n<h4>Motivazione<\/h4>\n<p>\nCome si dice, nulla \u00e8 eterno sotto la luna, e Rancher ha annunciato ormai da tempo la cessazione del supporto per la versione 1.6. S\u00ec, in pi\u00f9 di tre anni abbiamo imparato a gestirlo e risolvere i problemi che si presentavano, ma sempre pi\u00f9 spesso ci siamo imbattuti in questioni che non sarebbero mai state risolte. Inoltre, Rancher 1.6 ha un sistema di autorizzazione rigido, dove o hai quasi tutto o nulla.<\/p>\n<p>La virtualizzazione proprietaria, sebbene fornisse un maggiore controllo sulla sicurezza e sullo storage dei dati, comportava costi operativi difficili da sostenere con la crescita continua dell'azienda, dei progetti e delle loro esigenze.<\/p>\n<p>Volevamo seguire gli standard IaC e ottenere potenza rapidamente, in qualsiasi localizzazione geografica e senza lock-in vendor, cos\u00ec come poter rinunciare a tale potenza con altrettanta facilit\u00e0.<\/p>\n<h4>Primi passi<\/h4>\n<p>\nIn primis, volevamo basarci su tecnologie e soluzioni moderne che consentissero ai team di avere cicli di sviluppo pi\u00f9 rapidi e minimizzare i costi operativi per interagire con la piattaforma che forniva potenza.\u00a0<br \/>\n\u00a0<br \/>\nNaturalmente, la prima cosa che ci \u00e8 venuta in mente \u00e8 stata Kubernetes, ma non ci siamo affrettati e abbiamo condotto una piccola ricerca per verificare la correttezza della nostra scelta. Abbiamo valutato solo soluzioni opensource, e in una competizione sfrenata ha vinto senza riserve Kubernetes.\u00a0\u00a0<\/p>\n<p>Successivamente, ci siamo posti il problema di quale strumento utilizzare per creare cluster. Abbiamo confrontato le soluzioni pi\u00f9 popolari: kops, kubespray, kubeadm.<\/p>\n<p>Per iniziare, kubeadm ci \u00e8 sembrato un percorso troppo complicato, quasi un'invenzione di un 'nuovo mezzo', mentre kops mancava di flessibilit\u00e0.<\/p>\n<p>Il vincitore \u00e8 stato:<\/p>\n<p><img decoding=\"async\" alt=\"K8S Multicluster Journey\" src=\"\/wp-content\/uploads\/2020\/05\/fb577d241a7f22f2217d3223b81827fd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAbbiamo iniziato a fare esperimenti sulla nostra virtualizzazione e su AWS, cercando di ricreare una somiglianza col nostro precedente modello di gestione delle risorse, dove tutti utilizzavano lo stesso 'cluster'. Cos\u00ec abbiamo creato il nostro primo cluster composto da 10 piccole <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/vps\/\"   title=\"di macchine virtuali\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2027\">di macchine virtuali<\/a>, una delle quali si trova su AWS. Abbiamo iniziato a provare a migrare i team, sembrava che tutto stesse andando 'bene', e la storia potrebbe finire qui, ma...<\/p>\n<h4>Primi Problemi<\/h4>\n<p>\nAnsible \u2014 su cui si basa kubespray \u2014 non \u00e8 lo strumento pi\u00f9 adatto per seguire IaC: durante il provisioning o il decommissioning delle nodi, succedeva sempre qualcosa di imprevisto, richiedendo un'intervento manuale, e l'esecuzione del playbook si comportava in modo diverso a seconda del sistema operativo. Con l'aumentare del numero di team e nodi nel cluster, abbiamo notato che il playbook impiegava sempre pi\u00f9 tempo per completarsi, con un nostro record di 3,5 ore. E il vostro? \ud83d\ude42<\/p>\n<p>E apparentemente kubespray \u00e8 solo Ansible, e all'inizio sembra tutto chiaro, ma:<\/p>\n<p><img decoding=\"async\" alt=\"K8S Multicluster Journey\" src=\"\/wp-content\/uploads\/2020\/05\/93d3f392f22664fbdf5a43fd77947be1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAll'inizio, il compito era avviare potenza solo su AWS e sulla virtualizzazione, ma poi, come spesso accade, le esigenze sono cambiate.<br \/>\n\u00a0<br \/>\n<img decoding=\"async\" alt=\"K8S Multicluster Journey\" src=\"\/wp-content\/uploads\/2020\/05\/8db7eada6648da7bdb60920880a8a88d.jpg\" style=\"display:block;margin: 0 auto;\" \/><img decoding=\"async\" alt=\"K8S Multicluster Journey\" src=\"\/wp-content\/uploads\/2020\/05\/7f19b80a994d8dce75cd9dd74614fb34.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn questo contesto, \u00e8 diventato chiaro che il nostro vecchio modello di unificazione delle risorse in un unico sistema di orchestrazione non era adeguato \u2014 specialmente quando i cluster erano distanti e gestiti da diversi provider.\u00a0<\/p>\n<p>Ma non \u00e8 finita qui. Quando tutti i team operano all'interno dello stesso cluster, vari servizi con NodeSelector mal configurati possono finire su un 'host' sbagliato di un'altra squadra, consumando risorse, e nel caso di un taint, iniziavano a emergere continue segnalazioni che alcuni servizi non funzionavano correttamente a causa di errori umani. Inoltre, un'altra problematica era il calcolo dei costi, specialmente considerando le difficolt\u00e0 nella distribuzione dei servizi tra i nodi.<\/p>\n<p>Un'altra questione riguardava l'assegnazione dei permessi ai membri del team: ogni team voleva essere 'alla guida' del cluster e gestirlo completamente, il che poteva portare a un completo collasso, poich\u00e9 i team sono generalmente indipendenti tra loro.<\/p>\n<h4>Cosa fare?<\/h4>\n<p>\nConsiderando quanto detto e le richieste dei team di essere pi\u00f9 autonomi, abbiamo giunto a una conclusione semplice: un team \u2014 un cluster.\u00a0<\/p>\n<p>Cos\u00ec abbiamo creato il secondo:<\/p>\n<p><img decoding=\"async\" alt=\"K8S Multicluster Journey\" src=\"\/wp-content\/uploads\/2020\/05\/215c3ae09dd79e64657201c791b9375d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nE poi un terzo cluster:\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"K8S Multicluster Journey\" src=\"\/wp-content\/uploads\/2020\/05\/ea88e0394b97d05747e7d711f63de0a0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nQui abbiamo iniziato a riflettere: supponiamo che tra un anno i nostri team abbiano pi\u00f9 di un cluster? In diverse zone geografiche, per esempio, o gestiti da diversi provider? E qualcuno di loro vorr\u00e0 essere in grado di creare rapidamente un cluster temporaneo per dei test.\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"K8S Multicluster Journey\" src=\"\/wp-content\/uploads\/2020\/05\/44f7f0dfe56462caeb74204ac0c10f54.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSarebbe un vero e proprio Kubernetes! Si tratta di un MultiKubernetes, dunque.\u00a0<\/p>\n<p>Nel frattempo, tutti noi dovremo in qualche modo supportare tutti questi cluster, gestire facilmente l'accesso ad essi, nonch\u00e9 creare nuovi cluster e dismettere quelli vecchi senza interazioni manuali.<\/p>\n<p>Da quando abbiamo iniziato il nostro percorso nel mondo di Kubernetes \u00e8 passato un po' di tempo, e abbiamo deciso di rivedere le soluzioni disponibili. Si \u00e8 scoperto che sul mercato c'era gi\u00e0 qualcosa: Rancher 2.2.<\/p>\n<p><img decoding=\"async\" alt=\"K8S Multicluster Journey\" src=\"\/wp-content\/uploads\/2020\/05\/e2547fd5ce3ead078da064b52cb4e6eb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNella prima fase delle nostre ricerche, Rancher Labs aveva gi\u00e0 rilasciato la prima versione 2, ma anche se era possibile avviarla rapidamente, facendo funzionare il container senza dipendenze esterne con un paio di parametri o utilizzando l'HELM Chart ufficiale, ci \u00e8 sembrata poco matura, e non sapevamo se poter contare su questa soluzione, se sar\u00e0 sviluppata ulteriormente o rapidamente abbandonata. Anche la stessa logica del cluster = clic nel UI non ci sembrava adatta, e non volevamo legarci a RKE, poich\u00e9 \u00e8 uno strumento abbastanza specializzato.\u00a0<\/p>\n<p>La versione Rancher 2.2 aveva gi\u00e0 un aspetto molto pi\u00f9 funzionale e, rispetto alla versione precedente, offriva molte interessanti funzionalit\u00e0 di base, come l'integrazione con molti provider esterni, un unico punto di distribuzione dei permessi e dei file kubeconfig, lancio dell'immagine kubectl con le proprie autorizzazioni nell'interfaccia utente, spazi dei nomi nidificati, ovvero progetti.\u00a0<\/p>\n<p>Inoltre, attorno a Rancher 2 si era gi\u00e0 formata una comunit\u00e0, ed era stato creato un provider HashiCorp Terraform per la sua gestione, che ci ha aiutato a mettere tutto insieme.<\/p>\n<h4>Cosa abbiamo ottenuto<\/h4>\n<p>\nAlla fine abbiamo ottenuto un piccolo cluster, in cui \u00e8 in esecuzione Rancher, accessibile a tutti gli altri cluster, cos\u00ec come molti cluster ad esso associati, a cui si pu\u00f2 accedere altrettanto facilmente quanto aggiungere un utente nel catalogo ldap, indipendentemente da dove si trovi e quali risorse utilizzi il provider.<\/p>\n<p>Utilizzando gitlab-ci e Terraform, \u00e8 stato creato un sistema che consente di creare un cluster di qualsiasi configurazione nei provider cloud o nella nostra infrastruttura, e collegarli a Rancher. Tutto questo \u00e8 stato realizzato in stile IaC, dove ogni cluster \u00e8 descritto da un repository, e il suo stato \u00e8 versionato. Inoltre, la maggior parte dei moduli viene collegata da repository esterni, quindi resta solo da passare le variabili o descrivere la propria configurazione personalizzata per gli istanti, il che aiuta a ridurre la percentuale di ripetizione del codice.<\/p>\n<p><img decoding=\"async\" alt=\"K8S Multicluster Journey\" src=\"\/wp-content\/uploads\/2020\/05\/4124621cbd4a44b814929e41b5bea49d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCerto, il nostro viaggio non \u00e8 affatto finito e ci sono ancora molte sfide interessanti, come un punto unico per lavorare con i log e le metriche di qualsiasi cluster, service mesh, gitops per la gestione dei carichi nel multicluster e molto altro. Speriamo che la nostra esperienza vi risulti interessante!\u00a0<\/p>\n<p>L'articolo \u00e8 stato scritto da A. Antipov, A. Ganush, Platform Engineers.\u00a0<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/exness\/blog\/501090\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Exness. \u0420\u0430\u043d\u0435\u0435 \u043d\u0430\u0448\u0438 \u043a\u043e\u043b\u043b\u0435\u0433\u0438 \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u0440\u043e Production-ready images for k8s. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0432 Kubernetes. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0446\u0438\u0444\u0440 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0442\u043e\u0433\u043e, \u043e \u0447\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u0438\u0434\u0442\u0438 \u0440\u0435\u0447\u044c: \u041d\u0430\u0448 \u043e\u0442\u0434\u0435\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u044d\u0442\u043e 100+ \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u0441\u0440\u0435\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u043e\u043b\u0435\u0435 10 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":81186,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-81185","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.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Exness.\" \/>\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\/it\/blog\/administrirovanie\/k8s-multicluster-journey\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\udd47K8S Multicluster Journey | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Exness.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/k8s-multicluster-journey\" \/>\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-11T11:42:59+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-11T11:42:59+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\udd47K8S Multicluster Journey | ProHoster","description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Exness.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/k8s-multicluster-journey","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\udd47K8S Multicluster Journey | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Exness.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/k8s-multicluster-journey","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-11T11:42:59+00:00","article:modified_time":"2020-05-11T11:42:59+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"81185","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:03:22","updated":"2026-02-09 17:11:07","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/81185","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=81185"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/81185\/revisions"}],"predecessor-version":[{"id":159271,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/81185\/revisions\/159271"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/81186"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=81185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=81185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=81185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}