Na Kafka ho Kubernetes e ntle?

Lumela, Habr!

Ka nako e 'ngoe, e ne e le rona ba pele ba ho hlahisa sehlooho 'marakeng oa Russia Kafka le ho tsoela pele pina bakeng sa ntshetsopele ya yona. Ka ho khetheha, re fumane sehlooho sa tšebelisano pakeng tsa Kafka le Kubernetes. E hlokomelehang (mme e hlokolosi haholo) sehlooho sehlooho sena se ile sa hatisoa ka blog ya Confluent morao ka October selemong se fetileng tlas'a bongoli ba Gwen Shapira. Kajeno re rata ho lebisa tlhokomelo ea hau sehloohong sa morao-rao ho tloha ka April ka Johann Gyger, eo, le hoja a se na letšoao la potso sehloohong, o hlahloba sehlooho ka mokhoa o matla haholoanyane, o tsamaisana le temana ka lihokelo tse thahasellisang. Ka kopo, re tšoarele phetolelo ea mahala ea "chaos monkey" haeba u ka khona!

Na Kafka ho Kubernetes e ntle?

Selelekela

Kubernetes e etselitsoe ho sebetsana le meroalo e mengata ea mosebetsi. Ka tloaelo, meroalo e joalo ea mosebetsi e hlahisoa ka mokhoa oa meralo ea microservice, e bobebe, e lekantsoe hantle, e latela melao-motheo ea lits'ebetso tse 12, 'me e ka sebetsa le li-circuit breaker le litšoene tsa moferefere.

Kafka, ka lehlakoreng le leng, e sebetsa joalo ka database e abuoang. Kahoo, ha o sebetsa, o tlameha ho sebetsana le mmuso, mme o boima haholo ho feta microservice. Kubernetes e ts'ehetsa meroalo e boima, empa joalo ka ha Kelsey Hightower a supa li-tweets tse peli, li lokela ho sebetsoa ka hloko:

Batho ba bang ba na le maikutlo a hore ha o kenya Kubernetes mosebetsing o boima, e fetoha database e laoloang ka botlalo e qothisanang lehlokoa le RDS. Sena se fosahetse. Mohlomong, haeba u sebetsa ka thata ka ho lekaneng, eketsa lisebelisoa tse eketsehileng 'me u hohele sehlopha sa baenjiniere ba SRE, u tla khona ho haha ​​RDS holim'a Kubernetes.

Ke khothaletsa motho e mong le e mong hore a be hlokolosi haholo ha a etsa mosebetsi o mongata ho Kubernetes. Batho ba bangata ba botsang "na nka tsamaisa meroalo e mengata ea mosebetsi ho Kubernetes" ha ba na boiphihlelo bo lekaneng le Kubernetes, 'me hangata ka mosebetsi oo ba o botsang.

Joale, na u lokela ho matha Kafka ho Kubernetes? Potso ea counter: na Kafka e tla sebetsa betere ntle le Kubernetes? Ke kahoo ke batlang ho totobatsa sehloohong sena kamoo Kafka le Kubernetes ba tlatsanang kateng, le hore na ke maraba afe a ka tlang ka ho li kopanya.

Nako ea ho phethela

Ha re bue ka ntho ea mantlha - tikoloho ea nako ea ho sebetsa ka boeona

thulaganyou e

Barekisi ba Kafka ba na le botsoalle ba CPU. TLS e kanna ea hlahisa litaba tse ling. Leha ho le joalo, bareki ba Kafka ba ka ba matla haholo ho CPU haeba ba sebelisa encryption, empa sena ha se ame barekisi.

memori.hlahloba

Barekisi ba Kafka ba ja mohopolo. Boholo ba qubu ea JVM hangata bo lekanyelitsoe ho 4-5 GB, empa hape o tla hloka mohopolo o mongata oa sistimi kaha Kafka e sebelisa cache ea leqephe haholo haholo. Ho Kubernetes, beha mohloli oa lisebelisoa 'me u kope meeli ka nepo.

Lebenkele la data

