{"id":36822,"date":"2019-10-31T22:14:01","date_gmt":"2019-10-31T19:14:01","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kafka-na-kubernetes-eto-horosho\/"},"modified":"2019-10-31T22:14:01","modified_gmt":"2019-10-31T19:14:01","slug":"kafka-na-kubernetes-eto-horosho","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","title":{"rendered":"Kafka su Kubernetes: \u00e8 una buona cosa?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Benvenuti, Habr!<\/p>\n<p>All'epoca siamo stati i primi a portare sul mercato russo il tema <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/all\/product\/apache-kafka-potokovaya-obrabotka-i-analiz-dannyh\">Kafka<\/a><\/noindex> e continuiamo <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/132649774\">di monitorare<\/a><\/noindex> a seguirne l'evoluzione. In particolare, ci \u00e8 sembrato interessante il tema dell'interazione tra Kafka e <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/125705747\">Kubernetes<\/a><\/noindex>. Un'analisi (e piuttosto cauta) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/blog\/apache-kafka-kubernetes-could-you-should-you\">su Habr.<\/a><\/noindex> su questo argomento \u00e8 stata pubblicata nel blog dell'azienda Confluent gi\u00e0 nell'ottobre dello scorso anno a firma di Gwen Shapiro. Oggi vogliamo attirare la vostra attenzione su un articolo pi\u00f9 recente, di aprile, di Johann Gyger, che, pur non essendosi astenuto dall'usare un punto interrogativo nel titolo, esplora il tema in una chiave pi\u00f9 specifica, accompagnando il testo con link interessanti. Vi chiediamo scusa per la libera traduzione di \u00abchaos monkey\u00bb, se ce la fate!<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/462257\/\"><img decoding=\"async\" alt=\"Kafka su Kubernetes: \u00e8 una buona cosa?\" src=\"\/wp-content\/uploads\/2019\/08\/a7c9b9f2f2e0a2f55d69da18020440e6.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex> <\/p>\n<h4>Introduzione<\/h4>\n<p>\nKubernetes \u00e8 progettato per gestire carichi di lavoro senza stato. Di norma, questi tipi di carichi di lavoro sono rappresentati in forma di architettura a microservizi, sono leggeri, scalabili orizzontalmente, seguono i principi delle applicazioni a 12 fattori, e permettono di lavorare con interruttori automatici (circuit breaker) e scimmie del caos (chaos monkeys).<\/p>\n<p>Kafka, d'altra parte, funge essenzialmente da database distribuito. Pertanto, quando si lavora, bisogna gestire uno stato, che \u00e8 molto pi\u00f9 pesante di un microservizio. Kubernetes supporta carichi di lavoro con stato, ma, come sottolinea Kelsey Hightower in due dei suoi tweet, bisogna fare attenzione:<\/p>\n<blockquote><p>Alcuni pensano che se si applica Kubernetes a un carico di lavoro con stato, esso diventi un database completamente gestito in grado di competere con RDS. Non \u00e8 cos\u00ec. Forse, se si lavora abbastanza, si possono aggiungere componenti e coinvolgere un team di ingegneri SRE, si potrebbe configurare un RDS su Kubernetes.<\/p><\/blockquote>\n<blockquote><p>Raccomando sempre di prestare estrema attenzione quando si avviano carichi di lavoro con stato su Kubernetes. La maggior parte di coloro che si chiedono: \u00abPosso eseguire carichi di lavoro con stato su Kubernetes?\u00bb non ha esperienza sufficiente con Kubernetes e spesso nemmeno con il carico di lavoro in questione.<\/p><\/blockquote>\n<p> Quindi, vale la pena eseguire Kafka su Kubernetes? Una domanda a contrario: funzionerebbe meglio Kafka senza Kubernetes? Ecco perch\u00e9 voglio sottolineare in questo articolo come Kafka e Kubernetes si completino a vicenda e quali insidie possono sorgere dalla loro combinazione.<\/p>\n<h4>Tempo di esecuzione<\/h4>\n<p>\nParliamo di una cosa fondamentale: l'ambiente di runtime in quanto tale<\/p>\n<p><i><b>Processo<\/b><\/i><\/p>\n<p>I broker Kafka sono efficienti nell'uso della CPU. Il TLS pu\u00f2 comportare alcuni costi. Tuttavia, i client Kafka possono caricare maggiormente la CPU se utilizzano la crittografia, ma ci\u00f2 non influisce sui broker.<\/p>\n<p><i><b>Memoria<\/b><\/i><\/p>\n<p>I broker Kafka consumano memoria. La dimensione della heap JVM di solito deve essere limitata a 4-5 GB, ma avrete anche bisogno di molta memoria di sistema, poich\u00e9 Kafka utilizza molto attivamente la cache delle pagine. In Kubernetes, impostate adeguatamente i limiti delle risorse e le richieste del container.<\/p>\n<p><i><b>Storage dei dati<\/b><\/i><\/p>\n<p>Lo storage dei dati nei container \u00e8 efimero: i dati vanno persi al riavvio. Per i dati di Kafka, si pu\u00f2 utilizzare un volume <code>emptyDir<\/code>, e l'effetto sar\u00e0 analogo: i dati del vostro broker andranno persi dopo la chiusura. I vostri messaggi possono comunque essere conservati su altri broker come repliche. Pertanto, dopo il riavvio, il broker difettoso deve prima replicare tutti i dati, e questo processo pu\u00f2 richiedere un bel po' di tempo. <\/p>\n<p>Ecco perch\u00e9 \u00e8 necessario utilizzare uno storage di dati durevole. Deve essere uno storage durevole non locale con un filesystem XFS o, pi\u00f9 precisamente, ext4. Non utilizzare NFS. Te l\u2019ho detto. NFS versione v3 o v4 non funzioner\u00e0. In breve, il broker Kafka si fermer\u00e0 se non riesce a eliminare la directory dei dati a causa di problemi con le \"rinomine stupide\", rilevanti in NFS. Se non ti ho ancora convinto, presta molta attenzione <noindex><a rel=\"nofollow\" href=\"https:\/\/sbg.technology\/2018\/07\/10\/kafka-nfs\/\">leggi questo articolo<\/a><\/noindex>. Lo storage dei dati deve essere non locale, affinch\u00e9 Kubernetes possa scegliere un nuovo nodo in modo pi\u00f9 flessibile dopo un riavvio o una relocation.<\/p>\n<p><i><b>Rete<\/b><\/i><\/p>\n<p>Come nella maggior parte dei sistemi distribuiti, le prestazioni di Kafka dipendono fortemente dal mantenere al minimo le latenze di rete e al massimo la larghezza di banda. Non tentate di posizionare tutti i broker sullo stesso nodo, poich\u00e9 ci\u00f2 ridurrebbe la disponibilit\u00e0. Se un nodo Kubernetes fallisce, fallir\u00e0 anche l'intero cluster Kafka. Inoltre, non disperdete il cluster Kafka su interi data center. Lo stesso vale per il cluster Kubernetes. Un buon compromesso in questo caso \u00e8 scegliere diverse zone di disponibilit\u00e0.<\/p>\n<h4>Configurazione<\/h4>\n<p>\n<i><b>Manifesti comuni<\/b><\/i><\/p>\n<p>Sul sito di Kubernetes c'\u00e8 <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tutorials\/stateful-application\/zookeeper\/\">una guida molto utile<\/a><\/noindex> su come configurare ZooKeeper utilizzando i manifesti. Poich\u00e9 ZooKeeper fa parte di Kafka, \u00e8 un buon punto di partenza per familiarizzare con le concetti di Kubernetes applicabili qui. Una volta compreso ci\u00f2, sarete in grado di applicare le stesse concezioni anche al cluster Kafka.<\/p>\n<ul>\n<li><i>Sotto<\/i>: il pod \u00e8 l'unit\u00e0 base distribuita minima in Kubernetes. All'interno del pod si trova il vostro carico di lavoro, e il pod stesso corrisponde a un processo nel cluster. Il pod contiene uno o pi\u00f9 container. Ogni server ZooKeeper nell'ensemble e ogni broker nel cluster Kafka funzioneranno in un pod separato.<\/li>\n<li><i>StatefulSet<\/i>: StatefulSet \u00e8 un oggetto Kubernetes che gestisce pi\u00f9 carichi di lavoro persistenti, i quali richiedono coordinazione. I StatefulSet forniscono garanzie riguardo l'ordinamento dei pod e la loro unicit\u00e0.<\/li>\n<li><i>Servizi headless<\/i>: I servizi permettono di separare i pod dai client utilizzando un nome logico. In questo caso, Kubernetes si occupa del bilanciamento del carico. Tuttavia, quando si trattano carichi di lavoro persistenti, come nel caso di ZooKeeper e Kafka, i client devono scambiarsi informazioni con un'istanza specifica. \u00c8 qui che i servizi headless diventano utili: in tal caso, il client avr\u00e0 comunque un nome logico, ma non sar\u00e0 necessario riferirsi direttamente al pod. <\/li>\n<li><i>Volume per lo storage a lungo termine<\/i>: tali volumi sono necessari per configurare uno storage a blocchi non locale di lungo termine, come accennato in precedenza.<\/li>\n<\/ul>\n<p>\nA <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Yolean\/kubernetes-kafka\">Yolean<\/a><\/noindex> fornisce un insieme completo di manifesti che semplificano l'avvio del lavoro con Kafka su Kubernetes.<\/p>\n<p><i><b>Diagrammi Helm<\/b><\/i><\/p>\n<p>Helm \u00e8 un gestore di pacchetti per Kubernetes, paragonabile ai gestori di pacchetti per sistemi operativi come yum, apt, Homebrew o Chocolatey. Con esso, \u00e8 facile installare pacchetti software predefiniti descritti nei diagrammi Helm. Un diagramma Helm ben strutturato semplifica il compito complesso di configurare correttamente tutti i parametri per l'uso di Kafka su Kubernetes. Ci sono diversi diagrammi di Kafka: quello ufficiale si trova <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\/tree\/master\/incubator\/kafka\">in uno stato incubatore<\/a><\/noindex>, ce n'\u00e8 uno di <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/confluentinc\/cp-helm-charts\/tree\/master\/charts\/cp-kafka\">Confluent<\/a><\/noindex>, un altro \u00e8 di <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bitnami\/charts\/tree\/master\/bitnami\/kafka\">Bitnami<\/a><\/noindex>.<\/p>\n<p><i><b>Operatori<\/b><\/i><\/p>\n<p>Poich\u00e9 Helm presenta alcuni svantaggi, sta guadagnando popolarit\u00e0 un altro strumento: gli operatori Kubernetes. Un operatore non si limita a pacchettizzare software per Kubernetes, ma consente anche di distribuire e gestire tale software.<\/p>\n<p>Nella lista <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/operator-framework\/awesome-operators\">degli operatori straordinari<\/a><\/noindex> si menzionano due operatori per Kafka. Uno di essi \u00e8 <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/\">Strimzi<\/a><\/noindex>. Con Strimzi, \u00e8 semplice avviare un cluster Kafka in pochi minuti. Non \u00e8 necessaria quasi nessuna configurazione e l'operatore stesso offre alcune funzionalit\u00e0 interessanti, come la crittografia TLS punto a punto all'interno del cluster. Confluent fornisce anche <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/confluent-operator\/\">il proprio operatore<\/a><\/noindex>.<\/p>\n<p><b>Prestazioni<\/b><\/p>\n<p>\u00c8 molto importante testare le prestazioni fornendo punti di controllo al tuo istanza Kafka installata. Tali test possono aiutarti a identificare strozzature potenziali prima che sorgano problemi. Fortunatamente, Kafka gi\u00e0 fornisce due strumenti per il testing delle prestazioni: <code>kafka-producer-perf-test.sh<\/code> e <code>kafka-consumer-perf-test.sh<\/code>. Utilizzali attivamente. Per riferimento, puoi confrontarti con i risultati descritti in <noindex><a rel=\"nofollow\" href=\"https:\/\/engineering.linkedin.com\/kafka\/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines\">questo post<\/a><\/noindex> Jay Kreps, oppure fare riferimento a <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@stephane.maarek\/an-honest-review-of-aws-managed-apache-kafka-amazon-msk-94b1ff9459d8\">questa panoramica<\/a><\/noindex> Amazon MSK di St\u00e9phane Maarek.<\/p>\n<h4>Operazioni<\/h4>\n<p>\n<i><b>Monitoraggio<\/b><\/i><\/p>\n<p>La trasparenza nel sistema \u00e8 molto importante; altrimenti non capirai cosa sta succedendo. Oggi esistono strumenti solidi che offrono monitoraggio basato su metriche in stile cloud native. Due strumenti popolari per questo scopo sono Prometheus e Grafana. Prometheus pu\u00f2 raccogliere metriche da tutti i processi Java (Kafka, Zookeeper, Kafka Connect) tramite l'esportatore JMX - nel modo pi\u00f9 semplice possibile. Se si aggiungono le metriche cAdvisor, sar\u00e0 possibile avere una visione pi\u00f9 completa di come le risorse vengono utilizzate in Kubernetes.<\/p>\n<p>Strimzi offre un esempio molto utile di dashboard Grafana per Kafka. Visualizza metriche chiave, come quelle relative a settori non replicati o offline. Tutto \u00e8 molto chiaro. Queste metriche sono integrate da informazioni sull'uso delle risorse e sulle prestazioni, oltre a indicatori di stabilit\u00e0. In questo modo, ottieni un monitoraggio di base del cluster Kafka senza alcun costo!<\/p>\n<p><img decoding=\"async\" alt=\"Kafka su Kubernetes: \u00e8 una buona cosa?\" src=\"\/wp-content\/uploads\/2019\/08\/65ab468f7ebc0f376796990e41c62a48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFonte: <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/docs\/master\/#kafka_dashboard\">strimzi.io\/docs\/master\/#kafka_dashboard<\/a><\/noindex><\/p>\n<p>Tutto questo sarebbe bene integrarlo con il monitoraggio dei client (metriche su consumer e producer), cos\u00ec come con il monitoraggio del ritardo (per questo c'\u00e8 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/Burrow\">Burrow<\/a><\/noindex>) e il monitoraggio end-to-end \u2013 per farlo utilizza <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/kafka-monitor\">Kafka Monitor<\/a><\/noindex>.<\/p>\n<p><i><b>Registrazione<\/b><\/i><\/p>\n<p>La registrazione \u00e8 un'altra fondamentale responsabilit\u00e0. Assicurati che tutti i container nella tua installazione di Kafka vengano registrati in <code>stdout<\/code> e <code>stderr<\/code>, e assicurati anche che il tuo cluster Kubernetes raggruppi tutti i log in un'infrastruttura di logging centralizzata, ad esempio in <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/all\/product\/elasticsearch-kibana-logstash-i-poiskovye-sistemy-novogo-pokoleniya\">Elasticsearch<\/a><\/noindex>.<\/p>\n<p><i><b>Verifica del funzionamento<\/b><\/i><\/p>\n<p>Kubernetes utilizza probe di liveness e readiness per verificare se i tuoi pod funzionano correttamente. Se il controllo di liveness fallisce, Kubernetes fermer\u00e0 quel container e poi lo riavvier\u00e0 automaticamente, se la politica di riavvio \u00e8 impostata correttamente. Se il controllo di readiness fallisce, Kubernetes isoler\u00e0 quel pod dall'elaborazione delle richieste. In questo modo, in tali situazioni non \u00e8 pi\u00f9 necessario alcun intervento manuale, il che \u00e8 un grande vantaggio. <\/p>\n<p><i><b>Distribuzione degli aggiornamenti<\/b><\/i><\/p>\n<p>StatefulSet supporta aggiornamenti automatici: scegliendo la strategia RollingUpdate, ogni pod Kafka verr\u00e0 aggiornato uno alla volta. In questo modo, \u00e8 possibile ridurre a zero il tempo di fermo.<\/p>\n<p><i><b>Scalabilit\u00e0<\/b><\/i><\/p>\n<p>Scalare un cluster Kafka \u00e8 un compito complesso. Tuttavia, in Kubernetes \u00e8 molto semplice scalare i pod a un numero specifico di repliche, il che significa che puoi definire in modo dichiarativo quanti broker Kafka desideri. La parte pi\u00f9 difficile in questo caso \u00e8 la riassegnazione dei settori dopo una scalata verso l'alto o prima di una scalata verso il basso. Anche qui, Kubernetes pu\u00f2 aiutarti con questa operazione.<\/p>\n<p><i><b>Amministrazione<\/b><\/i><\/p>\n<p>Le attivit\u00e0 relative all'amministrazione del vostro cluster Kafka, in particolare la creazione di topic e la ridefinizione delle partizioni possono essere svolte utilizzando gli script shell esistenti, aprendo l'interfaccia della riga di comando nei vostri pod. Tuttavia, questa soluzione non \u00e8 molto elegante. Strimzi supporta la gestione dei topic tramite un altro operatore. Qui c'\u00e8 bisogno di miglioramenti.<\/p>\n<p><i><b>Backup e ripristino<\/b><\/i><\/p>\n<p>Ora la disponibilit\u00e0 di Kafka dipender\u00e0 anche dalla disponibilit\u00e0 di Kubernetes. Se il vostro cluster Kubernetes si guasta, nel peggiore dei casi si guaster\u00e0 anche il cluster Kafka. Secondo la legge di Murphy, ci\u00f2 accadr\u00e0 sicuramente, e perderete dati. Per ridurre il rischio di tali eventi, lavorate bene sul concetto di backup. Potete utilizzare MirrorMaker, un'altra opzione \u00e8 impiegare S3 a tal fine, come descritto in questo <noindex><a rel=\"nofollow\" href=\"https:\/\/jobs.zalando.com\/tech\/blog\/backing-up-kafka-zookeeper\/\">posto<\/a><\/noindex> di Zalando.<\/p>\n<h4>Conclusione<\/h4>\n<p>\nQuando si lavora con cluster Kafka di piccole o medie dimensioni, \u00e8 decisamente utile utilizzare Kubernetes, poich\u00e9 fornisce flessibilit\u00e0 aggiuntiva e semplifica il lavoro con gli operatori. Se avete requisiti non funzionali molto severi riguardanti la latenza e\/o la larghezza di banda, potrebbe essere meglio considerare un'altra opzione di distribuzione.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/462257\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u0432\u0430\u0441, \u0425\u0430\u0431\u0440! \u0412 \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u0432\u044b\u0432\u0435\u043b\u0438 \u043d\u0430 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u044b\u043d\u043e\u043a \u0442\u0435\u043c\u0443 Kafka \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0435\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043d\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0442\u0435\u043c\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f Kafka \u0438 Kubernetes. \u041e\u0431\u0437\u043e\u0440\u043d\u0430\u044f (\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u0430\u044f) \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0432\u044b\u0445\u043e\u0434\u0438\u043b\u0430 \u0432 \u0431\u043b\u043e\u0433\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Confluent \u0435\u0449\u0435 \u0432 \u043e\u043a\u0442\u044f\u0431\u0440\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u043f\u043e\u0434 \u0430\u0432\u0442\u043e\u0440\u0441\u0442\u0432\u043e\u043c \u0413\u0432\u0435\u043d \u0428\u0430\u043f\u0438\u0440\u044b. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0436\u0435 \u043c\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27586,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36822","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=\"\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u0432\u0430\u0441, \u0425\u0430\u0431\u0440! \u0412 \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u0432\u044b\u0432\u0435\u043b\u0438 \u043d\u0430 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u044b\u043d\u043e\u043a \u0442\u0435\u043c\u0443\" \/>\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\/kafka-na-kubernetes-eto-horosho\" \/>\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\udd47Kafka \u043d\u0430 Kubernetes \u2014 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u0432\u0430\u0441, \u0425\u0430\u0431\u0440! \u0412 \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u0432\u044b\u0432\u0435\u043b\u0438 \u043d\u0430 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u044b\u043d\u043e\u043a \u0442\u0435\u043c\u0443\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho\" \/>\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:14:01+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:14:01+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\udd47Kafka su Kubernetes \u00e8 una buona cosa? | ProHoster","description":"Benvenuti, Habr! In passato siamo stati i primi a lanciare sul mercato russo il tema","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","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\udd47Kafka \u043d\u0430 Kubernetes \u2014 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e? | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u0432\u0430\u0441, \u0425\u0430\u0431\u0440! \u0412 \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u0432\u044b\u0432\u0435\u043b\u0438 \u043d\u0430 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u044b\u043d\u043e\u043a \u0442\u0435\u043c\u0443","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","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:14:01+00:00","article:modified_time":"2019-10-31T19:14:01+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36822","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-22 04:58:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:38:24","updated":"2026-01-22 04:58: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\/36822","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=36822"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/36822\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/27586"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=36822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=36822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=36822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}