{"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\/sq\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","title":{"rendered":"A \u00ebsht\u00eb Kafka mbi Kubernetes e mir\u00eb?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Mir\u00ebsevini, Habr!<\/p>\n<p>N\u00eb koh\u00ebn e saj, ne ishim t\u00eb par\u00ebt q\u00eb soll\u00ebm n\u00eb tregun rus tem\u00ebn <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/all\/product\/apache-kafka-potokovaya-obrabotka-i-analiz-dannyh\">Kafka<\/a><\/noindex> dhe vazhdojm\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/132649774\">ndjekin<\/a><\/noindex> me zhvillimin e saj. N\u00eb ve\u00e7anti, na dukej interesante tema e nd\u00ebrveprimit mes Kafka dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/125705747\">Kubernetes<\/a><\/noindex>. Nj\u00eb pasqyr\u00eb (dhe mjaft e kujdesshme) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/blog\/apache-kafka-kubernetes-could-you-should-you\">artikulli<\/a><\/noindex> p\u00ebr k\u00ebt\u00eb tem\u00eb u publikua n\u00eb blogun e kompanis\u00eb Confluent q\u00eb n\u00eb tetor t\u00eb vitit t\u00eb kaluar nga autorja Gwen Shapiro. Sot, ne duam t\u00eb t\u00ebrheqim v\u00ebmendjen tuaj n\u00eb nj\u00eb artikull m\u00eb t\u00eb ri, t\u00eb muajit prill, nga Johann Gyger, i cili, edhe pse nuk e evitoi pik\u00ebpyetjen n\u00eb titull, e shqyrton tem\u00ebn me nj\u00eb qasje m\u00eb t\u00eb fokusuara, duke shoq\u00ebruar tekstin me lidhje interesante. Na falni p\u00ebr p\u00ebrkthimin e lir\u00eb t\u00eb \"chaos monkey\", n\u00ebse mundeni!<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/462257\/\"><img decoding=\"async\" alt=\"A \u00ebsht\u00eb Kafka mbi Kubernetes e mir\u00eb?\" 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>Hyrje<\/h4>\n<p>\nKubernetes \u00ebsht\u00eb i dizajnuar p\u00ebr t\u00eb punuar me ngarkesa q\u00eb nuk ruajn\u00eb gjendjen. N\u00eb p\u00ebrgjith\u00ebsi, k\u00ebto ngarkesa paraqiten n\u00eb form\u00ebn e arkitektur\u00ebs mikros services, jan\u00eb t\u00eb lehta, mir\u00eb p\u00ebrshtaten p\u00ebr shkall\u00ebzim horizontal, i p\u00ebrmbahen parimeve t\u00eb aplikacioneve 12-faktor\u00ebsh, lejojn\u00eb funksionimin me fik\u00ebs automatik\u00eb (circuit breaker) dhe majmun\u00eb kaosi (chaos monkeys).<\/p>\n<p>Kafka, e vendosur nga ana tjet\u00ebr, n\u00eb thelb funksionon si nj\u00eb baz\u00eb t\u00eb dh\u00ebnash t\u00eb shp\u00ebrndar\u00eb. K\u00ebshtu, gjat\u00eb pun\u00ebs keni t\u00eb b\u00ebni me gjendjen, dhe kjo \u00ebsht\u00eb shum\u00eb m\u00eb e r\u00ebnd\u00eb se nj\u00eb mikros\u00ebrv\u00ebr. Kubernetes mb\u00ebshtet ngarkesa q\u00eb ruajn\u00eb gjendjen, por, si\u00e7 e thekson Kelsey Hightower n\u00eb dy nga tweet-et e tij, duhet t\u00eb jeni t\u00eb kujdessh\u00ebm me to:<\/p>\n<blockquote><p>Disa mendojn\u00eb se, n\u00ebse instalohet Kubernetes mbi nj\u00eb ngarkes\u00eb q\u00eb ruan gjendjen, ajo shnd\u00ebrrohet n\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash t\u00eb plot\u00eb menaxhuar, e cila mund t\u00eb konkurroj\u00eb me RDS. Kjo nuk \u00ebsht\u00eb e v\u00ebrtet\u00eb. Ndoshta, n\u00ebse punoni mjaft, lidhni komponent\u00eb t\u00eb tjer\u00eb dhe angazhoni nj\u00eb ekip inxhinier\u00ebsh SRE, do t\u00eb jeni n\u00eb gjendje t\u00eb krijoni nj\u00eb RDS mbi Kubernetes.<\/p><\/blockquote>\n<blockquote><p>Gjithmon\u00eb rekomandoj kujdes t\u00eb jasht\u00ebzakonsh\u00ebm kur ekzekutoni ngarkesa q\u00eb ruajn\u00eb gjendjen mbi Kubernetes. Shumica e atyre q\u00eb jan\u00eb t\u00eb interesuar, \"mund t\u00eb ekzekutoj ngarkesa q\u00eb ruajn\u00eb gjendjen mbi Kubernetes\" nuk kan\u00eb p\u00ebrvoj\u00eb t\u00eb mjaftueshme n\u00eb pun\u00ebn me Kubernetes, dhe shpesh kan\u00eb munges\u00eb edhe me ngarkes\u00ebn p\u00ebr t\u00eb cil\u00ebn b\u00ebhet fjal\u00eb.<\/p><\/blockquote>\n<p> Pra ndaj, a duhet t\u00eb startohet Kafka n\u00eb Kubernetes? Nj\u00eb pyetje e kund\u00ebrt: a do ta ket\u00eb Kafka nj\u00eb funksionim m\u00eb t\u00eb mir\u00eb pa Kubernetes? K\u00ebtu \u00ebsht\u00eb pse dua t\u00eb theksoj n\u00eb k\u00ebt\u00eb artikull se si Kafka dhe Kubernetes plot\u00ebsojn\u00eb nj\u00ebri-tjetrin, dhe cilat jan\u00eb pengesat q\u00eb mund t\u00eb hasni gjat\u00eb kombinimit t\u00eb tyre.<\/p>\n<h4>Koha e ekzekutimit<\/h4>\n<p>\nLe t\u00eb flasim p\u00ebr nj\u00eb gj\u00eb bazike \u2014 ambientin e ekzekutimit si i till\u00eb.<\/p>\n<p><i><b>N\u00eb dit\u00ebn e fillimit t\u00eb modulit, struktura e tij b\u00ebhet e disponueshme. Studimi n\u00eb UoL p\u00ebrb\u00ebhet nga cikli n\u00eb vijim:<\/b><\/i><\/p>\n<p>Brokerat e Kafka jan\u00eb efikas\u00eb kur punohet me CPU. TLS mund t\u00eb sjell\u00eb disa kosto. Megjithat\u00eb, klient\u00ebt e Kafka mund ta ngarkojn\u00eb m\u00eb shum\u00eb CPU-n\u00eb n\u00ebse p\u00ebrdorin enkriptimin, por kjo nuk ndikon te brokerat.<\/p>\n<p><i><b>Memoria<\/b><\/i><\/p>\n<p>Brokerat e Kafka marrin shum\u00eb memorje. Madh\u00ebsia e grumbullit t\u00eb JVM zakonisht duhet t\u00eb kufizohet n\u00eb 4\u20135 GB, por gjithashtu do t\u00eb keni nevoj\u00eb p\u00ebr shum\u00eb memorje sistemi, pasi Kafka e p\u00ebrdor shum\u00eb aktivisht cache-n\u00eb e faqeve. N\u00eb Kubernetes, p\u00ebrcaktoni p\u00ebrkat\u00ebsisht kufijt\u00eb e burimeve dhe k\u00ebrkesat e kontejnerit.<\/p>\n<p><i><b>Ruajtja e t\u00eb dh\u00ebnave<\/b><\/i><\/p>\n<p>Ruajtja e t\u00eb dh\u00ebnave n\u00eb konteiner\u00eb \u00ebsht\u00eb efemere \u2013 t\u00eb dh\u00ebnat humbin gjat\u00eb ribashkimit. P\u00ebr t\u00eb dh\u00ebnat e Kafka, mund t\u00eb p\u00ebrdorni nj\u00eb volum, dhe efekti do t\u00eb jet\u00eb i ngjash\u00ebm: t\u00eb dh\u00ebnat e brokerit tuaj do t\u00eb humbin pas p\u00ebrfundimit. Mesazhet tuaja megjithat\u00eb mund t\u00eb ruhen te brokerat e tjer\u00eb si replikat. Pra, pas ribashkimit, brokeri q\u00eb d\u00ebshtoi duhet t\u00eb riprodhoj\u00eb t\u00eb gjitha t\u00eb dh\u00ebnat si hapin e par\u00eb, dhe ky proces mund t\u00eb marr\u00eb mjaft koh\u00eb. <code>emptyDir<\/code>, dhe efekti do t\u00eb jet\u00eb i ngjash\u00ebm: t\u00eb dh\u00ebnat e brokerit tuaj do t\u00eb humbin pas p\u00ebrfundimit. Mesazhet tuaja megjithat\u00eb mund t\u00eb ruhen te brokerat e tjer\u00eb si replikat. Pra, pas ribashkimit, brokeri q\u00eb d\u00ebshtoi duhet t\u00eb riprodhoj\u00eb t\u00eb gjitha t\u00eb dh\u00ebnat si hapin e par\u00eb, dhe ky proces mund t\u00eb marr\u00eb mjaft koh\u00eb. <\/p>\n<p>K\u00ebtu \u00ebsht\u00eb pse duhet t\u00eb p\u00ebrdorni ruajtje t\u00eb q\u00ebndrueshme t\u00eb t\u00eb dh\u00ebnave. Le t\u00eb jet\u00eb kjo nj\u00eb ruajtje e q\u00ebndrueshme jo-lokale me nj\u00eb sistem skedari XFS apo, m\u00eb sakt\u00ebsisht, ext4. Mos p\u00ebrdorni NFS. T\u00eb kam paralajm\u00ebruar. NFS versionet v3 ose v4 nuk do t\u00eb funksionojn\u00eb. N\u00eb m\u00ebnyr\u00eb t\u00eb p\u00ebrmbledhur, brokeri Kafka do t\u00eb bjer\u00eb, n\u00ebse nuk arrin t\u00eb heq\u00eb dosjen me t\u00eb dh\u00ebna p\u00ebr shkak t\u00eb problemeve me 'rilidhjet e m\u00ebdha', q\u00eb jan\u00eb aktuale n\u00eb NFS. N\u00ebse deri tani nuk ju kam bindur, shikoni me kujdes. <noindex><a rel=\"nofollow\" href=\"https:\/\/sbg.technology\/2018\/07\/10\/kafka-nfs\/\">lexoni k\u00ebt\u00eb artikull<\/a><\/noindex>. Ruajtja e t\u00eb dh\u00ebnave duhet t\u00eb jet\u00eb jo-lokale, q\u00eb Kubernetes t\u00eb mund t\u00eb zgjedh\u00eb m\u00eb fleksib\u00ebl nj\u00eb nyje t\u00eb re pas ribashkimit ose relokimit.<\/p>\n<p><i><b>Rrjeti<\/b><\/i><\/p>\n<p>Si n\u00eb rastin e shumic\u00ebs s\u00eb sistemeve t\u00eb shp\u00ebrndara, performanca e Kafka varet shum\u00eb nga minimizimi i vonesave n\u00eb rrjet dhe maksimizimi i gjer\u00ebsis\u00eb s\u00eb brezit. Mos u p\u00ebrpiqni t\u00eb vendosni t\u00eb gjith\u00eb broker\u00ebt n\u00eb nj\u00eb m\u00ebnyr\u00eb t\u00eb nj\u00ebjt\u00eb, sepse kjo do t\u00eb ul\u00eb disponueshm\u00ebrin\u00eb. N\u00ebse nj\u00eb nyje Kubernetes d\u00ebshtojn\u00eb, do t\u00eb d\u00ebshtoj\u00eb gjithashtu e gjith\u00eb klasteri Kafka. Po ashtu, mos e shp\u00ebrndani klasterin Kafka n\u00eb qendra t\u00eb plota t\u00eb t\u00eb dh\u00ebnave. E nj\u00ebjta gj\u00eb vlen p\u00ebr klasterin Kubernetes. Nj\u00eb kompromis i mir\u00eb n\u00eb k\u00ebt\u00eb rast \u00ebsht\u00eb t\u00eb zgjidhni zona t\u00eb ndryshme t\u00eb disponueshm\u00ebris\u00eb.<\/p>\n<h4>Konfigurimi<\/h4>\n<p>\n<i><b>Manifestet e zakonshme<\/b><\/i><\/p>\n<p>N\u00eb faqen e internetit t\u00eb Kubernetes ka <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tutorials\/stateful-application\/zookeeper\/\">nj\u00eb udh\u00ebzues shum\u00eb t\u00eb mir\u00eb<\/a><\/noindex> p\u00ebr m\u00ebnyr\u00ebn e konfigurimit t\u00eb ZooKeeper me an\u00eb t\u00eb manifestesh. Duke qen\u00eb se ZooKeeper \u00ebsht\u00eb pjes\u00eb e Kafka, kjo \u00ebsht\u00eb nj\u00eb fillim i mir\u00eb p\u00ebr t\u00eb njohur konceptet q\u00eb zbatohen n\u00eb Kubernetes k\u00ebtu. Pas kuptimit t\u00eb k\u00ebsaj, do t\u00eb jeni n\u00eb gjendje t\u00eb p\u00ebrdorni t\u00eb nj\u00ebjtat koncepte edhe me klasterin Kafka.<\/p>\n<ul>\n<li><i>N\u00ebn<\/i>: pod \u2013 \u00ebsht\u00eb nj\u00ebsia minimale e shp\u00ebrndar\u00eb n\u00eb Kubernetes. Pod-i p\u00ebrmban ngarkes\u00ebn tuaj t\u00eb pun\u00ebs, nd\u00ebrsa vet\u00eb pod-i korrespondon me procesin tuaj n\u00eb klaster. N\u00eb nj\u00eb pod p\u00ebrmbahen nj\u00eb ose m\u00eb shum\u00eb kontejner\u00eb. \u00c7do server ZooKeeper n\u00eb ansamb\u00ebl dhe \u00e7do broker n\u00eb klasterin Kafka do t\u00eb operojn\u00eb n\u00eb nj\u00eb pod t\u00eb ve\u00e7ant\u00eb.<\/li>\n<li><i>StatefulSet<\/i>: StatefulSet \u2013 \u00ebsht\u00eb objekt Kubernetes q\u00eb punon me ngarkesa t\u00eb shumta t\u00eb pun\u00ebs, q\u00eb ruajn\u00eb gjendjet, dhe k\u00ebto ngarkesa k\u00ebrkojn\u00eb koordinim. StatefulSet ofron garanci n\u00eb lidhje me renditjen e pod\u00ebve dhe unik\u00ebsin\u00eb e tyre.<\/li>\n<li><i>Sh\u00ebrbimet pa kok\u00eb<\/i>: Sh\u00ebrbimet lejojn\u00eb shk\u00ebputjen e pod\u00ebve nga klient\u00ebt p\u00ebrmes nj\u00eb emri logjik. Kubernetes \u00ebsht\u00eb p\u00ebrgjegj\u00ebs p\u00ebr balancimin e ngarkes\u00ebs n\u00eb k\u00ebt\u00eb rast. Megjithat\u00eb, gjat\u00eb operacioneve me ngarkesa pune q\u00eb ruajn\u00eb gjendjen, si\u00e7 \u00ebsht\u00eb rasti me ZooKeeper dhe Kafka, klient\u00ebt duhet t\u00eb shk\u00ebmbejn\u00eb informacion me nj\u00eb instanc\u00eb specifike. K\u00ebtu do t'ju nevojiten sh\u00ebrbimet pa kok\u00eb: n\u00eb k\u00ebt\u00eb rast, klienti do t\u00eb ket\u00eb ende nj\u00eb em\u00ebr logjik, por nuk do t\u00eb jet\u00eb e nevojshme t\u00eb drejtoheni drejtp\u00ebrdrejt te pod-i. <\/li>\n<li><i>Voli p\u00ebr ruajtje afatgjat\u00eb<\/i>: k\u00ebto volime jan\u00eb t\u00eb nevojshme p\u00ebr konfigurimin e nj\u00eb ruajtjeje afatgjat\u00eb blloku jo-lokale, e cila u p\u00ebrmend m\u00eb sip\u00ebr.<\/li>\n<\/ul>\n<p>\nN\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Yolean\/kubernetes-kafka\">Yolean<\/a><\/noindex> ofron nj\u00eb grup t\u00eb plot\u00eb manifestesh, p\u00ebrmes t\u00eb cilave \u00ebsht\u00eb e leht\u00eb t\u00eb filloni pun\u00ebn me Kafka n\u00eb Kubernetes.<\/p>\n<p><i><b>Diagramet Helm<\/b><\/i><\/p>\n<p>Helm \u2013 \u00ebsht\u00eb nj\u00eb menaxher paketash p\u00ebr Kubernetes, i cili mund t\u00eb krahasohet me menaxher\u00ebt e paketave p\u00ebr OS, si yum, apt, Homebrew ose Chocolatey. Me ndihm\u00ebn e tij, \u00ebsht\u00eb leht\u00ebsisht e mundur t\u00eb instaloni paketa t\u00eb paracaktuara t\u00eb software-it, t\u00eb p\u00ebrshkruara n\u00eb diagramet Helm. Nj\u00eb diagram Helm i mir\u00eb e leht\u00ebson nj\u00eb detyr\u00eb t\u00eb komplikuar: si t\u00eb konfiguroni sakt\u00ebsisht t\u00eb gjitha parametrat p\u00ebr t\u00eb p\u00ebrdorur Kafka n\u00eb Kubernetes. Ekzistojn\u00eb disa diagrame Kafka: zyrtarja ndodhet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\/tree\/master\/incubator\/kafka\">n\u00eb gjendje inkubatorike<\/a><\/noindex>, nj\u00eb tjet\u00ebr \u00ebsht\u00eb nga <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/confluentinc\/cp-helm-charts\/tree\/master\/charts\/cp-kafka\">Confluent<\/a><\/noindex>, nj\u00eb tjet\u00ebr \u2013 nga <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bitnami\/charts\/tree\/master\/bitnami\/kafka\">Bitnami<\/a><\/noindex>.<\/p>\n<p><i><b>Operator\u00ebt<\/b><\/i><\/p>\n<p>Pasi Helm ka disa disavantazhe, nj\u00eb mjet tjet\u00ebr po fiton popullaritet t\u00eb madh: operator\u00ebt e Kubernetes. Nj\u00eb operator jo vet\u00ebm q\u00eb paketoi softuerin p\u00ebr Kubernetes, por gjithashtu ju lejon t\u00eb shp\u00ebrndani at\u00eb softuer dhe t\u00eb menaxhoni at\u00eb.<\/p>\n<p>N\u00eb list\u00ebn <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/operator-framework\/awesome-operators\">e operator\u00ebve mahnit\u00ebs<\/a><\/noindex> p\u00ebrmenden dy operator\u00eb p\u00ebr Kafka. Nj\u00eb nga ta \u00ebsht\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/\">Strimzi<\/a><\/noindex>. Me ndihm\u00ebn e Strimzi, ngritja e nj\u00eb klasteri Kafka \u00ebsht\u00eb e leht\u00eb dhe ndodh p\u00ebr pak minuta. Praktikisht nuk nevojitet konfigurim, p\u00ebrve\u00e7 k\u00ebsaj, vet\u00eb operatori ofron disa mund\u00ebsi t\u00eb k\u00ebndshme, si\u00e7 \u00ebsht\u00eb enkriptimi TLS pik\u00eb n\u00eb pik\u00eb brenda klasterit. Confluent gjithashtu ofron <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/confluent-operator\/\">operatorin e tij<\/a><\/noindex>.<\/p>\n<p><b>Performanca<\/b><\/p>\n<p>\u00cbsht\u00eb shum\u00eb e r\u00ebnd\u00ebsishme t\u00eb testoni performanc\u00ebn duke i siguruar instalimit tuaj t\u00eb Kafka piket e kontrollit. Testet e tilla do t'ju ndihmojn\u00eb t\u00eb zbuloni ngushticat e mundshme, p\u00ebrpara se t\u00eb fillojn\u00eb problemet. Fatmir\u00ebsisht, Kafka tashm\u00eb ofron dy mjetet p\u00ebr testimin e performanc\u00ebs: <code>kafka-producer-perf-test.sh<\/code> dhe <code>kafka-consumer-perf-test.sh<\/code>. Shfryt\u00ebzoni ato aktivisht. P\u00ebr referenc\u00eb, mund t\u00eb konsultoheni me rezultatet q\u00eb jan\u00eb p\u00ebrshkruar n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/engineering.linkedin.com\/kafka\/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines\">this post<\/a><\/noindex> Jay Kreps, ose t\u00eb orientoheni n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@stephane.maarek\/an-honest-review-of-aws-managed-apache-kafka-amazon-msk-94b1ff9459d8\">k\u00ebt\u00eb rishikim<\/a><\/noindex> Amazon MSK nga St\u00e9phane Maarek.<\/p>\n<h4>Operacionet<\/h4>\n<p>\n<i><b>Monitorimi<\/b><\/i><\/p>\n<p>Transparenca n\u00eb sistem \u00ebsht\u00eb shum\u00eb e r\u00ebnd\u00ebsishme - p\u00ebrndryshe nuk do t\u00eb kuptoni se \u00e7far\u00eb ndodh. Sot ka nj\u00eb arsenal t\u00eb fort\u00eb mjetesh q\u00eb ofrojn\u00eb monitorim t\u00eb bazuar n\u00eb metrikat n\u00eb stilin cloud native. Dy mjete t\u00eb njohura p\u00ebr k\u00ebt\u00eb q\u00ebllim jan\u00eb Prometheus dhe Grafana. Prometheus mund t\u00eb mbledh\u00eb metrika nga t\u00eb gjith\u00eb proceset Java (Kafka, Zookeeper, Kafka Connect) n\u00ebp\u00ebrmjet eksportuesit JMX - n\u00eb m\u00ebnyr\u00ebn m\u00eb t\u00eb thjesht\u00eb. N\u00ebse ndihmojm\u00eb metrikat e cAdvisor, do t\u00eb mund t\u00eb kuptoni m\u00eb plot\u00ebsisht se si p\u00ebrdoren burimet n\u00eb Kubernetes.<\/p>\n<p>Strimzi ofron nj\u00eb shembull shum\u00eb t\u00eb leht\u00eb p\u00ebr t'u p\u00ebrdorur t\u00eb panelit Grafana p\u00ebr Kafka. Ai vizualizon metrikat kryesore, si\u00e7 jan\u00eb sektor\u00ebt q\u00eb nuk jan\u00eb replikuar ose ata q\u00eb jan\u00eb offline. E gjith\u00eb kjo \u00ebsht\u00eb shum\u00eb e kuptueshme. K\u00ebto metrika plot\u00ebsohen me informacion rreth p\u00ebrdorimit t\u00eb burimeve dhe performanc\u00ebs, si dhe me treguesit e stabilitetit. K\u00ebshtu, ju merrni mbik\u00ebqyrje bazike t\u00eb klasterit Kafka falas!<\/p>\n<p><img decoding=\"async\" alt=\"A \u00ebsht\u00eb Kafka mbi Kubernetes e mir\u00eb?\" src=\"\/wp-content\/uploads\/2019\/08\/65ab468f7ebc0f376796990e41c62a48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBurimi: <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/docs\/master\/#kafka_dashboard\">strimzi.io\/docs\/master\/#kafka_dashboard<\/a><\/noindex><\/p>\n<p>T\u00eb gjitha k\u00ebto do t\u00eb ishte mir\u00eb t\u00eb plot\u00ebsoheshin me mbik\u00ebqyrjen e klient\u00ebve (metrikat p\u00ebr konsumator\u00ebt dhe prodhuesit), si dhe mbik\u00ebqyrjen e vonesave (p\u00ebr k\u00ebt\u00eb ka <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/Burrow\">Burrow<\/a><\/noindex>) dhe mbik\u00ebqyrjen e p\u00ebrbashk\u00ebt \u2013 p\u00ebr k\u00ebt\u00eb p\u00ebrdorni <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/kafka-monitor\">Kafka Monitor<\/a><\/noindex>.<\/p>\n<p><i><b>Regjistrimi<\/b><\/i><\/p>\n<p>Regjistrimi \u00ebsht\u00eb nj\u00eb detyr\u00eb shum\u00eb e r\u00ebnd\u00ebsishme. Sigurohuni q\u00eb t\u00eb gjitha kontejner\u00ebt n\u00eb instalimin tuaj Kafka t\u00eb regjistrohen n\u00eb <code>stdout<\/code> dhe <code>stderr<\/code>, dhe gjithashtu sigurohuni q\u00eb klasteri juaj Kubernetes t\u00eb grumbulloj\u00eb t\u00eb gjitha log-et n\u00eb nj\u00eb infrastruktur\u00eb t\u00eb centralizuar t\u00eb regjistrimit, si\u00e7 \u00ebsht\u00eb <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>Kontrollimi i funksionimit<\/b><\/i><\/p>\n<p>Kubernetes p\u00ebrdor sondat \"t\u00eb gjall\u00eb\" (liveness) dhe \"gatishm\u00ebris\u00eb\" (readiness) p\u00ebr t\u00eb kontrolluar n\u00ebse pods tuaj funksionojn\u00eb normalisht. N\u00ebse kontrolli i gjall\u00eb d\u00ebshton, Kubernetes do ta ndal\u00eb k\u00ebt\u00eb kontejner dhe pastaj do ta rinis\u00eb automatikisht, n\u00ebse politika e rinisjes \u00ebsht\u00eb vendosur si\u00e7 duhet. N\u00ebse kontrolli i gatishm\u00ebris\u00eb d\u00ebshton, at\u00ebher\u00eb Kubernetes izolchon k\u00ebt\u00eb pod nga sh\u00ebrbimi i k\u00ebrkesave. K\u00ebshtu, n\u00eb raste t\u00eb tilla nuk k\u00ebrkohet nd\u00ebrhyrje manuale, dhe kjo \u00ebsht\u00eb nj\u00eb p\u00ebrfitim i madh. <\/p>\n<p><i><b>Kryerja e p\u00ebrdit\u00ebsimeve<\/b><\/i><\/p>\n<p>StatefulSet mb\u00ebshtet p\u00ebrdit\u00ebsime automatike: duke zgjedhur strategjin\u00eb RollingUpdate, \u00e7do pod Kafka do t\u00eb p\u00ebrdit\u00ebsohet nj\u00eb nga nj\u00eb. K\u00ebshtu, mund t\u00eb reduktoni koh\u00ebzgjatjen e ndalesave n\u00eb zero.<\/p>\n<p><i><b>Zgjerimi<\/b><\/i><\/p>\n<p>Masa e klasterit Kafka \u00ebsht\u00eb nj\u00eb detyr\u00eb e v\u00ebshtir\u00eb. Sidoqoft\u00eb, n\u00eb Kubernetes \u00ebsht\u00eb shum\u00eb e leht\u00eb t\u00eb mas\u00eb pods deri n\u00eb numrin e caktuar t\u00eb replikave, dhe kjo do t\u00eb thot\u00eb se mund t\u00eb p\u00ebrcaktoni deklarativisht sa broker\u00eb Kafka t\u00eb doni. M\u00eb e komplikuara n\u00eb k\u00ebt\u00eb rast \u00ebsht\u00eb rishp\u00ebrndarja e sektor\u00ebve pas mas\u00ebs s\u00eb sip\u00ebrme ose para mas\u00ebs s\u00eb poshtme. P\u00ebrs\u00ebri, Kubernetes do t'ju ndihmoj\u00eb me k\u00ebt\u00eb detyr\u00eb.<\/p>\n<p><i><b>Administrim<\/b><\/i><\/p>\n<p>Detyrat e lidhura me administrimin e klasterit tuaj Kafka, n\u00eb ve\u00e7anti, krijimi i temave dhe ricaktimi i sektor\u00ebve, mund t\u00eb realizohen me ndihm\u00ebn e skripteve t\u00eb disponueshme, duke hapur nd\u00ebrfaqen e komand\u00ebs n\u00eb pod-et tuaja. Sidoqoft\u00eb, k\u00ebt\u00eb zgjidhje nuk \u00ebsht\u00eb shum\u00eb e bukur. Strimzi mb\u00ebshtet menaxhimin e temave p\u00ebrmes nj\u00eb operatori tjet\u00ebr. K\u00ebtu ka vend p\u00ebr p\u00ebrmir\u00ebsim.<\/p>\n<p><i><b>Backup dhe rikuperim<\/b><\/i><\/p>\n<p>Tani disponueshm\u00ebria e Kafka do t\u00eb varet edhe nga disponueshm\u00ebria e Kubernetes. N\u00ebse klasteri juaj Kubernetes bie, n\u00eb rastin m\u00eb t\u00eb keq, do t\u00eb bjer\u00eb edhe klasteri Kafka. Sipas ligjit t\u00eb Murfit, kjo do t\u00eb ndodh\u00eb patjet\u00ebr dhe do t\u00eb humbni t\u00eb dh\u00ebnat. P\u00ebr t\u00eb ulur rrezikun e k\u00ebtij lloji, punoni me kujdes konceptin e backup-it. Mund t\u00eb shfryt\u00ebzoni MirrorMaker, nj\u00eb alternativ\u00eb \u00ebsht\u00eb t\u00eb p\u00ebrdorni S3, si\u00e7 p\u00ebrshkruhet n\u00eb k\u00ebt\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/jobs.zalando.com\/tech\/blog\/backing-up-kafka-zookeeper\/\">post<\/a><\/noindex> nga Zalando.<\/p>\n<h4>P\u00ebrfundim<\/h4>\n<p>\nKur punoni me klastera t\u00eb vegj\u00ebl ose mesatar\u00eb Kafka, \u00ebsht\u00eb me t\u00eb v\u00ebrtet\u00eb e arsyeshme t\u00eb p\u00ebrdorni Kubernetes, pasi ofron fleksibilitet t\u00eb shtuar dhe leht\u00ebson pun\u00ebn me operator\u00ebt. N\u00ebse keni k\u00ebrkesa shum\u00eb serioze jo-funksionale, lidhur me vonesat dhe\/apo kapacitetin, at\u00ebher\u00eb ndoshta \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb shqyrtoni nj\u00eb opsion tjet\u00ebr implementimi.<br \/>\n<br \/>Burimi: <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\/sq\/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=\"sq_AL\" \/>\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\/sq\/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 n\u00eb Kubernetes \u2014 a \u00ebsht\u00eb e mir\u00eb? | ProHoster","description":"Mir\u00eb se vini, Habr! N\u00eb nj\u00eb koh\u00eb, ne ishim t\u00eb par\u00ebt q\u00eb shfaq\u00ebm tem\u00ebn n\u00eb tregun rus","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/36822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=36822"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/36822\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/27586"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=36822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=36822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=36822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}