{"id":37636,"date":"2019-10-31T22:18:44","date_gmt":"2019-10-31T19:18:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/sozdayom-kubernetes-platformu-v-pinterest\/"},"modified":"2019-10-31T22:18:44","modified_gmt":"2019-10-31T19:18:44","slug":"sozdayom-kubernetes-platformu-v-pinterest","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/sozdayom-kubernetes-platformu-v-pinterest","title":{"rendered":"Creiamo una piattaforma Kubernetes in Pinterest","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Nel corso degli anni, Pinterest ha visto 300 milioni di utenti creare oltre 200 miliardi di pin su pi\u00f9 di 4 miliardi di bacheche. Per gestire quest'esercito di utenti e l'ampia base di contenuti, il portale ha sviluppato migliaia di servizi, dai microservizi in grado di funzionare con pochi CPU ai giganteschi monoliti che operano su un'intera flotta di macchine virtuali. E cos\u00ec \u00e8 arrivato il momento in cui l'azienda ha puntato lo sguardo su k8s. Cosa ha attratto Pinterest nel \u201ccubetto\u201d? Lo scoprirete nella nostra traduzione di un recente articolo da <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/pinterest-engineering\">blog Pinterest engineering<\/a><\/noindex>.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Creiamo una piattaforma Kubernetes in Pinterest\" src=\"\/wp-content\/uploads\/2019\/08\/71719121d8d0ed8e284b471c3bcb7328.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nQuindi, centinaia di milioni di utenti e centinaia di miliardi di pin. Per gestire quest'esercito di utenti e l'ampia base di contenuti, abbiamo sviluppato migliaia di servizi, dai microservizi in grado di funzionare con pochi CPU ai giganteschi monoliti che operano su un'intera flotta di macchine virtuali. Inoltre, abbiamo una variet\u00e0 di framework che possono anch'essi richiedere risorse CPU, memoria o accesso alle operazioni di input\/output.<\/p>\n<p>Nella gestione di questo zoo di strumenti, il team di sviluppo si trova ad affrontare diverse problematiche:<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ul>\n<li>Gli ingegneri non hanno un modo unificato per avviare l'ambiente di lavoro. I servizi stateless, i servizi stateful e i progetti in fase di sviluppo attivo si basano su stack tecnologici completamente diversi. Ci\u00f2 ha portato alla creazione di un intero corso di formazione per gli ingegneri e ha reso il lavoro del nostro team infrastrutturale notevolmente pi\u00f9 complesso.<\/li>\n<li>Gli sviluppatori, che dispongono di un proprio parco di macchine virtuali, creano un'enorme pressione sui nostri amministratori interni. Di conseguenza, operazioni semplici come l'aggiornamento del sistema operativo o dell'AMI si allungano per settimane o mesi. Questo porta a un aumento del carico in situazioni che sembrano assolutamente quotidiane.<\/li>\n<li>Difficolt\u00e0 nella creazione di strumenti di gestione dell'infrastruttura globali sopra alle soluzioni gi\u00e0 esistenti. La situazione \u00e8 complicata ulteriormente dal fatto che non \u00e8 semplice trovare i proprietari delle macchine virtuali. In altre parole, non sappiamo se sia sicuro estrarre queste risorse per utilizzarle in altre aree della nostra infrastruttura.<\/li>\n<\/ul>\n<p>\nI sistemi di orchestrazione dei container sono un modo per unificare la gestione del carico di lavoro. Ti aprono la strada per aumentare la velocit\u00e0 di sviluppo e semplificano la gestione dell'infrastruttura, poich\u00e9 tutte le risorse coinvolte nel progetto sono gestite da un unico sistema centralizzato.<\/p>\n<p><img decoding=\"async\" alt=\"Creiamo una piattaforma Kubernetes in Pinterest\" src=\"\/wp-content\/uploads\/2019\/08\/8ce586ab31e593c99310ae2bf2a7bafb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Figura 1: Priorit\u00e0 dell'infrastruttura (affidabilit\u00e0, produttivit\u00e0 degli sviluppatori ed efficienza).<\/i><\/p>\n<p>Il team della Cloud Management Platform in Pinterest ha conosciuto K8s nel 2017. Nella prima met\u00e0 del 2017, abbiamo documentato gran parte delle nostre capacit\u00e0 produttive, inclusi API e tutti i nostri <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/server\/\"   title=\"server web\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1189\">server web<\/a>. Successivamente, abbiamo effettuato una valutazione attenta di diversi sistemi di orchestrazione delle soluzioni container, costruzione e gestione dei cluster. Alla fine del 2017, abbiamo deciso di utilizzare Kubernetes. Era abbastanza flessibile e ampiamente supportato dalla comunit\u00e0 degli sviluppatori.<\/p>\n<p>Attualmente abbiamo creato i nostri strumenti di avvio del cluster basati su Kops e abbiamo migato i componenti esistenti dell'infrastruttura a Kubernetes, come rete, sicurezza, metriche, registrazione, gestione delle identit\u00e0 e traffico. Abbiamo anche implementato un sistema di modellazione del carico di lavoro per la nostra risorsa, la cui complessit\u00e0 \u00e8 nascosta agli sviluppatori. Ora ci concentriamo sulla stabilit\u00e0 del cluster, sulla sua scalabilit\u00e0 e sull'integrazione di nuovi clienti.<\/p>\n<h4>Kubernetes: il percorso di Pinterest<\/h4>\n<p>\nIniziare a lavorare con Kubernetes su larga scala in Pinterest come piattaforma che sar\u00e0 amata dai nostri ingegneri ha comportato molte difficolt\u00e0.<\/p>\n<p>Come grande azienda, abbiamo investito risorse significative negli strumenti infrastrutturali. Un esempio possono essere gli strumenti di sicurezza che gestiscono certificati e distribuiscono chiavi, i componenti di controllo del traffico, i sistemi di rilevamento dei servizi, i componenti di visibilit\u00e0 e invio di log e metriche. Tutto questo non \u00e8 stato messo insieme per caso: abbiamo seguito un normale percorso di tentativi ed errori e quindi desideravamo integrare tutto questo nella nuova infrastruttura su Kubernetes invece di reinventare la ruota su una nuova piattaforma. Questo approccio ha semplificato nel complesso la migrazione, poich\u00e9 tutto il supporto alle applicazioni esiste gi\u00e0, non deve essere creato da zero.<\/p>\n<p>D'altra parte, i modelli di previsione dei carichi in Kubernetes (ad esempio, deployment, jobs e DaemonSets) non sono sufficienti per il nostro progetto. Questi problemi di usabilit\u00e0 rappresentano enormi ostacoli al passaggio a Kubernetes. Ad esempio, abbiamo sentito sviluppatori di servizi lamentarsi della mancanza o della configurazione errata dell'ingresso. Inoltre, ci siamo scontrati con un utilizzo inappropriato dei templater, quando sono state create centinaia di copie con specifi che uguali e job, il che ha portato a terribili problemi di debugging.<\/p>\n<p>Era anche molto difficile supportare diverse versioni all'interno dello stesso cluster. Immaginate la complessit\u00e0 del supporto clienti se \u00e8 necessario lavorare contemporaneamente con molte versioni dello stesso ambiente di esecuzione, con tutti i loro problemi, bug e aggiornamenti.<\/p>\n<h4>Risorse e controllori personalizzati di Pinterest<\/h4>\n<p>\nPer facilitare il processo di implementazione di Kubernetes per i nostri ingegneri, e per semplificare l'infrastruttura e accelerare le sue prestazioni, abbiamo sviluppato le nostre definizioni di risorse personalizzate (CRD).<\/p>\n<p>Le CRD offrono le seguenti funzionalit\u00e0:<\/p>\n<ol>\n<li>Integrazione di diverse risorse native di Kubernetes per funzionare come un unico carico. Ad esempio, la risorsa PinterestService comprende deployment, servizio di ingresso e configMap. Questo consente agli sviluppatori di non preoccuparsi della configurazione del DNS.<\/li>\n<li>Implementazione della necessaria supporto per le applicazioni. L'utente deve concentrarsi solo sulla specifica del container secondo la propria logica di business, mentre il controllore CRD implementa tutti i necessari init-container, variabili d'ambiente e specifiche pod. Questo offre un livello di comfort sostanzialmente diverso per gli sviluppatori.<\/li>\n<li>I controllori CRD gestiscono anche il ciclo di vita delle risorse personalizzate e aumentano la disponibilit\u00e0 del debugging. Ci\u00f2 include il confronto tra le specifiche desiderate e quelle reali, l'aggiornamento dello stato delle CRD e la registrazione degli eventi e altro ancora. Senza CRD, gli sviluppatori sarebbero costretti a gestire un numero elevato di risorse, il che aumenterebbe solo la probabilit\u00e0 di errore. <\/li>\n<\/ol>\n<p>\nEcco un esempio di PinterestService e di una risorsa interna gestita dal nostro controllore:<\/p>\n<p><img decoding=\"async\" alt=\"Creiamo una piattaforma Kubernetes in Pinterest\" src=\"\/wp-content\/uploads\/2019\/08\/5f76107d023d18f535447a13d41404fa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nCome mostrato sopra, per supportare il contenitore personalizzato \u00e8 necessario integrare al suo interno un contenitore di inizializzazione e alcune estensioni per garantire sicurezza, visibilit\u00e0 e gestione del traffico di rete. Inoltre, abbiamo creato modelli di schede di configurazione e implementato il supporto per i modelli PVC per i job batch, oltre al tracciamento di molte variabili ambientali per monitorare l'identificazione, il consumo di risorse e la raccolta di \"spazzatura\".<\/p>\n<p>\u00c8 difficile immaginare che gli sviluppatori vogliano scrivere questi file di configurazione a mano senza il supporto del CRD, per non parlare di ulteriore supporto e debug delle configurazioni.<\/p>\n<h4>Flusso di lavoro per il deployment delle applicazioni<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Creiamo una piattaforma Kubernetes in Pinterest\" src=\"\/wp-content\/uploads\/2019\/08\/08c953d5cf32244733cf4193c1b304bc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNell'immagine sopra \u00e8 mostrato come distribuire una risorsa personalizzata Pinterest nel cluster Kubernetes:<\/p>\n<ol>\n<li>Gli sviluppatori interagiscono con il nostro cluster Kubernetes tramite CLI e interfaccia utente.<\/li>\n<li>Gli strumenti CLI\/UI estraggono i file YAML di configurazione del flusso di lavoro e altre propriet\u00e0 di build (lo stesso identificativo della versione) da Artifactory, inviandoli quindi al Job Submission Service. Questo passaggio garantisce che nel cluster vengano fornite solo versioni funzionanti. <\/li>\n<li>JSS funge da gateway per diverse piattaforme, incluso Kubernetes. Qui avviene l'autenticazione dell'utente, l'assegnazione delle quote e un controllo parziale della configurazione del nostro CRD.<\/li>\n<li>Dopo la verifica del CRD presso JSS, le informazioni vengono inviate all'API della piattaforma k8s.<\/li>\n<li>Il nostro controller CRD monitora gli eventi su tutte le risorse personalizzate. Trasforma il CR in risorse nativa di k8s, aggiunge i moduli necessari, imposta le variabili ambientali appropriate ed esegue altre operazioni ausiliarie, garantendo alle applicazioni containerizzate supporto infrastrutturale adeguato.<\/li>\n<li>Successivamente, il controller CRD invia i dati ottenuti all'API di Kubernetes affinch\u00e9 vengano elaborati dal planner e messi in esecuzione.<\/li>\n<\/ol>\n<p>\n<b>Nota<\/b>: questo flusso di lavoro pre-rilascio del deployment \u00e8 stato creato per i primi utenti della nuova piattaforma k8s. Attualmente siamo in fase di affinamento di questo processo per integrarlo completamente con il nostro nuovo CI\/CD. Ci\u00f2 significa che non possiamo raccontarvi tutto ci\u00f2 che concerne Kubernetes. Non vediamo l'ora di condividere la nostra esperienza e di parlare dei progressi del team in questa direzione nel nostro prossimo post sul blog \"Building a CI\/CD platform for Pinterest\".<\/p>\n<h4>Tipi di risorse speciali<\/h4>\n<p>\nIn base alle specifiche esigenze di Pinterest, abbiamo sviluppato i seguenti CRD che sono adatti per diversi flussi di lavoro:<\/p>\n<ul>\n<li>PinterestService \u00e8 un servizio stateless che \u00e8 in funzione da tempo. Molti dei nostri sistemi principali si basano su un insieme di questi servizi.<\/li>\n<li>PinterestJobSet modella operazioni batch a ciclo completo. In Pinterest esiste uno scenario comune in cui pi\u00f9 lavoro avvia gli stessi contenitori in parallelo, indipendentemente da altri processi simili.<\/li>\n<li>PinterestCronJob \u00e8 ampiamente utilizzato in combinazione con carichi di lavoro periodici leggeri. Questa \u00e8 un\u2019interfaccia per il funzionamento nativo di cron con meccanismi di supporto di Pinterest che si occupano di sicurezza, traffico, log e metriche.<\/li>\n<li>PinterestDaemon comprende i demoni dell'infrastruttura. Questa famiglia continua a crescere, poich\u00e9 aggiungiamo sempre pi\u00f9 supporto per i nostri cluster.<\/li>\n<li>PinterestTrainingJob si applica ai processi Tensorflow e Pytorch, fornendo lo stesso livello di supporto durante il funzionamento di tutti gli altri CRD. Poich\u00e9 in Pinterest utilizziamo attivamente Tensorflow e altri sistemi di machine learning, abbiamo avuto motivo di costruire un CRD separato attorno a loro.<\/li>\n<\/ul>\n<p>\nStiamo inoltre lavorando su PinterestStatefulSet, che sar\u00e0 presto adattato per archivi di dati e altri sistemi stateful.<\/p>\n<h4>Supporto per l'ambiente di esecuzione<\/h4>\n<p>\nQuando il modulo delle applicazioni viene avviato in Kubernetes, riceve automaticamente un certificato per identificarsi. Questo certificato viene utilizzato per accedere al vault dei segreti o per comunicare con altri servizi attraverso mTLS. Nel frattempo, il configuratore di inizializzazione dei contenitori e il Daemon caricheranno tutte le dipendenze necessarie prima dell'avvio dell'applicazione container. Quando tutto sar\u00e0 pronto, il traffico sidecar e il Daemon registreranno l'indirizzo IP del modulo nel nostro Zookeeper, affinch\u00e9 i clienti possano trovarlo. Tutto ci\u00f2 funzioner\u00e0 poich\u00e9 il modulo di rete \u00e8 stato configurato prima dell'avvio dell'applicazione.<\/p>\n<p>Qui sopra sono riportati esempi tipici di supporto per i carichi di lavoro in esecuzione. Per altri tipi di carichi di lavoro potrebbe essere necessario un supporto leggermente diverso, ma tutti sono rappresentati come sidecar a livello di pod, nodi o Daemon a livello di macchine virtuali. Ci assicuriamo che tutto ci\u00f2 sia distribuito nell'ambito dell'infrastruttura di gestione e coordinato tra le applicazioni, riducendo in modo significativo il carico di lavoro in termini di operazioni tecniche e supporto clienti.<\/p>\n<h4>Test e QA<\/h4>\n<p>\nAbbiamo creato una pipeline di test end-to-end sopra l'infrastruttura di test gi\u00e0 esistente in Kubernetes. Questi test si estendono a tutti i nostri cluster. La nostra pipeline ha subito molte revisioni prima di diventare parte del cluster di prodotto.<\/p>\n<p>Oltre ai sistemi di test, abbiamo sistemi di monitoraggio e alerting che controllano costantemente lo stato dei componenti del sistema, il consumo delle risorse e altri indicatori chiave, avvisandoci solo quando \u00e8 necessario un intervento umano.<\/p>\n<h4>Alternative<\/h4>\n<p>\nAbbiamo preso in considerazione alcune alternative alle risorse personalizzate, come i controllori di accesso mutazionale e i sistemi di template. Tuttavia, tutti comportano seri problemi operativi, quindi abbiamo scelto la strada CRD.<\/p>\n<p>Il controllore di accesso mutazionale \u00e8 stato utilizzato per introdurre i sidecar, le variabili ambientali e altro supporto durante l'esecuzione. Tuttavia, ha affrontato vari problemi, come il binding delle risorse e la gestione del loro ciclo di vita, problemi che non si presentano con la CRD.<\/p>\n<p><b>Nota:<\/b> I sistemi di template, come i diagrammi Helm, sono ampiamente utilizzati per il lancio di applicazioni con configurazioni simili. Tuttavia, le nostre applicazioni di lavoro sono troppo varie per poter essere gestite tramite template. Inoltre, durante il deployment continuo con l'uso di template, si verificheranno troppi errori.<\/p>\n<h4>Lavoro imminente<\/h4>\n<p>\nAttualmente affrontiamo un carico di lavoro misto su tutti i nostri cluster. Per supportare tali processi di diversi tipi e dimensioni, stiamo lavorando nelle seguenti direzioni:<\/p>\n<ul>\n<li>Un insieme di cluster distribuisce grandi applicazioni su diversi cluster per garantire scalabilit\u00e0 e stabilit\u00e0.<\/li>\n<li>Garantire stabilit\u00e0, scalabilit\u00e0 e visibilit\u00e0 del cluster per creare un collegamento tra l'applicazione e il suo SLA.<\/li>\n<li>Gestione delle risorse e delle quote, affinch\u00e9 le applicazioni non entrino in conflitto tra loro e la scala del cluster sia controllata da noi.<\/li>\n<li>Una nuova piattaforma CI\/CD per supportare e distribuire applicazioni in Kubernetes.<\/li>\n<\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/itsumma\/blog\/465487\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0417\u0430 \u0433\u043e\u0434\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f Pinterest 300 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 200 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u043f\u0438\u043d\u043e\u0432 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c 4 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u0434\u043e\u0441\u043e\u043a. \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0430\u0440\u043c\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u043e\u0431\u0448\u0438\u0440\u043d\u0443\u044e \u043a\u043e\u043d\u0442\u0435\u043d\u0442-\u0431\u0430\u0437\u0443, \u043f\u043e\u0440\u0442\u0430\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0442\u044b\u0441\u044f\u0447\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e CPU, \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f \u0433\u0438\u0433\u0430\u043d\u0442\u0441\u043a\u0438\u043c\u0438 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u0440\u0443\u0442\u044f\u0442\u0441\u044f \u043d\u0430 \u0446\u0435\u043b\u043e\u043c \u043f\u0430\u0440\u043a\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d. \u0418 \u0432\u043e\u0442 \u043d\u0430\u0441\u0442\u0443\u043f\u0438\u043b \u043c\u043e\u043c\u0435\u043d\u0442, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28249,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37636","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=\"\u0417\u0430 \u0433\u043e\u0434\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f Pinterest 300 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 200 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u043f\u0438\u043d\u043e\u0432 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c 4 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u0434\u043e\u0441\u043e\u043a.\" \/>\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\/sozdayom-kubernetes-platformu-v-pinterest\" \/>\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\udd47\u0421\u043e\u0437\u0434\u0430\u0451\u043c kubernetes-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0432 Pinterest | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0417\u0430 \u0433\u043e\u0434\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f Pinterest 300 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 200 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u043f\u0438\u043d\u043e\u0432 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c 4 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u0434\u043e\u0441\u043e\u043a.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/sozdayom-kubernetes-platformu-v-pinterest\" \/>\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:18:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:18:44+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\udd47Creiamo una piattaforma kubernetes in Pinterest | ProHoster","description":"Nel corso degli anni, Pinterest ha visto la creazione di oltre 200 miliardi di pin da parte di 300 milioni di utenti su pi\u00f9 di 4 miliardi di bacheche.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/sozdayom-kubernetes-platformu-v-pinterest","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\udd47\u0421\u043e\u0437\u0434\u0430\u0451\u043c kubernetes-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0432 Pinterest | ProHoster","og:description":"\u0417\u0430 \u0433\u043e\u0434\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f Pinterest 300 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 200 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u043f\u0438\u043d\u043e\u0432 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c 4 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u0434\u043e\u0441\u043e\u043a.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/sozdayom-kubernetes-platformu-v-pinterest","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:18:44+00:00","article:modified_time":"2019-10-31T19:18:44+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37636","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-02-09 15:30:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:23:06","updated":"2026-02-09 15:30: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\/37636","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=37636"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/37636\/revisions"}],"predecessor-version":[{"id":158433,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/37636\/revisions\/158433"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/28249"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=37636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=37636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=37636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}