{"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\/ro\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","title":{"rendered":"Kafka pe Kubernetes \u2014 este bine?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bun venit, Habr!<\/p>\n<p>\u00centr-o vreme, noi am fost primii care au adus pe pia\u021ba rus\u0103 tema <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/all\/product\/apache-kafka-potokovaya-obrabotka-i-analiz-dannyh\">Kafka<\/a><\/noindex> \u0219i continu\u0103m <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/132649774\">monitoriza<\/a><\/noindex> s\u0103 ne concentr\u0103m asupra dezvolt\u0103rii acesteia. \u00cen special, ni s-a p\u0103rut interesant subiectul interac\u021biunii dintre Kafka \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/125705747\">Kubernetes<\/a><\/noindex>. O revizuire (\u0219i destul de prudent\u0103) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/blog\/apache-kafka-kubernetes-could-you-should-you\">articol<\/a><\/noindex> pe aceast\u0103 tem\u0103 a fost publicat\u0103 pe blogul companiei Confluent \u00eenc\u0103 din octombrie anul trecut, scris\u0103 de Gwen Shapira. Ast\u0103zi vrem s\u0103 atragem aten\u021bia asupra unui articol mai recent, din aprilie, scris de Johann Gyger, care, de\u0219i nu a ezitat s\u0103 pun\u0103 un semn de \u00eentrebare \u00een titlu, abordeaz\u0103 tema \u00eentr-o manier\u0103 mai concret\u0103, \u00eenso\u021bind textul cu linkuri interesante. V\u0103 cerem scuze pentru traducerea liber\u0103 a termenului \u201echaos monkey\u201d, dac\u0103 pute\u021bi!<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/462257\/\"><img decoding=\"async\" alt=\"Kafka pe Kubernetes \u2014 este bine?\" 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>Introducere<\/h4>\n<p>\nKubernetes este destinat s\u0103 func\u021bioneze cu sarcini f\u0103r\u0103 stare. \u00cen general, aceste sarcini de lucru sunt reprezentate sub forma unei arhitecturi bazate pe microservicii, sunt u\u0219oare, se preteaz\u0103 bine la scalarea orizontal\u0103, respect\u0103 principiile aplica\u021biilor 12-factor \u0219i permit utilizarea \u00eentrerup\u0103toarelor automate (circuit breaker) \u0219i maimu\u021belor haotice (chaos monkeys).<\/p>\n<p>Kafka, situat de cealalt\u0103 parte, func\u021bioneaz\u0103 de fapt ca o baz\u0103 de date distribuit\u0103. Astfel, atunci c\u00e2nd lucra\u021bi, trebuie s\u0103 \u021bine\u021bi cont de starea sa, care este mult mai greoaie dec\u00e2t cea a unui microserviciu. Kubernetes suport\u0103 sarcini cu stare, dar, a\u0219a cum indic\u0103 Kelsey Hightower \u00een dou\u0103 dintre tweet-urile sale, trebuie tratate cu pruden\u021b\u0103:<\/p>\n<blockquote><p>Unii cred c\u0103, dac\u0103 aplici Kubernetes pe o sarcin\u0103 cu stare, acesta devine o baz\u0103 de date complet gestionat\u0103, capabil\u0103 s\u0103 concureze cu RDS. Nu este a\u0219a. Poate c\u0103, dac\u0103 te str\u0103duie\u0219ti suficient, ad\u0103ug\u00e2nd componente suplimentare \u0219i implic\u00e2nd o echip\u0103 de ingineri SRE, po\u021bi construi RDS deasupra Kubernetes.<\/p><\/blockquote>\n<blockquote><p>\u00centotdeauna recomand tuturor s\u0103 manifeste o pruden\u021b\u0103 deosebit\u0103 atunci c\u00e2nd ruleaz\u0103 sarcini cu stare pe Kubernetes. Cei mai mul\u021bi dintre cei care se \u00eentreab\u0103, \u201epot rula sarcini cu stare pe Kubernetes\u201d nu au suficient\u0103 experien\u021b\u0103 \u00een utilizarea Kubernetes \u0219i, de multe ori, nici cu sarcina despre care \u00eentreab\u0103.<\/p><\/blockquote>\n<p> Deci, ar trebui s\u0103 rul\u0103m Kafka pe Kubernetes? \u00centrebarea urm\u0103toare: va func\u021biona mai bine Kafka f\u0103r\u0103 Kubernetes? Iat\u0103 de ce vreau s\u0103 subliniez \u00een acest articol cum Kafka \u0219i Kubernetes se completeaz\u0103 reciproc \u0219i care sunt capcanele care pot ap\u0103rea \u00een combina\u021bia lor.<\/p>\n<h4>Timp de execu\u021bie<\/h4>\n<p>\nS\u0103 discut\u0103m despre un aspect de baz\u0103 \u2014 mediu de execu\u021bie ca atare<\/p>\n<p><i><b>Procesul<\/b><\/i><\/p>\n<p>Brokerii Kafka sunt eficien\u021bi \u00een utilizarea CPU. TLS poate ad\u0103uga anumite cheltuieli. Cu toate acestea, clien\u021bii Kafka pot suprasolicita CPU-ul mai mult dac\u0103 utilizeaz\u0103 criptarea, dar acest lucru nu afecteaz\u0103 brokerii.<\/p>\n<p><i><b>Memorie<\/b><\/i><\/p>\n<p>Brokerii Kafka consum\u0103 memorie. Dimensiunea heap-ului JVM este de obicei limitat\u0103 la 4\u20135 GB, dar ve\u021bi avea nevoie \u0219i de mult\u0103 memorie sistemic\u0103, deoarece Kafka folose\u0219te foarte activ cache-ul de pagini. \u00cen Kubernetes, stabili\u021bi corespunz\u0103tor limitele resurselor \u0219i cererile pentru containere.<\/p>\n<p><i><b>Stocare de date<\/b><\/i><\/p>\n<p>Stocarea de date \u00een containere este efemer\u0103 \u2013 datele se pierd la repornire. Pentru datele Kafka, pute\u021bi folosi un volum, iar efectul va fi similar: datele brokerului dumneavoastr\u0103 vor fi pierdute dup\u0103 finalizare. Mesajele dumneavoastr\u0103 pot fi totu\u0219i p\u0103strate pe al\u021bi brokeri ca replici. Prin urmare, dup\u0103 repornire, brokerul care a e\u0219uat trebuie mai \u00eent\u00e2i s\u0103 replica toate datele, iar acest proces poate necesita mult timp. <code>emptyDir<\/code>De aceea, ar trebui s\u0103 folosi\u021bi stocare de date pe termen lung. S\u0103 fie o stocare de lung\u0103 durat\u0103 non-local\u0103 cu un sistem de fi\u0219iere XFS sau, mai precis, ext4. Nu folosi\u021bi NFS. V-am avertizat. NFS versiuni v3 sau v4 nu vor func\u021biona. Pe scurt, brokerul Kafka se va opri dac\u0103 nu poate \u0219terge directorul cu date din cauza problemei cu \"renumirile stupide\", care este actual\u0103 \u00een NFS. Dac\u0103 p\u00e2n\u0103 acum nu v-am convins, citi\u021bi cu mare aten\u021bie <\/p>\n<p>aceast\u0103 articol <noindex><a rel=\"nofollow\" href=\"https:\/\/sbg.technology\/2018\/07\/10\/kafka-nfs\/\">. Stocarea de date ar trebui s\u0103 fie non-local\u0103, pentru ca Kubernetes s\u0103 poat\u0103 alege mai flexibil un nou nod dup\u0103 repornire sau relocare.<\/a><\/noindex>.<\/p>\n<p><i><b>Re\u021bea<\/b><\/i><\/p>\n<p>Asemenea majorit\u0103\u021bii sistemelor distribuite, performan\u021ba Kafka depinde semnificativ de minimizarea laten\u021belor de re\u021bea \u0219i maximizarea l\u0103\u021bimii de band\u0103. Nu \u00eencerca\u021bi s\u0103 plasa\u021bi to\u021bi brokerii pe acela\u0219i nod, deoarece acest lucru va reduce disponibilitatea. Dac\u0103 un nod Kubernetes e\u0219ueaz\u0103, \u00eentregul cluster Kafka va e\u0219ua \u0219i el. De asemenea, nu disp\u0103ra\u021bi clusterul Kafka pe \u00eentregi centre de date. Acela\u0219i lucru se aplic\u0103 \u0219i clusterului Kubernetes. O bun\u0103 compensa\u021bie \u00een acest caz este alegerea unor zone de disponibilitate diferite.<\/p>\n<h4>Configura\u021bie<\/h4>\n<p>\n<i><b>Manifesturi obi\u0219nuite<\/b><\/i><\/p>\n<p>Pe site-ul Kubernetes exist\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tutorials\/stateful-application\/zookeeper\/\">un ghid foarte bun<\/a><\/noindex> despre cum s\u0103 configura\u021bi ZooKeeper folosind manifesturi. Deoarece ZooKeeper face parte din Kafka, este convenabil s\u0103 \u00eencepe\u021bi familiarizarea cu conceptele Kubernetes aplicabile aici. Odat\u0103 ce \u00een\u021belege\u021bi asta, ve\u021bi putea utiliza acelea\u0219i concepte \u0219i cu clusterul Kafka.<\/p>\n<ul>\n<li><i>Sub<\/i>: un pod \u2013 este unitatea minim\u0103 de desf\u0103\u0219urare din Kubernetes. Podul con\u021bine sarcina dumneavoastr\u0103 de lucru, iar podul corespunde unui proces din clusterul dumneavoastr\u0103. Podul con\u021bine unul sau mai multe containere. Fiecare server ZooKeeper din ansamblu \u0219i fiecare broker din clusterul Kafka va func\u021biona \u00eentr-un pod separat.<\/li>\n<li><i>StatefulSet<\/i>: StatefulSet \u2013 este un obiect Kubernetes care func\u021bioneaz\u0103 cu sarcini de lucru multiple, care p\u0103streaz\u0103 starea, iar astfel de sarcini necesit\u0103 coordonare. StatefulSet ofer\u0103 garan\u021bii cu privire la ordonarea podurilor \u0219i unicitatea acestora.<\/li>\n<li><i>Servicii headless<\/i>: Serviciile permit desprinderea podurilor de clien\u021bi printr-un nume logic. Kubernetes r\u0103spunde \u00een acest caz de echilibrarea \u00eenc\u0103rc\u0103rii. Totu\u0219i, \u00een opera\u021biunile cu sarcinile de lucru care p\u0103streaz\u0103 starea, cum ar fi \u00een cazul ZooKeeper \u0219i Kafka, clien\u021bii trebuie s\u0103 comunice cu o instan\u021b\u0103 anume. Aici intervine utilitatea serviciilor headless: \u00een acest caz, clientul va avea totu\u0219i un nume logic, dar nu va fi necesar s\u0103 se adreseze direct podului. <\/li>\n<li><i>Volum pentru stocare pe termen lung<\/i>: astfel de volume sunt necesare pentru configurarea unei stoc\u0103ri de bloc f\u0103r\u0103 localitate, men\u021bionat\u0103 anterior.<\/li>\n<\/ul>\n<p>\nPe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Yolean\/kubernetes-kafka\">Yolean<\/a><\/noindex> ofer\u0103 un set exhaustiv de manifesturi,cu ajutorul c\u0103rora este u\u0219or s\u0103 \u00eencepe\u021bi lucrul cu Kafka pe Kubernetes.<\/p>\n<p><i><b>Diagrama Helm<\/b><\/i><\/p>\n<p>Helm este un manager de pachete pentru Kubernetes, care poate fi comparat cu managerii de pachete pentru sisteme de operare, cum ar fi yum, apt, Homebrew sau Chocolatey. Cu ajutorul s\u0103u, este u\u0219or s\u0103 instala\u021bi pachete software predeterminate, descrise \u00een diagramele Helm. O diagram\u0103 Helm bine conceput\u0103 faciliteaz\u0103 sarcina complex\u0103 de a configura corect toate parametrii pentru utilizarea Kafka pe Kubernetes. Exist\u0103 mai multe diagrame Kafka: cea oficial\u0103 se afl\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\/tree\/master\/incubator\/kafka\">\u00een stadiul de incubare<\/a><\/noindex>, exist\u0103 una de la <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/confluentinc\/cp-helm-charts\/tree\/master\/charts\/cp-kafka\">Confluent<\/a><\/noindex>, \u0219i alta de la <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>Deoarece Helm are anumite limit\u0103ri, un alt instrument c\u00e2\u0219tig\u0103 popularitate: operatorii Kubernetes. Un operator nu doar \u00eempacheteaz\u0103 software-ul pentru Kubernetes, ci v\u0103 permite s\u0103 desf\u0103\u0219ura\u021bi \u0219i s\u0103 gestiona\u021bi acest software.<\/p>\n<p>\u00cen lista <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/operator-framework\/awesome-operators\">operatorilor uimitori<\/a><\/noindex> se men\u021bioneaz\u0103 doi operatori pentru Kafka. Unul dintre ei este <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/\">Strimzi<\/a><\/noindex>. Cu ajutorul lui Strimzi, nu este deloc greu s\u0103 ridica\u021bi un cluster Kafka \u00een c\u00e2teva minute. Practic, nu este necesar\u0103 nicio configurare, de asemenea, operatorul ofer\u0103 c\u00e2teva op\u021biuni pl\u0103cute, cum ar fi criptarea TLS de tip \u00abpunct-la-punct\u00bb \u00een interiorul cluster-ului. Confluent ofer\u0103 de asemenea <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/confluent-operator\/\">propriul s\u0103u operator<\/a><\/noindex>.<\/p>\n<p><b>Performan\u021b\u0103<\/b><\/p>\n<p>Este foarte important s\u0103 testa\u021bi performan\u021ba, echip\u00e2nd exemplarul dvs. de Kafka cu puncte de control. Aceste teste v\u0103 vor ajuta s\u0103 descoperi\u021bi poten\u021biale blocaje, \u00eenainte ca problemele s\u0103 \u00eenceap\u0103. Din fericire, Kafka ofer\u0103 deja dou\u0103 instrumente pentru testarea performan\u021bei: <code>kafka-producer-perf-test.sh<\/code> \u0219i <code>kafka-consumer-perf-test.sh<\/code>. Folosi\u021bi-le activ. Ca referin\u021b\u0103, pute\u021bi verifica rezultatele descrise de <noindex><a rel=\"nofollow\" href=\"https:\/\/engineering.linkedin.com\/kafka\/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines\">acest articol<\/a><\/noindex> Jay Kreps, sau s\u0103 v\u0103 orienta\u021bi dup\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@stephane.maarek\/an-honest-review-of-aws-managed-apache-kafka-amazon-msk-94b1ff9459d8\">aceast\u0103 recenzie<\/a><\/noindex> Amazon MSK de St\u00e9phane Maarek.<\/p>\n<h4>Opera\u021bii<\/h4>\n<p>\n<i><b>Monitorizare<\/b><\/i><\/p>\n<p>Transparen\u021ba \u00een sistem este foarte important\u0103 \u2013 altfel nu ve\u021bi \u00een\u021belege ce se \u00eent\u00e2mpl\u0103 \u00een el. Ast\u0103zi exist\u0103 un set solid de instrumente care ofer\u0103 monitorizare bazat\u0103 pe metrici \u00een stil cloud native. Dou\u0103 instrumente populare pentru acest scop sunt Prometheus \u0219i Grafana. Prometheus poate colecta metrici din toate procesele Java (Kafka, Zookeeper, Kafka Connect) prin intermediul exportatorului JMX \u2013 \u00eentr-un mod foarte simplu. Dac\u0103 ad\u0103uga\u021bi metricile cAdvisor, ve\u021bi putea \u00een\u021belege mai bine cum sunt utilizate resursele \u00een Kubernetes.<\/p>\n<p>Strimzi ofer\u0103 un exemplu foarte util de tabl\u0103 de bord Grafana pentru Kafka. Acesta vizualizeaz\u0103 metrici cheie, cum ar fi sectoarele care nu sunt replicate sau cele care sunt offline. Totul este foarte clar. Aceste metrici sunt completate cu informa\u021bii despre utilizarea resurselor \u0219i performan\u021b\u0103, precum \u0219i indicatori de stabilitate. Astfel, ob\u021bine\u021bi un monitorizare de baz\u0103 a cluster-ului Kafka f\u0103r\u0103 costuri!<\/p>\n<p><img decoding=\"async\" alt=\"Kafka pe Kubernetes \u2014 este bine?\" src=\"\/wp-content\/uploads\/2019\/08\/65ab468f7ebc0f376796990e41c62a48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSursa: <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/docs\/master\/#kafka_dashboard\">strimzi.io\/docs\/master\/#kafka_dashboard<\/a><\/noindex><\/p>\n<p>Toate acestea ar fi bine s\u0103 fie completate cu monitorizarea clien\u021bilor (metrici pentru consumatori \u0219i produc\u0103tori), precum \u0219i cu monitorizarea \u00eent\u00e2rzierii (pentru aceasta exist\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/Burrow\">Burrow<\/a><\/noindex>) \u0219i monitorizarea de la un cap\u0103t la altul \u2013 pentru aceasta utiliza\u021bi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/kafka-monitor\">Kafka Monitor<\/a><\/noindex>.<\/p>\n<p><i><b>Logare<\/b><\/i><\/p>\n<p>Logarea este o alt\u0103 sarcin\u0103 esen\u021bial\u0103. Asigura\u021bi-v\u0103 c\u0103 toate containerele din instalarea dvs. Kafka sunt logate \u00een <code>stdout<\/code> \u0219i <code>stderr<\/code>, precum \u0219i c\u0103 cluster-ul dvs. Kubernetes agreg\u0103 toate jurnalele \u00eentr-o infrastructur\u0103 centralizat\u0103 de logare, de exemplu, \u00een <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>Verificarea func\u021bionalit\u0103\u021bii<\/b><\/i><\/p>\n<p>Kubernetes utilizeaz\u0103 sonde de \u201evitalitate\u201d (liveness) \u0219i \u201epreg\u0103tire\u201d (readiness) pentru a verifica dac\u0103 sud-urile dvs. func\u021bioneaz\u0103 corect. Dac\u0103 sondajul de vitalitate e\u0219ueaz\u0103, Kubernetes va opri acest container, iar apoi \u00eel va repornit automat, dac\u0103 politica de repornire este stabilit\u0103 corespunz\u0103tor. Dac\u0103 sondajul de preg\u0103tire e\u0219ueaz\u0103, Kubernetes va izolaa acest sud de a r\u0103spunde la cereri. Astfel, \u00een astfel de cazuri, nu mai este necesar\u0103 interven\u021bia manual\u0103, ceea ce reprezint\u0103 un avantaj major. <\/p>\n<p><i><b>Implementarea actualiz\u0103rilor<\/b><\/i><\/p>\n<p>StatefulSet sus\u021bine actualiz\u0103ri automate: atunci c\u00e2nd se alege strategia RollingUpdate, fiecare sud Kafka va fi actualizat pe r\u00e2nd. Astfel, durata \u00eentreruperilor poate fi redus\u0103 la zero.<\/p>\n<p><i><b>Scalare<\/b><\/i><\/p>\n<p>Scalarea cluster-ului Kafka este o sarcin\u0103 complex\u0103. Totu\u0219i, \u00een Kubernetes este foarte simplu s\u0103 scala\u021bi sud-urile la un anumit num\u0103r de replici, ceea ce \u00eenseamn\u0103 c\u0103 pute\u021bi defini declaraativ c\u00e2\u021bi brokeri Kafka dori\u021bi. Cea mai dificil\u0103 parte \u00een acest caz este reatribuirea sectoarelor dup\u0103 scalarea \u00een sus sau \u00eenainte de scalarea \u00een jos. Din nou, Kubernetes v\u0103 va ajuta cu aceast\u0103 sarcin\u0103.<\/p>\n<p><i><b>Administrare<\/b><\/i><\/p>\n<p>Sarcinile legate de administrarea cluster-ului dumneavoastr\u0103 Kafka, \u00een special crearea topicurilor \u0219i realocarea sec\u021biunilor, pot fi realizate folosind scripturi shell disponibile, deschiz\u00e2nd interfa\u021ba de linie de comand\u0103 \u00een podurile dumneavoastr\u0103. Cu toate acestea, aceast\u0103 solu\u021bie nu este prea elegant\u0103. Strimzi suport\u0103 gestionarea topicurilor printr-un alt operator. Aici este loc de \u00eembun\u0103t\u0103\u021biri.<\/p>\n<p><i><b>Backup \u0219i restaurare<\/b><\/i><\/p>\n<p>Acum disponibilitatea Kafka va depinde \u0219i de disponibilitatea Kubernetes. Dac\u0103 cluster-ul Kubernetes va c\u0103dea, \u00een cel mai r\u0103u caz, va c\u0103dea \u0219i cluster-ul Kafka. Conform legii lui Murphy, acest lucru se va \u00eent\u00e2mpla, iar dumneavoastr\u0103 ve\u021bi pierde date. Pentru a reduce riscul unei astfel de situa\u021bii, este bine s\u0103 elabora\u021bi o concept de backup. Pute\u021bi utiliza MirrorMaker, o alt\u0103 op\u021biune fiind implicarea S3, a\u0219a cum este descris \u00een acest <noindex><a rel=\"nofollow\" href=\"https:\/\/jobs.zalando.com\/tech\/blog\/backing-up-kafka-zookeeper\/\">post<\/a><\/noindex> de la Zalando.<\/p>\n<h4>Concluzie<\/h4>\n<p>\nC\u00e2nd lucra\u021bi cu clustere Kafka mici sau medii, este cu siguran\u021b\u0103 avantajos s\u0103 folosi\u021bi Kubernetes, deoarece acesta ofer\u0103 flexibilitate suplimentar\u0103 \u0219i simplific\u0103 gestionarea operatorilor. Dac\u0103 ave\u021bi cerin\u021be nefunc\u021bionale foarte strict legate de \u00eent\u00e2rziere \u0219i\/sau l\u0103\u021bime de band\u0103, atunci poate ar fi mai bine s\u0103 lua\u021bi \u00een considerare o alt\u0103 op\u021biune de desf\u0103\u0219urare.<br \/>\n<br \/>Sursa: <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.2.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\/ro\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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 pe Kubernetes \u2013 este bine? | ProHoster","description":"Bun venit, Habr! La vremea respectiv\u0103, noi am fost primii care am introdus tema","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/36822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=36822"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/36822\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/27586"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=36822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=36822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=36822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}