{"id":39249,"date":"2019-10-31T22:28:41","date_gmt":"2019-10-31T19:28:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/cse-kubernetes-dlya-teh-kto-v-vcloud-e\/"},"modified":"2019-10-31T22:28:41","modified_gmt":"2019-10-31T19:28:41","slug":"cse-kubernetes-dlya-teh-kto-v-vcloud-e","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/cse-kubernetes-dlya-teh-kto-v-vcloud-e","title":{"rendered":"CSE: Kubernetes per chi \u00e8 in vCloud","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"CSE: Kubernetes per chi \u00e8 in vCloud\" src=\"\/wp-content\/uploads\/2019\/10\/075d61be0d23254a37f4ae3267cd99d5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Ciao a tutti!<\/b><\/p>\n<p>\u00c8 cos\u00ec che la nostra piccola squadra, non da poco tempo e, di certo, non all'improvviso, \u00e8 arrivata a migrare alcuni (e nel futuro tutti) i prodotti su Kubernetes. <\/p>\n<p>Ci sono stati molti motivi, ma la nostra storia non riguarda polemiche.<\/p>\n<p>Avevamo pochi fondamenti infrastrutturali. vCloud Director e vCloud Director. Abbiamo scelto quello pi\u00f9 aggiornato e deciso di cominciare. <\/p>\n<p>Sfogliando ancora una volta \"The Hard Way\", sono giunto rapidamente alla conclusione che uno strumento per automatizzare almeno i processi di base, come il deployment e il sizing, era necessario da ieri. Un'immersione profonda in Google ha rivelato un prodotto chiamato VMware Container Service Extension (CSE) \u2014 un prodotto open source che consente di automatizzare la creazione e il sizing dei cluster k8s per chi sta usando vCloud.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p>Disclaimer: CSE ha le sue limitazioni, ma per i nostri scopi era perfetto. Inoltre, la soluzione deve essere supportata dal fornitore di cloud, ma poich\u00e9 la parte server \u00e8 anch'essa open-source, richiedetene la disponibilit\u00e0 al manager pi\u00f9 vicino \ud83d\ude42<\/p><\/blockquote>\n<p>Per iniziare, \u00e8 necessario un account amministratore nell'organizzazione vCloud e una rete routata pre-creata per il cluster (durante il processo di deployment \u00e8 necessaria l'accesso a Internet da questa rete, non dimenticate di configurare il Firewall\/NAT). L'indirizzamento non ha importanza. In questo esempio utilizzeremo 10.0.240.0\/24.<\/p>\n<p><img decoding=\"async\" alt=\"CSE: Kubernetes per chi \u00e8 in vCloud\" src=\"\/wp-content\/uploads\/2019\/10\/1306223d7ffe81e5d2d2cfc1f9476245.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Dato che dopo la creazione, sar\u00e0 necessario gestire il cluster, si consiglia di avere una VPN con routing sulla rete creata. Noi utilizziamo una SSL-VPN standard, configurata sull'Edge Gateway della nostra organizzazione.<\/p><\/blockquote>\n<p> Successivamente \u00e8 necessario installare il client CSE da cui verranno gestiti i cluster k8s. Nel mio caso, questo \u00e8 un laptop aziendale e un paio di contenitori ben nascosti che gestiscono l'automazione. <\/p>\n<p>Il client richiede Python versione 3.7.3 o superiore e l'installazione del modulo <noindex><a rel=\"nofollow\" href=\"http:\/\/vmware.github.io\/vcd-cli\/\">vcd-cli<\/a><\/noindex>, quindi installeremo entrambi.<\/p>\n<pre><code class=\"bash\">pip3 install vcd-cli\n\npip3 install container-service-extension\n<\/code><\/pre>\n<p>\nDopo l'installazione, controlliamo la versione di CSE e otteniamo quanto segue:<\/p>\n<pre><code class=\"plaintext\"># vcd cse version\nError: No such command \"cse\".\n<\/code><\/pre>\n<p>\nInaspettato, ma correggibile. Come si \u00e8 rivelato, \u00e8 necessario integrare CSE come modulo a vcd-cli.<br \/>\nPer fare ci\u00f2, \u00e8 necessario prima accedere a vcd-cli nella nostra organizzazione:<\/p>\n<pre><code class=\"plaintext\"># vcd login MyCloud.provider.com org-dev admin\nPassword: \nadmin logged in, org: 'org-dev', vdc: 'org-dev_vDC01'\n<\/code><\/pre>\n<p>\nSuccessivamente, vcd-cli creer\u00e0 un file di configurazione <i>~\/.vcd-cli\/profiles.yaml<\/i><br \/>\nAlla fine di questo file \u00e8 necessario aggiungere quanto segue:<\/p>\n<pre><code class=\"plaintext\">extensions:\n  - container_service_extension.client.cse\n<\/code><\/pre>\n<p>\nDopo di che, verifichiamo di nuovo:<\/p>\n<pre><code class=\"plaintext\"># vcd cse version\nCSE, Container Service Extension for VMware vCloud Director, version 2.5.0\n<\/code><\/pre>\n<p>\nFase di installazione del cliente completata. Proviamo a distribuire il primo cluster.<br \/>\nCSE ha diversi set di parametri di utilizzo, tutti visibili <noindex><a rel=\"nofollow\" href=\"https:\/\/vmware.github.io\/container-service-extension\/CLUSTER_MANAGEMENT.html\">qui.<\/a><\/noindex><\/p>\n<p>Per cominciare, creiamo le chiavi per l'accesso senza password al futuro cluster. Questo \u00e8 un aspetto importante, poich\u00e9 per impostazione predefinita l'accesso tramite password alle nodi sar\u00e0 disabilitato e, se non si impostano le chiavi, sar\u00e0 necessario eseguire molte operazioni tramite la console delle macchine virtuali, il che non \u00e8 proprio comodo.<\/p>\n<pre><code class=\"plaintext\"># ssh-keygen\nGenerating public\/private rsa key pair.\nEnter file in which to save the key (\/root\/.ssh\/id_rsa): \nCreated directory '\/root\/.ssh'.\nEnter passphrase (empty for no passphrase): \nEnter same passphrase again: \nYour identification has been saved in \/root\/.ssh\/id_rsa.\nYour public key has been saved in \/root\/.ssh\/id_rsa.pub.\n<\/code><\/pre>\n<p>\nProviamo a avviare la creazione del cluster:<\/p>\n<pre><code class=\"bash\">vcd cse cluster create MyCluster --network k8s_cluster_net --ssh-key ~\/ .ssh\/ id_rsa.pub --nodes 3 --enable-nfs<\/code><\/pre>\n<p>\nSe otteniamo un errore <i>Error: Session has expired or user not logged in. Please re-login.<\/i> \u2014 effettuiamo nuovamente il login in vcd-cli su vCloud come descritto sopra e riprovando.<\/p>\n<p>Questa volta va tutto bene e il compito di creazione del cluster \u00e8 stato avviato.<\/p>\n<pre><code class=\"bash\">operazione del cluster: Creazione del vApp del cluster 'MyCluster' (38959587-54f4-4a49-8f2e-61c3a3e879e0) da template 'photon-v2_k8-1.12_weave-2.3.0' (revision 1)\n<\/code><\/pre>\n<p>\nIl completamento del compito richieder\u00e0 circa 20 minuti, nel frattempo analizziamo i principali parametri di avvio.<\/p>\n<blockquote><p>\u2014network \u2014 la rete creata in precedenza da noi.<br \/>\n\u2014ssh-key \u2014 le chiavi create da noi, che verranno registrate sui nodi del cluster.<br \/>\n\u2014nodes n \u2014 Numero di nodi Worker del cluster. Il Master sar\u00e0 sempre uno, questa \u00e8 una limitazione di CSE.<br \/>\n\u2014enable-nfs \u2014 creare un nodo aggiuntivo per la condivisione NFS per i volumi persistenti. \u00c8 un'opzione un po' pedale, torneremo a pianificare cosa fa pi\u00f9 tardi.\n<\/p><\/blockquote>\n<p> Nel frattempo, su vCloud possiamo osservare visivamente la creazione del cluster.<br \/>\n<img decoding=\"async\" alt=\"CSE: Kubernetes per chi \u00e8 in vCloud\" src=\"\/wp-content\/uploads\/2019\/10\/8698bfbd94a4c5b01805f128ad8b6479.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUna volta completato il compito di creazione del cluster, esso \u00e8 pronto per l'uso.<\/p>\n<p>Verifichiamo la correttezza del deployment con il comando <i>vcd cse cluster info MyCluster<\/i><\/p>\n<p><img decoding=\"async\" alt=\"CSE: Kubernetes per chi \u00e8 in vCloud\" src=\"\/wp-content\/uploads\/2019\/10\/d9ea5b02277fd8c87843c53a9269d485.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDopodich\u00e9 dobbiamo ottenere la configurazione del cluster per l'uso. <i>kubectl<\/i><\/p>\n<pre><code class=\"plaintext\"># vcd cse cluster config MyCluster &gt; .\/.kube\/config\n<\/code><\/pre>\n<p>\nE possiamo controllare lo stato del cluster gi\u00e0 utilizzando essa:<\/p>\n<p><img decoding=\"async\" alt=\"CSE: Kubernetes per chi \u00e8 in vCloud\" src=\"\/wp-content\/uploads\/2019\/10\/97a43470588da9d84dae8bedadc9df81.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA questo punto, il cluster pu\u00f2 essere considerato sostanzialmente operativo, se non fosse per la questione dei volumi persistenti. Poich\u00e9 siamo in vCloud, non possiamo utilizzare il fornitore vSphere. L'opzione <i>\u2014enable-nfs<\/i> \u00e8 stata pensata per mitigare questo inconveniente, ma non \u00e8 completamente efficace. \u00c8 necessaria una configurazione manuale.<\/p>\n<p>Per cominciare, al nostro nodo \u00e8 necessario creare un disco indipendente separato in vCloud. Questo garantisce che i nostri dati non scompaiano insieme al cluster nel caso venga eliminato. Inoltre, colleghiamo il disco a NFS. <\/p>\n<pre><code class=\"plaintext\"># vcd disk create nfs-shares-1 100g --description 'Kubernetes NFS shares'\n# vcd vapp attach mycluster nfsd-9604 nfs-shares-1\n<\/code><\/pre>\n<p>\nDopo di che, accediamo via ssh (vero, che avete creato le chiavi?) al nostro nodo NFS e colleghiamo definitivamente il disco:<\/p>\n<pre><code class=\"plaintext\">root@nfsd-9604:~# parted \/dev\/sdb\n(parted) mklabel gpt\nAttenzione: L'etichetta esistente sul disco \/dev\/sdb verr\u00e0 distrutta e tutti i dati su\nquesto disco verranno persi. Vuoi continuare?\nS\u00ec\/No? yes\n(parted) unit GB\n(parted) mkpart primary 0 100\n(parted) print\nModello: VMware Virtual disk (scsi)\nDisco \/dev\/sdb: 100GB\nDimensione del settore (logico\/fisico): 512B\/512B\nTabella delle partizioni: gpt\nFlag del disco:\n\nNumero  Inizio  Fine    Dimensione   File system  Nome     Flag\n 1      0.00GB  100GB  100GB               primary\n\n(parted) quit\nroot@nfsd-9604:~# mkfs -t ext4 \/dev\/sdb1\nCreazione del filesystem con 24413696 blocchi da 4k e 6111232 inode\nUUID del filesystem: 8622c0f5-4044-4ebf-95a5-0372256b34f0\nBackup del superblocchi salvati nei blocchi:\n\t32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,\n\t4096000, 7962624, 11239424, 20480000, 23887872\n\nAllocazione delle tabelle di gruppo: completato\nScrittura delle tabelle inode: completato\nCreazione del journal (32768 blocchi): completato\nScrittura dei superblocchi e delle informazioni di contabilit\u00e0 del filesystem: completato\n<\/code><\/pre>\n<p>\nCreiamo una directory per i dati e montiamo l\u00ec la nuova partizione:<\/p>\n<pre><code class=\"plaintext\">mkdir \/export\necho '\/dev\/sdb1  \/export   ext4  defaults   0 0' &gt;&gt; \/etc\/fstab\nmount -a\n<\/code><\/pre>\n<p>\nCreiamo cinque partizioni di prova e le condividiamo per il cluster:<\/p>\n<pre><code class=\"bash\">&gt;cd \/export\n&gt;mkdir vol1 vol2 vol3 vol4 vol5\n&gt;vi \/etc\/exports\n#Aggiungiamo questo alla fine del file\n\/export\/vol1 *(rw,sync,no_root_squash,no_subtree_check)\n\/export\/vol2 *(rw,sync,no_root_squash,no_subtree_check)\n\/export\/vol3 *(rw,sync,no_root_squash,no_subtree_check)\n\/export\/vol4 *(rw,sync,no_root_squash,no_subtree_check)\n\/export\/vol5 *(rw,sync,no_root_squash,no_subtree_check)\n#:wq! ;)\n#Successivamente - esportiamo le partizioni\n&gt;exportfs -r\n<\/code><\/pre>\n<p>\nDopo tutta questa magia, possiamo creare PV e PVC nel nostro cluster in questo modo:<br \/>\nPV:<\/p>\n<pre><code class=\"bash\">cat &lt;&lt;EOF | kubectl apply -f -\napiVersion: v1\nkind: PersistentVolume\nmetadata:\n  name: nfs-vol1\nspec:\n  capacity:\n    storage: 10Gi\n  accessModes:\n    - ReadWriteMany\n  nfs:\n    # Stessa IP dell&#039;host NFS a cui ci siamo connessi prima.\n    server: 10.150.200.22\n    path: &quot;\/export\/vol1&quot;\nEOF\n<\/code><\/pre>\n<p>\nPVC:<\/p>\n<pre><code class=\"bash\">cat &lt;&lt;EOF | kubectl apply -f -\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: nfs-pvc\nspec:\n  accessModes:\n    - ReadWriteMany\n  storageClassName: &quot;&quot;\n  resources:\n    requests:\n      storage: 10Gi\nEOF\n<\/code><\/pre>\n<p>\nCon questo si conclude la storia della creazione di un cluster e inizia la sua storia di vita. Come bonus, ecco altre due comandi utili CSE, che a volte possono far risparmiare o meno risorse:<\/p>\n<pre><code class=\"bash\">#\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0434\u043e 8 \u0432\u043e\u0440\u043a\u0435\u0440 \u043d\u043e\u0434\n&gt;cse cluster resize MyCluster --network k8s_cluster_net --nodes 8\n\n#\u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u043e\u0434\u044b \u0438\u0437 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0441 \u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u043c\n&gt;vcd cse node delete MyCluster node-1a2v node-6685 --yes\n<\/code><\/pre>\n<p>\nGrazie a tutti per il tempo dedicato, se avete domande - chiedete nei commenti.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/472752\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0422\u0430\u043a \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0430\u0448\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u043d\u0435 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u0434\u0430\u0432\u043d\u043e, \u0438 \u0443\u0436 \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e, \u0434\u043e\u0440\u043e\u0441\u043b\u0430 \u0434\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 (\u0430 \u0432 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0435 \u0438 \u0432\u0441\u0435\u0445) \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0432 Kubernetes. \u041f\u0440\u0438\u0447\u0438\u043d \u0442\u043e\u043c\u0443 \u0431\u044b\u043b\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e, \u043d\u043e \u043d\u0430\u0448\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043d\u0435 \u043f\u0440\u043e \u0445\u043e\u043b\u0438\u0432\u0430\u0440. \u0418\u0437 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u044b \u0432\u044b\u0431\u043e\u0440 \u0443 \u043d\u0430\u0441 \u0431\u044b\u043b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439. vCloud Director \u0438 vCloud Director. \u0412\u044b\u0431\u0440\u0430\u043b\u0438 \u0442\u043e\u0442, \u0447\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29455,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-39249","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.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0422\u0430\u043a \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0430\u0448\u0430.\" \/>\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\/cse-kubernetes-dlya-teh-kto-v-vcloud-e\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.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\udd47CSE: Kubernetes \u0434\u043b\u044f \u0442\u0435\u0445 \u043a\u0442\u043e \u0432 vCloud-\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0422\u0430\u043a \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0430\u0448\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/cse-kubernetes-dlya-teh-kto-v-vcloud-e\" \/>\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:28:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:28:41+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\udd47CSE: Kubernetes per chi \u00e8 in vCloud | ProHoster","description":"Ciao a tutti! \u00c8 andata cos\u00ec che la nostra.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/cse-kubernetes-dlya-teh-kto-v-vcloud-e","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\udd47CSE: Kubernetes \u0434\u043b\u044f \u0442\u0435\u0445 \u043a\u0442\u043e \u0432 vCloud-\u0435 | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0422\u0430\u043a \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0430\u0448\u0430.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/cse-kubernetes-dlya-teh-kto-v-vcloud-e","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:28:41+00:00","article:modified_time":"2019-10-31T19:28:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39249","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-24 01:28:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:53:37","updated":"2026-01-24 01:28:19","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\/39249","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=39249"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/39249\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/29455"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=39249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=39249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=39249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}