Polokelo ea data ka har'a lijana ke ephemeral - data e lahlehile ha e qala hape. Bakeng sa data ea Kafka u ka sebelisa molumo emptyDir, 'me phello e tla tšoana: data ea hau ea broker e tla lahleha ka mor'a hore e phethoe. Melaetsa ea hau e ntse e ka bolokoa ho barekisi ba bang joalo ka likopi. Ka hona, kamora ho qala bocha, morekisi ea hlolehileng o tlameha ho qala ho pheta lintlha tsohle, mme ts'ebetso ena e ka nka nako e ngata.

Ke ka lebaka leo u lokelang ho sebelisa polokelo ea data ea nako e telele. E ke e be sebaka sa polokelo ea nako e telele ea nako e telele ka sistimi ea faele ea XFS kapa, ka nepo, ext4. Se ke oa sebelisa NFS. Ke o lemositse. Liphetolelo tsa NFS v3 kapa v4 li ke ke tsa sebetsa. Ka bokhutšoanyane, morekisi oa Kafka o tla senyeha haeba a sa khone ho hlakola bukana ea data ka lebaka la "bothata bo hlokang kelello" ho NFS. Haeba ha ke so u kholisehe, ka hloko haholo bala sehlooho sena. Lebenkele la data ha lea lokela ho ba la lehae e le hore Kubernetes a ka khetha node e ncha habonolo ka mor'a ho qala bocha kapa ho falla.

Motsoalle

Joalo ka litsamaiso tse ngata tse ajoang, ts'ebetso ea Kafka e itšetlehile haholo ka ho boloka latency ea marang-rang bonyane le bandwidth ho ea holimo. Se ke oa leka ho amohela barekisi bohle sebakeng se le seng, kaha sena se tla fokotsa ho fumaneha. Haeba node ea Kubernetes e hlōleha, sehlopha sohle sa Kafka se tla hlōleha. Hape, u se ke ua qhala sehlopha sa Kafka libakeng tsohle tsa data. Ho joalo le ka sehlopha sa Kubernetes. Tumellano e ntle tabeng ena ke ho khetha libaka tse fapaneng tse fumanehang.

Moralo

Li-manifesto tsa kamehla

Webosaete ea Kubernetes e na le tataiso e ntle haholo mabapi le mokhoa oa ho lokisa ZooKeeper o sebelisa li-manifest. Kaha ZooKeeper ke karolo ea Kafka, mona ke sebaka se setle sa ho qala ho tloaelana le maikutlo a Kubernetes a sebetsang mona. Hang ha u utloisisa sena, u ka sebelisa likhopolo tse tšoanang le sehlopha sa Kafka.

  • Tlas'a: Pod ke karolo e nyane ka ho fetisisa e ka tsamaisoang ho Kubernetes. Pod e na le mosebetsi oa hau, 'me pod ka boeona e lumellana le ts'ebetso ea sehlopha sa hau. Pod e na le sejana se le seng kapa ho feta. Seva e 'ngoe le e' ngoe ea ZooKeeper e kopaneng 'me morekisi e mong le e mong sehlopheng sa Kafka o tla sebetsa ka har'a pod e arohaneng.
  • StatefulSet: StatefulSet ke ntho ea Kubernetes e sebetsanang le meroalo e mengata ea maemo, 'me mesebetsi e joalo e hloka tšebelisano. StatefulSets e fana ka litiisetso mabapi le tlhophiso ea li-pods le ho ikhetha ha tsona.
  • Litšebeletso tse se nang hlooho: Litšebeletso li u lumella ho tlosa li-pods ho tsoa ho bareki u sebelisa lebitso le utloahalang. Kubernetes tabeng ena e ikarabella bakeng sa ho leka-lekanya mojaro. Leha ho le joalo, ha ho sebetsa mesebetsi e mengata, joalo ka ZooKeeper le Kafka, bareki ba hloka ho buisana le ketsahalo e itseng. Mona ke moo litšebeletso tse se nang hlooho li kenang hantle: tabeng ena, mofani o ntse a tla ba le lebitso le utloahalang, empa ha ho hlokahale hore u ikopanye le pod ka ho toba.
  • Bophahamo ba nako e telele ea polokelo: Li-volumes tsena lia hlokahala ho hlophisa polokelo e sa khaotseng ea sebaka se boletsoeng ka holimo.

