{"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\/cs\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","title":{"rendered":"Je Kafka na Kubernetes dobr\u00fd?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>V\u00edtejte, Habre!<\/p>\n<p>Sv\u00e9ho \u010dasu jsme jako prvn\u00ed p\u0159edstavili t\u00e9ma na rusk\u00e9m trhu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/all\/product\/apache-kafka-potokovaya-obrabotka-i-analiz-dannyh\">Kafka<\/a><\/noindex> a pokra\u010dujeme <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/132649774\">sledovat<\/a><\/noindex> v jeho rozvoji. Zejm\u00e9na n\u00e1s zaujalo t\u00e9ma interakce mezi Kafka a <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/product_by_id\/125705747\">Kubernetes<\/a><\/noindex>. P\u0159ehledov\u00fd (a pom\u011brn\u011b opatrn\u00fd) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/blog\/apache-kafka-kubernetes-could-you-should-you\">neaktu\u00e1ln\u00ed statistika<\/a><\/noindex> na toto t\u00e9ma vy\u0161el na blogu spole\u010dnosti Confluent u\u017e v \u0159\u00edjnu lo\u0148sk\u00e9ho roku pod autorsk\u00fdm jm\u00e9nem Gwen Shapiro. Dnes bychom cht\u011bli upozornit na aktu\u00e1ln\u011bj\u0161\u00ed, dubnov\u00fd \u010dl\u00e1nek Johann Gyger, kter\u00fd, i kdy\u017e se nevyhnul otazn\u00edku v n\u00e1zvu, zkoum\u00e1 t\u00e9ma v konkr\u00e9tn\u011bj\u0161\u00edm kl\u00ed\u010di a doprov\u00e1z\u00ed text zaj\u00edmav\u00fdmi odkazy. Omluvte n\u00e1\u0161 voln\u00fd p\u0159eklad \u201echaos monkey\u201c, pokud m\u016f\u017eete!<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/462257\/\"><img decoding=\"async\" alt=\"Je Kafka na Kubernetes dobr\u00fd?\" 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>\u00davod<\/h4>\n<p>\nKubernetes je ur\u010den k pr\u00e1ci s \u010d\u00e1stmi z\u00e1t\u011b\u017ee, kter\u00e9 neudr\u017euj\u00ed stav. Obvykle jsou tyto pracovn\u00ed z\u00e1t\u011b\u017ee prezentov\u00e1ny ve form\u011b mikroslu\u017eebn\u00e9 architektury, jsou lehk\u00e9, dob\u0159e se horizont\u00e1ln\u011b \u0161k\u00e1luj\u00ed, podl\u00e9haj\u00ed princip\u016fm 12-faktorov\u00fdch aplikac\u00ed a umo\u017e\u0148uj\u00ed pracovat s automatick\u00fdmi v\u00fdpadky (circuit breaker) a chaos monky (chaos monkeys).<\/p>\n<p>Kafka, um\u00edst\u011bn\u00e1 na druh\u00e9 stran\u011b, v podstat\u011b funguje jako distribuovan\u00e1 datab\u00e1ze. P\u0159i pr\u00e1ci se tedy mus\u00edte zab\u00fdvat stavem, kter\u00fd je mnohem t\u011b\u017e\u0161\u00ed ne\u017e mikroslu\u017eba. Kubernetes podporuje z\u00e1t\u011b\u017ee s udr\u017een\u00edm stavu, ale, jak uv\u00e1d\u00ed Kelsey Hightower ve sv\u00fdch dvou tweetech, je t\u0159eba s nimi zach\u00e1zet opatrn\u011b:<\/p>\n<blockquote><p>N\u011bkte\u0159\u00ed si mysl\u00ed, \u017ee kdy\u017e nasad\u00ed Kubernetes na z\u00e1t\u011b\u017e s udr\u017een\u00edm stavu, st\u00e1v\u00e1 se z n\u011bj pln\u011b \u0159\u00edzen\u00e1 datab\u00e1ze, kter\u00e1 m\u016f\u017ee sout\u011b\u017eit s RDS. To nen\u00ed pravda. Mo\u017en\u00e1, pokud se dostate\u010dn\u011b sna\u017e\u00edte, p\u0159ipoj\u00edte dal\u0161\u00ed komponenty a zapoj\u00edte t\u00fdm SRE in\u017een\u00fdr\u016f, poda\u0159\u00ed se v\u00e1m z\u0159\u00eddit RDS nad Kubernetes.<\/p><\/blockquote>\n<blockquote><p>V\u017edy doporu\u010duji projevovat mimo\u0159\u00e1dnou opatrnost p\u0159i spu\u0161t\u011bn\u00ed z\u00e1t\u011b\u017ee s udr\u017een\u00edm stavu na Kubernetes. V\u011bt\u0161ina t\u011bch, kte\u0159\u00ed se ptaj\u00ed, \u201amohu na Kubernetes spou\u0161t\u011bt z\u00e1t\u011b\u017ee s udr\u017een\u00edm stavu\u2018, nem\u00e1 dostate\u010dn\u00e9 zku\u0161enosti s Kubernetes a \u010dasto ani s t\u00edm zat\u00ed\u017een\u00edm, na kter\u00e9 se ptaj\u00ed.<\/p><\/blockquote>\n<p> M\u011bli bychom spustit Kafka na Kubernetes? Na tuto ot\u00e1zku se d\u00e1 odpov\u011bd\u011bt i jinak: Bude Kafka l\u00e9pe fungovat bez Kubernetes? R\u00e1d bych v tomto \u010dl\u00e1nku zd\u016fraznil, jak se Kafka a Kubernetes vz\u00e1jemn\u011b dopl\u0148uj\u00ed a na jak\u00e9 p\u0159ek\u00e1\u017eky m\u016f\u017eete p\u0159i jejich kombinaci narazit.<\/p>\n<h4>Doba prov\u00e1d\u011bn\u00ed<\/h4>\n<p>\nPoj\u010fme si promluvit o z\u00e1kladn\u00ed v\u011bci \u2013 o samotn\u00e9m prost\u0159ed\u00ed prov\u00e1d\u011bn\u00ed.<\/p>\n<p><i><b>Proces<\/b><\/i><\/p>\n<p>Brokery Kafka jsou efektivn\u00ed p\u0159i pr\u00e1ci s CPU. TLS m\u016f\u017ee p\u0159in\u00e9st ur\u010dit\u00e9 v\u00fddaje. Klienti Kafka mohou v\u0161ak v\u00edce zat\u00ed\u017eit CPU, pokud pou\u017e\u00edvaj\u00ed \u0161ifrov\u00e1n\u00ed, ale to neovliv\u0148uje brokery.<\/p>\n<p><i><b>Pam\u011b\u0165<\/b><\/i><\/p>\n<p>Brokery Kafka spot\u0159ebov\u00e1vaj\u00ed pam\u011b\u0165. Velikost haldy JVM by obvykle m\u011bla b\u00fdt omezena na 4\u20135 GB, ale budete pot\u0159ebovat tak\u00e9 spoustu syst\u00e9mov\u00e9 pam\u011bti, proto\u017ee Kafka velmi aktivn\u011b vyu\u017e\u00edv\u00e1 str\u00e1nkovac\u00ed cache. V Kubernetes spr\u00e1vn\u011b nastavte limity pro zdroje a po\u017eadavky kontejner\u016f.<\/p>\n<p><i><b>\u00dalo\u017ei\u0161t\u011b dat<\/b><\/i><\/p>\n<p>\u00dalo\u017ei\u0161t\u011b dat v kontejnerech je efem\u00e9rn\u00ed \u2013 data se ztr\u00e1cej\u00ed p\u0159i restartu. Pro data Kafka m\u016f\u017eete vyu\u017e\u00edt svazek <code>emptyDir<\/code>, a efekt bude podobn\u00fd: data va\u0161eho brokera budou ztracena po ukon\u010den\u00ed. Va\u0161e zpr\u00e1vy se v\u0161ak mohou zachovat na jin\u00fdch brokerech jako repliky. Proto se po restartu nefunk\u010dn\u00ed broker mus\u00ed nejprve replikovat v\u0161echna data, co\u017e m\u016f\u017ee n\u011bjakou dobu trvat. <\/p>\n<p>Proto je d\u016fle\u017eit\u00e9 pou\u017e\u00edt dlouhodob\u00e9 \u00falo\u017ei\u0161t\u011b dat. M\u016f\u017ee to b\u00fdt nelok\u00e1ln\u00ed dlouhodob\u00e9 \u00falo\u017ei\u0161t\u011b s filesyst\u00e9mem XFS nebo p\u0159esn\u011bji ext4. Nepou\u017e\u00edvejte NFS. Varoval jsem v\u00e1s. NFS verze v3 nebo v4 nebude fungovat. Jin\u00fdmi slovy, broker Kafka skon\u010d\u00ed, pokud nebude schopen odstranit adres\u00e1\u0159 s daty kv\u016fli probl\u00e9m\u016fm s \"hloup\u00fdmi p\u0159ejmenov\u00e1n\u00edmi,\" kter\u00e9 se t\u00fdkaj\u00ed NFS. Pokud v\u00e1s dosud nep\u0159esv\u011bd\u010dilo, velmi d\u016fkladn\u011b <noindex><a rel=\"nofollow\" href=\"https:\/\/sbg.technology\/2018\/07\/10\/kafka-nfs\/\">si p\u0159e\u010dt\u011bte tento \u010dl\u00e1nek<\/a><\/noindex>. \u00dalo\u017ei\u0161t\u011b dat by m\u011blo b\u00fdt nelok\u00e1ln\u00ed, aby Kubernetes mohl flexibiln\u011bji vyb\u00edrat nov\u00fd uzel po restartov\u00e1n\u00ed nebo relokaci.<\/p>\n<p><i><b>S\u00ed\u0165<\/b><\/i><\/p>\n<p>Stejn\u011b jako u v\u011bt\u0161iny distribuovan\u00fdch syst\u00e9m\u016f, v\u00fdkon Kafka siln\u011b z\u00e1vis\u00ed na minim\u00e1ln\u00edch latenc\u00edch v s\u00edti a maxim\u00e1ln\u00ed \u0161\u00ed\u0159ce p\u00e1sma. Nem\u011bli byste se sna\u017eit um\u00edstit v\u0161echny brokery na jeden uzel, proto\u017ee t\u00edm se sn\u00ed\u017e\u00ed dostupnost. Pokud dojde k selh\u00e1n\u00ed uzlu Kubernetes, sel\u017ee cel\u00fd cluster Kafka. Tak\u00e9 ne\u010dle\u0148te cluster Kafka mezi r\u016fzn\u00fdmi datov\u00fdmi centry. Tot\u00e9\u017e plat\u00ed pro cluster Kubernetes. Dobr\u00fdm kompromisem je vybrat r\u016fzn\u00e9 dostupnostn\u00ed z\u00f3ny.<\/p>\n<h4>Konfigurace<\/h4>\n<p>\n<i><b>Obvykl\u00e9 manifesty<\/b><\/i><\/p>\n<p>Na webu Kubernetes je <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tutorials\/stateful-application\/zookeeper\/\">velmi dobr\u00fd pr\u016fvodce<\/a><\/noindex> o tom, jak nastavit ZooKeeper pomoc\u00ed manifest\u016f. Proto\u017ee ZooKeeper je sou\u010d\u00e1st\u00ed Kafka, je v\u00fdhodn\u00e9 za\u010d\u00edt se seznamovat s t\u00edm, jak\u00e9 koncepty Kubernetes se zde uplat\u0148uj\u00ed. Po pochopen\u00ed toho budete moci pou\u017e\u00edt stejn\u00e9 koncepty tak\u00e9 pro cluster Kafka.<\/p>\n<ul>\n<li><i>Pod<\/i>: pod \u2013 to je minim\u00e1ln\u00ed nasaditeln\u00e1 jednotka v Kubernetes. Pod obsahuje va\u0161i pracovn\u00ed z\u00e1t\u011b\u017e a s\u00e1m pod odpov\u00edd\u00e1 procesu ve va\u0161em clusteru. Pod obsahuje jeden nebo v\u00edce kontejner\u016f. Ka\u017ed\u00fd server ZooKeeper v souboru a ka\u017ed\u00fd broker v clusteru Kafka bude fungovat v samostatn\u00e9m podu.<\/li>\n<li><i>StatefulSet<\/i>: StatefulSet je objekt Kubernetes, kter\u00fd pracuje s v\u00edce pracovn\u00edmi z\u00e1t\u011b\u017eemi, je\u017e uchov\u00e1vaj\u00ed sv\u00e9 stavy, a tyto z\u00e1t\u011b\u017ee vy\u017eaduj\u00ed koordinaci. StatefulSet poskytuje z\u00e1ruky t\u00fdkaj\u00edc\u00ed se po\u0159ad\u00ed pod\u016f a jejich jedine\u010dnosti.<\/li>\n<li><i>Headless slu\u017eby<\/i>: Slu\u017eby umo\u017e\u0148uj\u00ed odpojit pody od klient\u016f pomoc\u00ed logick\u00e9ho jm\u00e9na. Kubernetes je v tomto p\u0159\u00edpad\u011b zodpov\u011bdn\u00fd za vyva\u017eov\u00e1n\u00ed z\u00e1t\u011b\u017ee. P\u0159i operac\u00edch s pracovn\u00edmi z\u00e1t\u011b\u017eemi, kter\u00e9 uchov\u00e1vaj\u00ed stav, jako je tomu u ZooKeeper a Kafka, v\u0161ak mus\u00ed klienti komunikovat s konkr\u00e9tn\u00edm instanc\u00ed. Zde p\u0159ich\u00e1zej\u00ed na \u0159adu headless slu\u017eby: klient tak st\u00e1le bude m\u00edt logick\u00e9 jm\u00e9no, ale nebude t\u0159eba se p\u0159\u00edmo obracet na pod. <\/li>\n<li><i>Objem pro trval\u00e9 \u00falo\u017ei\u0161t\u011b<\/i>: takov\u00e9 objemy jsou pot\u0159eba pro konfiguraci nelok\u00e1ln\u00edho blokov\u00e9ho trval\u00e9ho \u00falo\u017ei\u0161t\u011b, kter\u00e9 bylo zm\u00edn\u011bno v\u00fd\u0161e.<\/li>\n<\/ul>\n<p>\nNa <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Yolean\/kubernetes-kafka\">Yolean<\/a><\/noindex> poskytuje komplexn\u00ed sadu manifest\u016f, pomoc\u00ed kter\u00fdch je snadn\u00e9 za\u010d\u00edt pracovat s Kafka na Kubernetes.<\/p>\n<p><i><b>Helm diagramy<\/b><\/i><\/p>\n<p>Helm je mana\u017eer bal\u00ed\u010dk\u016f pro Kubernetes, kter\u00fd lze p\u0159irovnat k mana\u017eer\u016fm bal\u00ed\u010dk\u016f pro opera\u010dn\u00ed syst\u00e9my, jako jsou yum, apt, Homebrew nebo Chocolatey. Pomoc\u00ed n\u011bj m\u016f\u017eete snadno instalovat p\u0159edem definovan\u00e9 softwarov\u00e9 bal\u00ed\u010dky popsan\u00e9 v diagramech Helm. Dob\u0159e navr\u017een\u00fd diagram Helm usnad\u0148uje slo\u017eit\u00fd \u00fakol: jak spr\u00e1vn\u011b nakonfigurovat v\u0161echny parametry pro pou\u017eit\u00ed Kafka na Kubernetes. Existuje n\u011bkolik diagram\u016f Kafka: ofici\u00e1ln\u00ed se nach\u00e1z\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\/tree\/master\/incubator\/kafka\">v inkuba\u010dn\u00edm stavu<\/a><\/noindex>, existuje jeden od <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/confluentinc\/cp-helm-charts\/tree\/master\/charts\/cp-kafka\">Confluent<\/a><\/noindex>, dal\u0161\u00ed je od <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bitnami\/charts\/tree\/master\/bitnami\/kafka\">Bitnami<\/a><\/noindex>.<\/p>\n<p><i><b>Oper\u00e1to\u0159i<\/b><\/i><\/p>\n<p>Proto\u017ee Helm m\u00e1 ur\u010dit\u00e9 nedostatky, roste popularita dal\u0161\u00edho n\u00e1stroje: oper\u00e1to\u0159i Kubernetes. Oper\u00e1tor nejen bal\u00ed software pro Kubernetes, ale tak\u00e9 v\u00e1m umo\u017e\u0148uje nasadit tento software a spravovat ho.<\/p>\n<p>V seznamu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/operator-framework\/awesome-operators\">\u00fa\u017easn\u00fdch oper\u00e1tor\u016f<\/a><\/noindex> jsou uvedeni dva oper\u00e1to\u0159i pro Kafka. Jedn\u00edm z nich je <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/\">Strimzi<\/a><\/noindex>. S pomoc\u00ed Strimzi nen\u00ed \u017e\u00e1dn\u00fd probl\u00e9m spustit klastr Kafka b\u011bhem n\u011bkolika minut. T\u00e9m\u011b\u0159 \u017e\u00e1dn\u00e1 konfigurace nen\u00ed pot\u0159eba, nav\u00edc samotn\u00fd oper\u00e1tor poskytuje n\u011bkter\u00e9 p\u0159\u00edjemn\u00e9 funkce, nap\u0159\u00edklad \u0161ifrov\u00e1n\u00ed TLS typu \u201epoint-to-point\u201c uvnit\u0159 klastru. Confluent tak\u00e9 poskytuje <noindex><a rel=\"nofollow\" href=\"https:\/\/www.confluent.io\/confluent-operator\/\">sv\u016fj vlastn\u00ed oper\u00e1tor<\/a><\/noindex>.<\/p>\n<p><b>V\u00fdkon<\/b><\/p>\n<p>Je velmi d\u016fle\u017eit\u00e9 testovat v\u00fdkon t\u00edm, \u017ee za\u0159\u00edzen\u00ed, kter\u00e9 m\u00e1te nainstalovan\u00e9, vybav\u00edte kontroln\u00edmi body. Takov\u00e9 testy v\u00e1m pomohou odhalit potenci\u00e1ln\u00ed \u00fazk\u00e1 m\u00edsta, ne\u017e za\u010dnou probl\u00e9my. Na\u0161t\u011bst\u00ed v Kafce jsou ji\u017e k dispozici dva n\u00e1stroje pro testov\u00e1n\u00ed v\u00fdkonu: <code>kafka-producer-perf-test.sh<\/code> a <code>kafka-consumer-perf-test.sh<\/code>. Aktivn\u011b je pou\u017e\u00edvejte. Pro informaci se m\u016f\u017eete odkazovat na v\u00fdsledky uveden\u00e9 v <noindex><a rel=\"nofollow\" href=\"https:\/\/engineering.linkedin.com\/kafka\/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines\">tomto p\u0159\u00edsp\u011bvku<\/a><\/noindex> Jayem Krepskem, nebo se \u0159\u00eddit <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@stephane.maarek\/an-honest-review-of-aws-managed-apache-kafka-amazon-msk-94b1ff9459d8\">t\u00edmto p\u0159ehledem<\/a><\/noindex> Amazon MSK od St\u00e9phane Maarek.<\/p>\n<h4>Operace<\/h4>\n<p>\n<i><b>Monitoring<\/b><\/i><\/p>\n<p>Transparentnost v syst\u00e9mu je velmi d\u016fle\u017eit\u00e1 \u2013 jinak nebudete rozum\u011bt tomu, co se v n\u011bm d\u011bje. Dnes je k dispozici solidn\u00ed soubor n\u00e1stroj\u016f, kter\u00e9 poskytuj\u00ed monitorov\u00e1n\u00ed zalo\u017een\u00e9 na metrik\u00e1ch ve stylu cloud native. Dva popul\u00e1rn\u00ed n\u00e1stroje pro tento \u00fa\u010del jsou Prometheus a Grafana. Prometheus m\u016f\u017ee sb\u00edrat metriky ze v\u0161ech Java proces\u016f (Kafka, Zookeeper, Kafka Connect) pomoc\u00ed JMX export\u00e9ru \u2013 t\u00edm nejjednodu\u0161\u0161\u00edm zp\u016fsobem. Pokud p\u0159ipoj\u00edte metriky cAdvisor, budete m\u00edt \u00fapln\u011bj\u0161\u00ed p\u0159edstavu o tom, jak jsou zdroje vyu\u017e\u00edv\u00e1ny v Kubernetes.<\/p>\n<p>Strimzi m\u00e1 velmi u\u017eite\u010dn\u00fd p\u0159\u00edklad Grafana dashboardu pro Kafka. Vizualizuje kl\u00ed\u010dov\u00e9 metriky, jako jsou nedoreplikovan\u00e9 sektory nebo ty, kter\u00e9 jsou offline. V\u0161e je velmi p\u0159ehledn\u00e9. Tyto metriky jsou dopln\u011bny informacemi o vyu\u017eit\u00ed zdroj\u016f a v\u00fdkonnosti, jako\u017e i indik\u00e1tory stability. Tak z\u00edsk\u00e1te z\u00e1kladn\u00ed monitoring Kafka clusteru \u00fapln\u011b zdarma!<\/p>\n<p><img decoding=\"async\" alt=\"Je Kafka na Kubernetes dobr\u00fd?\" src=\"\/wp-content\/uploads\/2019\/08\/65ab468f7ebc0f376796990e41c62a48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZdroj: <noindex><a rel=\"nofollow\" href=\"https:\/\/strimzi.io\/docs\/master\/#kafka_dashboard\">strimzi.io\/docs\/master\/#kafka_dashboard<\/a><\/noindex><\/p>\n<p>Bylo by dobr\u00e9 doplnit to monitorov\u00e1n\u00edm klient\u016f (metriky pro spot\u0159ebitele a producenty) a tak\u00e9 monitoringem zpo\u017ed\u011bn\u00ed (k tomu slou\u017e\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/Burrow\">Burrow<\/a><\/noindex>) a podrobn\u00fdm monitoringem \u2013 pro to pou\u017eijte <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/linkedin\/kafka-monitor\">Kafka Monitor<\/a><\/noindex>.<\/p>\n<p><i><b>Logov\u00e1n\u00ed<\/b><\/i><\/p>\n<p>Logov\u00e1n\u00ed je dal\u0161\u00ed velmi d\u016fle\u017eit\u00fd \u00fakol. Ujist\u011bte se, \u017ee v\u0161echny kontejnery ve va\u0161\u00ed instalaci Kafka jsou logov\u00e1ny do <code>stdout<\/code> a <code>stderr<\/code>, a tak\u00e9 se postarejte o to, aby v\u00e1\u0161 Kubernetes cluster agregoval v\u0161echny logy do centr\u00e1ln\u00ed logovac\u00ed infrastruktury, nap\u0159\u00edklad do <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>Kontrola stavu<\/b><\/i><\/p>\n<p>Kubernetes pou\u017e\u00edv\u00e1 sondy \"\u017eivotnosti\" (liveness) a p\u0159ipravenosti (readiness), aby zkontroloval, zda va\u0161e pody funguj\u00ed spr\u00e1vn\u011b. Pokud kontrola \u017eivotnosti sel\u017ee, Kubernetes tento kontejner zastav\u00ed a pot\u00e9 ho automaticky restartuje, pokud je politika restartu nastavena spr\u00e1vn\u011b. Pokud kontrola p\u0159ipravenosti sel\u017ee, Kubernetes odizoluje tento pod od obsluhy po\u017eadavk\u016f. V takov\u00fdch p\u0159\u00edpadech tedy nen\u00ed pot\u0159eba \u017e\u00e1dn\u00fd manu\u00e1ln\u00ed z\u00e1sah, co\u017e je velk\u00e9 plus. <\/p>\n<p><i><b>Nasazen\u00ed aktualizac\u00ed<\/b><\/i><\/p>\n<p>StatefulSet podporuj\u00ed automatick\u00e9 aktualizace: p\u0159i v\u00fdb\u011bru strategie RollingUpdate bude ka\u017ed\u00fd pod Kafka aktualizov\u00e1n postupn\u011b. T\u00edmto zp\u016fsobem m\u016f\u017eete minimalizovat dobu v\u00fdpadku na nulu.<\/p>\n<p><i><b>\u0160k\u00e1lov\u00e1n\u00ed<\/b><\/i><\/p>\n<p>\u0160k\u00e1lov\u00e1n\u00ed Kafka clusteru je n\u00e1ro\u010dn\u00fd \u00fakol. Nicm\u00e9n\u011b v Kubernetes je velmi snadn\u00e9 \u0161k\u00e1lovat pody na ur\u010dit\u00e9 mno\u017estv\u00ed replik, co\u017e znamen\u00e1, \u017ee m\u016f\u017eete deklarativn\u011b ur\u010dit tolik broker\u016f Kafka, kolik budete cht\u00edt. Nejt\u011b\u017e\u0161\u00ed \u010d\u00e1st\u00ed v tomto p\u0159\u00edpad\u011b je p\u0159e\u0159azen\u00ed sektor\u016f po nav\u00fd\u0161en\u00ed nebo p\u0159ed sn\u00ed\u017een\u00edm m\u011b\u0159\u00edtka. Znovu, s t\u00edmto \u00fakolem v\u00e1m pom\u016f\u017ee Kubernetes.<\/p>\n<p><i><b>Administrace<\/b><\/i><\/p>\n<p>\u00dakoly spojen\u00e9 s administrac\u00ed va\u0161eho Kafka clusteru, zejm\u00e9na vytv\u00e1\u0159en\u00ed t\u00e9mat a p\u0159enos sektor\u016f, lze prov\u00e1d\u011bt pomoc\u00ed dostupn\u00fdch shell skript\u016f, kdy\u017e otev\u0159ete p\u0159\u00edkazov\u00fd \u0159\u00e1dek ve sv\u00fdch podech. Nicm\u00e9n\u011b, toto \u0159e\u0161en\u00ed nen\u00ed p\u0159\u00edli\u0161 elegantn\u00ed. Strimzi podporuje spr\u00e1vu t\u00e9mat pomoc\u00ed jin\u00e9ho oper\u00e1tora. Tady je co zlep\u0161ovat.<\/p>\n<p><i><b>Z\u00e1lohov\u00e1n\u00ed a obnova<\/b><\/i><\/p>\n<p>Nyn\u00ed bude dostupnost Kafka z\u00e1viset tak\u00e9 na dostupnosti Kubernetes. Pokud v\u00e1m spadne Kubernetes cluster, v nejhor\u0161\u00edm p\u0159\u00edpad\u011b spadne i Kafka cluster. Podle Murphyho z\u00e1kona se to ur\u010dit\u011b stane a vy ztrat\u00edte data. Aby se sn\u00ed\u017eilo riziko tohoto druhu, m\u011bli byste pe\u010dliv\u011b propracovat koncept z\u00e1lohov\u00e1n\u00ed. M\u016f\u017eete vyu\u017e\u00edt MirrorMaker, dal\u0161\u00edm \u0159e\u0161en\u00edm je pou\u017e\u00edt S3, jak je pops\u00e1no v tomto <noindex><a rel=\"nofollow\" href=\"https:\/\/jobs.zalando.com\/tech\/blog\/backing-up-kafka-zookeeper\/\">p\u0159\u00edsp\u011bvku<\/a><\/noindex> od Zalando.<\/p>\n<h4>Z\u00e1v\u011br<\/h4>\n<p>\nP\u0159i pr\u00e1ci s mal\u00fdmi nebo st\u0159edn\u00edmi Kafka clustery je rozhodn\u011b rozumn\u00e9 pou\u017e\u00edt Kubernetes, proto\u017ee poskytuje dodate\u010dnou flexibilitu a zjednodu\u0161uje pr\u00e1ci s oper\u00e1tory. Pokud m\u00e1te velmi p\u0159\u00edsn\u00e9 nefunk\u010dn\u00ed po\u017eadavky t\u00fdkaj\u00edc\u00ed se latence a\/nebo propustnosti, mo\u017en\u00e1 by st\u00e1lo za to zv\u00e1\u017eit n\u011bjakou jinou mo\u017enost nasazen\u00ed.<br \/>\n<br \/>Zdroj: <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.3 - 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\/cs\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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\udd47Je Kafka na Kubernetes dobr\u00e1? | ProHoster","description":"V\u00edtejte, Habre! V minulosti jsme jako prvn\u00ed uvedli na rusk\u00fd trh t\u00e9ma","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kafka-na-kubernetes-eto-horosho","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/36822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=36822"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/36822\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/27586"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=36822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=36822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=36822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}