{"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 \u2014 \u00e8 una buona idea?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Benvenuti, Habr!<\/p>\n<p>In passato, siamo stati i primi a lanciare 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 seguire<\/a><\/noindex> a seguirne lo sviluppo. 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) su questo argomento \u00e8 stata pubblicata nel blog dell'azienda Confluent gi\u00e0 nell'ottobre dello scorso anno a cura di Gwen Shapiro. Oggi vogliamo attirare la vostra attenzione su un articolo pi\u00f9 recente, di aprile, di Johann Gyger, il quale, sebbene non abbia evitato un punto interrogativo nel titolo, affronta la questione in modo pi\u00f9 concreto, accompagnando il testo con link interessanti. Scusateci, per favore, per la traduzione libera di \"chaos monkey\", se potete! <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/blog\/apache-kafka-kubernetes-could-you-should-you\">articolo<\/a><\/noindex> di questo argomento si era gi\u00e0 parlato nel blog dell'azienda Confluent nell'ottobre dello scorso anno a cura di Gwen Shapiro. Oggi vogliamo richiamare la vostra attenzione su un articolo pi\u00f9 recente di aprile di Johann Gyger, che, sebbene non abbia evitato un punto interrogativo nel titolo, affronta il tema in modo pi\u00f9 concreto, accompagnando il testo con link interessanti. Vi preghiamo di scusare la nostra traduzione libera di \"chaos monkey\", se possibile!<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/462257\/\"><img decoding=\"async\" alt=\"Kafka su Kubernetes \u2014 \u00e8 una buona idea?\" 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. In genere, questi carichi di lavoro sono rappresentati in forma di architetture a microservizi, sono leggeri, ben scalabili orizzontalmente, seguono i principi delle applicazioni 12-factor, consentono di lavorare con interruttori automatici (circuit breaker) e scimmie del caos (chaos monkeys).<\/p>\n<p>Kafka, posizionato dall'altra parte, funge sostanzialmente da database distribuito. Di conseguenza, quando si lavora, ci si deve confrontare con lo stato, che \u00e8 molto pi\u00f9 pesante di un microservizio. Kubernetes supporta i carichi di lavoro con stato, ma, come sottolinea Kelsey Hightower nei suoi due tweet, bisogna maneggiarli con cautela:<\/p>\n<blockquote><p>Alcuni credono che se si implementa Kubernetes su un carico di lavoro con stato, esso diventi un database completamente gestito, in grado di competere con RDS. Non \u00e8 cos\u00ec. Forse, con sufficiente impegno, aggiungendo componenti e coinvolgendo un team di ingegneri SRE, si riesce a configurare RDS sopra Kubernetes.<\/p><\/blockquote>\n<blockquote><p>Raccomando sempre di essere estremamente cauti nel lanciare carichi di lavoro con stato su Kubernetes. La maggior parte di coloro che si chiedono 'posso eseguire carichi di lavoro con stato su Kubernetes' non ha esperienza sufficiente con Kubernetes e spesso nemmeno con il carico di lavoro specifico a cui si riferiscono.<\/p><\/blockquote>\n<p> Dunque, \u00e8 opportuno eseguire Kafka su Kubernetes? La domanda opposta \u00e8: funzionerebbe meglio Kafka senza Kubernetes? Ecco perch\u00e9 voglio sottolineare in questo articolo come Kafka e Kubernetes si completano a vicenda e quali insidie possono sorgere dalla loro combinazione.<\/p>\n<h4>Tempo di esecuzione<\/h4>\n<p>\nParliamo di una cosa basilare: 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 questo non influisce sui broker.<\/p>\n<p><i><b>Memoria<\/b><\/i><\/p>\n<p>I broker Kafka consumano molta memoria. La dimensione della heap JVM di solito \u00e8 consigliata per essere limitata a 4-5 GB, ma avrai anche bisogno di molta memoria di sistema, poich\u00e9 Kafka utilizza intensamente la cache delle pagine. In Kubernetes, imposta di conseguenza i limiti delle risorse del contenitore e le richieste.<\/p>\n<p><i><b>Archiviazione dei dati<\/b><\/i><\/p>\n<p>L'archiviazione dei dati nei contenitori \u00e8 effimera: i dati vengono persi al riavvio. Per i dati di Kafka \u00e8 possibile utilizzare un volume <code>emptyDir<\/code>, e l'effetto sar\u00e0 simile: i dati del tuo broker andranno persi al termine. I tuoi messaggi potrebbero comunque rimanere su altri broker come repliche. Quindi, dopo il riavvio, il broker guasto deve prima replicare tutti i dati, e questo processo potrebbe richiedere del tempo. <\/p>\n<p>Ecco perch\u00e9 \u00e8 importante utilizzare uno storage dati a lungo termine. Che sia uno storage non locale con un filesystem XFS o, pi\u00f9 precisamente, ext4. Non usare NFS. Ti avverto. NFS versioni v3 o v4 non funzioneranno. In breve, il broker Kafka si fermer\u00e0 se non pu\u00f2 eliminare la directory dei dati a causa di problemi di \u00abrinominazione stupida\u00bb, attuali in NFS. Se finora non ti ho convinto, fai 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 rilocazione.<\/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 mantenimento di latenze di rete minime e da una larghezza di banda massima. Non cercate di posizionare tutti i broker nello stesso nodo, poich\u00e9 ci\u00f2 ridurrebbe la disponibilit\u00e0. Se un nodo Kubernetes fallisce, anche l'intero cluster Kafka andr\u00e0 in crash. Inoltre, non disperdete il cluster Kafka su diversi 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 manifesti. Poich\u00e9 ZooKeeper fa parte di Kafka, \u00e8 un buon punto di partenza per familiarizzare con quali concetti di Kubernetes sono applicabili qui. Una volta compreso questo, sarete in grado di applicare gli stessi concetti anche al cluster Kafka.<\/p>\n<ul>\n<li><i>Sotto<\/i>: pod \u2013 \u00e8 l'unit\u00e0 minima distribuita in Kubernetes. In un pod risiede il tuo carico di lavoro, e il pod stesso corrisponde a un processo nel tuo cluster. Un pod pu\u00f2 contenere uno o pi\u00f9 container. Ogni server ZooKeeper nell'insieme e ogni broker nel cluster Kafka opereranno in un pod separato.<\/li>\n<li><i>StatefulSet<\/i>: StatefulSet \u2013 \u00e8 un oggetto di Kubernetes che gestisce carichi di lavoro multipli con stato, il quale richiede coordinazione. StatefulSet fornisce garanzie riguardo all'ordinamento dei pod e alla loro unicit\u00e0.<\/li>\n<li><i>Servizi Headless<\/i>: I servizi consentono di scollegare i pod dai client tramite un nome logico. In questo caso, Kubernetes si occupa del bilanciamento del carico. Tuttavia, nelle operazioni con carichi di lavoro che mantengono lo stato, come nel caso di ZooKeeper e Kafka, i client devono interagire con un'istanza specifica. \u00c8 qui che entrano in gioco i servizi headless: in tal caso, il client avr\u00e0 comunque un nome logico, ma non sar\u00e0 necessario contattare direttamente il pod. <\/li>\n<li><i>Volume per storage a lungo termine<\/i>: questi volumi sono necessari per la configurazione dello storage a blocchi a lungo termine non locale menzionato in precedenza.<\/li>\n<\/ul>\n<p>\nSu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Yolean\/kubernetes-kafka\">Yolean<\/a><\/noindex> fornisce un insieme completo di manifesti, con cui \u00e8 facile iniziare a lavorare con Kafka su Kubernetes.<\/p>\n<p><i><b>Grafici Helm<\/b><\/i><\/p>\n<p>Helm \u00e8 un gestore di pacchetti per Kubernetes, paragonabile a gestori di pacchetti per sistemi operativi come yum, apt, Homebrew o Chocolatey. Facilita l'installazione di pacchetti software predefiniti, descritti nei grafici Helm. Un grafico Helm ben progettato semplifica il compito complesso di configurare correttamente tutti i parametri per utilizzare Kafka su Kubernetes. Ci sono diversi grafici Kafka: quello ufficiale \u00e8 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\/tree\/master\/incubator\/kafka\">in stato di incubazione<\/a><\/noindex>, ce n'\u00e8 uno da <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/confluentinc\/cp-helm-charts\/tree\/master\/charts\/cp-kafka\">Confluent<\/a><\/noindex>, un altro da <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 notevole popolarit\u00e0 un altro strumento: gli operatori Kubernetes. L'operatore non solo impacchetta il software per Kubernetes, ma consente anche di distribuire e gestire tale software.<\/p>\n<p>Nell'elenco <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/operator-framework\/awesome-operators\">straordinari operatori<\/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, creare un cluster Kafka \u00e8 un gioco da ragazzi in pochi minuti. Quasi nessuna configurazione \u00e8 necessaria, e l'operatore stesso offre anche alcune funzionalit\u00e0 utili, come la crittografia TLS \u00abpoint-to-point\u00bb all'interno del cluster. Confluent offre 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 al tuo istanza Kafka dei punti di controllo. Questi test ti aiuteranno a individuare potenziali colli di bottiglia prima che si presentino problemi. Fortunatamente, Kafka fornisce gi\u00e0 due strumenti per il test delle prestazioni: <code>kafka-producer-perf-test.sh<\/code> e <code>kafka-consumer-perf-test.sh<\/code>. Usali 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 comprenderete cosa sta succedendo. Oggi esiste un ampio arsenale di strumenti che garantiscono il 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, in modo molto semplice. Se si aggiungono le metriche di cAdvisor, si potr\u00e0 avere una visione pi\u00f9 completa di come vengono utilizzate le risorse in Kubernetes.<\/p>\n<p>Strimzi ha un esempio molto utile di dashboard Grafana per Kafka. Visualizza metriche chiave, come quelle sui settori non replicati o quelli offline. Tutto \u00e8 molto chiaro. Queste metriche sono integrate con informazioni sull'uso delle risorse e sulle performance, insieme a indicatori di stabilit\u00e0. In questo modo, si ottiene un monitoraggio di base del cluster Kafka gratuitamente!<\/p>\n<p><img decoding=\"async\" alt=\"Kafka su Kubernetes \u2014 \u00e8 una buona idea?\" 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 ci\u00f2 sarebbe opportuno integrare con il monitoraggio dei client (metriche sui consumatori e produttori), nonch\u00e9 con il monitoraggio del ritardo (per questo c'\u00e8 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/Burrow\">Burrow<\/a><\/noindex>) e monitoraggio end-to-end \u2013 per questo utilizzate <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>Il logging \u00e8 un'altra operazione fondamentale. Assicurati che tutti i container nella tua installazione Kafka siano registrati in <code>stdout<\/code> e <code>stderr<\/code>, e fai in modo che il tuo cluster Kubernetes aggregi tutti i log in un'infrastruttura di logging centrale, come 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 i controlli di \"vitalit\u00e0\" (liveness) e di disponibilit\u00e0 (readiness) per verificare se i tuoi pod funzionano correttamente. Se il controllo di vitalit\u00e0 fallisce, Kubernetes fermer\u00e0 quel container e lo riavvier\u00e0 automaticamente, se la politica di riavvio \u00e8 impostata correttamente. Se il controllo di disponibilit\u00e0 fallisce, Kubernetes isoler\u00e0 quel pod dal servizio delle richieste. In tal modo, non \u00e8 pi\u00f9 necessario alcun intervento manuale in tali situazioni, il che rappresenta un grande vantaggio. <\/p>\n<p><i><b>Distribuzione degli aggiornamenti<\/b><\/i><\/p>\n<p>Gli StatefulSet supportano aggiornamenti automatici: scegliendo la strategia RollingUpdate, ogni pod Kafka verr\u00e0 aggiornato uno alla volta. In questo modo, la durata dei tempi di inattivit\u00e0 pu\u00f2 essere ridotta a zero.<\/p>\n<p><i><b>Scalabilit\u00e0<\/b><\/i><\/p>\n<p>Scalare un cluster Kafka non \u00e8 un compito semplice. Tuttavia, in Kubernetes \u00e8 molto facile scalare i pod a un numero specifico di repliche, il che significa che puoi definire dichiarativamente quanti broker Kafka desideri. La parte pi\u00f9 complessa in questo caso \u00e8 la riassegnazione delle partizioni dopo uno scaling verso l'alto o prima di uno scaling verso il basso. Anche in questo caso, Kubernetes pu\u00f2 supportarti in questo compito.<\/p>\n<p><i><b>Amministrazione<\/b><\/i><\/p>\n<p>Le attivit\u00e0 legate all'amministrazione del tuo cluster Kafka, in particolare la creazione di argomenti e la riassegnazione delle partizioni, possono essere svolte utilizzando gli script shell disponibili, aprendo l'interfaccia della riga di comando nei tuoi pod. Tuttavia, questa soluzione non \u00e8 molto elegante. Strimzi supporta la gestione degli argomenti tramite un altro operatore. C'\u00e8 spazio per 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 tuo cluster Kubernetes va gi\u00f9, nel peggiore dei casi anche il cluster Kafka smetter\u00e0 di funzionare. Secondo la legge di Murphy, ci\u00f2 accadr\u00e0 sicuramente e potresti perdere dati. Per ridurre il rischio di questo tipo, \u00e8 importante pianificare attentamente la strategia di backup. Puoi utilizzare MirrorMaker, oppure impiegare S3, come descritto in questo <noindex><a rel=\"nofollow\" href=\"https:\/\/jobs.zalando.com\/tech\/blog\/backing-up-kafka-zookeeper\/\">post<\/a><\/noindex> di Zalando.<\/p>\n<h4>Conclusione<\/h4>\n<p>\nQuando si lavora con cluster Kafka piccoli o medi, \u00e8 decisamente vantaggioso utilizzare Kubernetes, poich\u00e9 offre maggiore flessibilit\u00e0 e semplifica il lavoro con gli operatori. Se hai 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.0.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.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\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 \u2014 \u00e8 una buona scelta? | ProHoster","description":"Benvenuti, Habr! In passato siamo stati i primi a introdurre il tema nel mercato russo.","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}]}}