mabapi le Yolean E fana ka lethathamo le felletseng la lipontšo ho u thusa ho qala ka Kafka ho Kubernetes.

Lichate tsa Helm

Helm ke molaoli oa sephutheloana bakeng sa Kubernetes e ka bapisoang le batsamaisi ba sephutheloana sa OS joalo ka yum, apt, Homebrew kapa Chocolatey. E etsa hore ho be bonolo ho kenya liphutheloana tsa software tse hlalositsoeng esale pele tse hlalositsoeng lichabeng tsa Helm. Chate ea Helm e khethiloeng hantle e etsa hore ho be bonolo ho etsa mosebetsi o boima oa ho lokisa li-parameter tsohle ho sebelisa Kafka ho Kubernetes. Ho na le litšoantšo tse 'maloa tsa Kafka: ea semmuso e teng boemong ba ho incubator, ho na le e mong ho tloha Pherekano, e 'ngoe hape - ho tloha Bitnami.

Basebelisi

Hobane Helm e na le mefokolo e itseng, sesebelisoa se seng se ntse se tsebahala haholo: Basebelisi ba Kubernetes. Opereishene ha e kenye feela software ea Kubernetes, empa e boetse e u lumella ho sebelisa software e joalo le ho e laola.

Lethathamong basebetsi ba makatsang Ho boletsoe basebetsi ba babeli ba Kafka. E mong oa bona - Strimzi. Ka Strimzi, ho bonolo ho etsa hore sehlopha sa hau sa Kafka se sebetse ka mor'a metsotso e seng mekae. Ha e le hantle ha ho na tlhophiso e hlokehang, ho phaella moo, opareitara ka boeona e fana ka likarolo tse ling tse ntle, mohlala, ntlha-to-point encryption ea TLS ka har'a sehlopha. Confluent e boetse e fana ka mosebeletsi oa hae.

Tlhahiso

Ho bohlokoa ho lekola ts'ebetso ka ho tšoaea mohlala oa hau oa Kafka. Liteko tse joalo li tla u thusa ho fumana mathata a ka bang teng pele mathata a hlaha. Ka lehlohonolo, Kafka e se e fana ka lisebelisoa tse peli tsa tlhahlobo ea ts'ebetso: kafka-producer-perf-test.sh и kafka-consumer-perf-test.sh. Li sebelise ka mafolofolo. Bakeng sa litšupiso, o ka sheba liphetho tse hlalositsoeng ho poso ena Jay Kreps, kapa tsepamisa maikutlo ho tlhahlobo ena Amazon MSK ke Stéphane Maarek.

Tshebetso

Tlhokomelo

Ho pepeseha ka har'a sistimi ho bohlokoa haholo - ho seng joalo u ke ke ua utloisisa se etsahalang ho eona. Kajeno ho na le sesebelisoa se tiileng se fanang ka tlhahlobo e thehiloeng ho metrics ka mokhoa oa tlhaho oa maru. Lisebelisoa tse peli tse tsebahalang bakeng sa morero ona ke Prometheus le Grafana. Prometheus e ka bokella metrics ho tsoa lits'ebetsong tsohle tsa Java (Kafka, Zookeeper, Kafka Connect) a sebelisa morekisi oa JMX - ka tsela e bonolo. Haeba o eketsa metrics ea cAdvisor, o ka utloisisa ka botlalo hore na lisebelisoa li sebelisoa joang ho Kubernetes.

Strimzi o na le mohlala o bonolo haholo oa dashboard ea Grafana bakeng sa Kafka. E bona litekanyo tsa bohlokoa, ho etsa mohlala, mabapi le mafapha a sa sebetseng hantle kapa a sa sebetseng inthaneteng. Tsohle di hlakile haholo moo. Metrics ena e tlatsitsoe ke tšebeliso ea lisebelisoa le tlhahisoleseding ea ts'ebetso, hammoho le matšoao a botsitso. Kahoo o fumana tlhahlobo ea mantlha ea sehlopha sa Kafka mahala!

Na Kafka ho Kubernetes e ntle?

Source: streamzi.io/docs/master/#kafka_dashboard

Ho ka ba monate ho tlatselletsa tsena tsohle ka tlhahlobo ea bareki (metrics ho bareki le bahlahisi), hammoho le tlhahlobo ea latency (bakeng sa sena ho na le Burrow) le tlhokomelo ea ho qetela - bakeng sa ts'ebeliso ena Kafka Monitor.

Ho rema lifate

Ho rema lifate ke mosebetsi o mong oa bohlokoa. Etsa bonnete ba hore lijana tsohle tse kenyang Kafka li kentsoe ho tsona stdout и stderr, hape etsa bonnete ba hore sehlopha sa hau sa Kubernetes se kopanya lits'oants'o tsohle ho setsi sa motheo sa ho rema lifate, mohlala. Elasticsearch.

Lekhetho la tšebetso

Kubernetes e sebelisa lisebelisoa tsa bophelo le ho itokisetsa ho lekola hore na li-pods tsa hau li sebetsa ka mokhoa o tloaelehileng. Haeba tlhahlobo ea bophelo e hloleha, Kubernetes e tla emisa setshelo seo ebe e se qala hape ka bo eona haeba leano la ho qala bocha le behiloe ka nepo. Haeba tlhahlobo ea ho itokisetsa e hloleha, Kubernetes e arola pod ho likopo tsa litšebeletso. Kahoo, maemong a joalo, ho kenella ka letsoho ha ho sa hlokahala ho hang, e leng phaello e kholo.

Ho hlahisa lintlafatso

StatefulSets e ts'ehetsa liapdeite tsa othomathike: ha u khetha leano la RollingUpdate, e 'ngoe le e' ngoe e tlas'a Kafka e tla ntlafatsoa ka ho latellana. Ka tsela ena, nako ea ho theoha e ka fokotsoa ho zero.

Katoloso

Ho eketsa sehlopha sa Kafka ha se mosebetsi o bonolo. Leha ho le joalo, Kubernetes e etsa hore ho be bonolo haholo ho phahamisa li-pods ho palo e itseng ea likopi, ho bolelang hore o ka hlalosa ka mokhoa o hlakileng barekisi ba bangata ba Kafka kamoo u ratang. Ntho e thata ka ho fetisisa tabeng ena ke ho arola likarolo ka mor'a ho phahamisa kapa pele ho fokotsa. Hape, Kubernetes e tla u thusa ka mosebetsi ona.

Tsamaiso

Mesebetsi e amanang le ho tsamaisa sehlopha sa hau sa Kafka, joalo ka ho theha lihlooho le likarolo tsa ho abela bocha, e ka etsoa ho sebelisoa likhetla tse seng li ntse li le teng ka ho bula sebopeho sa mola oa taelo ho li-pods tsa hau. Leha ho le joalo, tharollo ena ha e ntle haholo. Strimzi e tšehetsa ho laola lihlooho ka ho sebelisa mochine o fapaneng. Ho na le sebaka sa ho ntlafatsa mona.

Boloka le ho khutlisetsa

Hona joale ho fumaneha ha Kafka ho tla itšetleha ka ho fumaneha ha Kubernetes. Haeba sehlopha sa hau sa Kubernetes se hloleha, maemong a mabe ka ho fetesisa, sehlopha sa hau sa Kafka le sona se tla hloleha. Ho ea ka molao oa Murphy, sena se tla etsahala, 'me u tla lahleheloa ke data. Ho fokotsa kotsi ea mofuta ona, e-ba le mohopolo o motle oa bekapo. U ka sebelisa MirrorMaker, kgetho e 'ngoe ke ho sebelisa S3 bakeng sa sena, joalokaha ho hlalositsoe ho sena poso ho tsoa Zalando.

fihlela qeto e

Ha o sebetsa le lihlopha tse nyane ho isa ho tse mahareng tsa Kafka, ho bohlokoa ho sebelisa Kubernetes kaha e fana ka maemo a eketsehileng le ho nolofatsa boiphihlelo ba opareitara. Haeba u na le litlhoko tsa bohlokoa haholo tse sa sebetseng tsa latency le/kapa ho feta, ho ka ba molemo ho nahana ka khetho e 'ngoe ea ho tsamaisa.

Source: www.habr.com

Eketsa ka tlhaloso