Kafka na Kubernetes ọ dị mma?

Daalụ, Habr!

N'otu oge, anyị bụ ndị mbụ webatara isiokwu ahụ n'ahịa Russia Kafka wee gaa n'ihu egwu maka mmepe ya. Karịsịa, anyị chọtara isiokwu nke mmekọrịta n'etiti Kafka na Kubernetes. A na-ahụ anya (ma kpachapụ anya) otu isiokwu E bipụtara isiokwu a na blọgụ Confluent laa azụ n'October afọ gara aga n'okpuru akwụkwọ Gwen Shapira. Taa, anyị ga-achọ ịdọrọ uche gị gaa na akụkọ na-adịbeghị anya sitere na April site na Johann Gyger, bụ onye, ​​​​n'agbanyeghị na ọ bụghị na-enweghị akara ajụjụ na aha ahụ, na-enyocha isiokwu ahụ n'ụzọ dị ịrịba ama, na-eso ederede na njikọ na-adọrọ mmasị. Biko gbaghara anyị nsụgharị nke "enwe ọgbaghara" n'efu ma ọ bụrụ na ị nwere ike!

Kafka na Kubernetes ọ dị mma?

Okwu Mmalite

Emebere Kubernetes ka ọ rụọ ọrụ na-enweghị obodo. A na-egosiputa ụdị ọrụ dị otú ahụ n'ụdị ụlọ ọrụ microservice, ha dị arọ, dị arọ nke ọma, na-agbaso ụkpụrụ nke ngwa 12-factor, ma nwee ike ịrụ ọrụ na ndị na-agbaji sekit na enwe ọgba aghara.

Kafka, n'aka nke ọzọ, na-eme ihe dị ka nchekwa data ekesa. Ya mere, mgbe ị na-arụ ọrụ, ị ga-emeso steeti, ma ọ dị arọ karịa microservice. Kubernetes na-akwado ibu steeti, mana dị ka Kelsey Hightower gosipụtara na tweet abụọ, ekwesịrị iji nlezianya na-ejikwa ha:

Ụfọdụ ndị mmadụ na-eche na ọ bụrụ na ị tụgharị Kubernetes n'ime ọrụ dị mma, ọ na-aghọ nchekwa data ejiri nke ọma na-emegide RDS. Nke a adịghị mma. Eleghị anya, ọ bụrụ na ị na-arụsi ọrụ ike nke ọma, tinyekwuo ihe ndị ọzọ ma dọta otu ndị injinia SRE, ị ga-enwe ike wuo RDS n'elu Kubernetes.

Ana m akwado mgbe niile ka onye ọ bụla kpachapụ anya mgbe ọ na-arụ ọrụ nke ọma na Kubernetes. Ọtụtụ ndị mmadụ na-ajụ "Enwere m ike ịgba ọsọ arụ ọrụ na Kubernetes" enweghị ahụmahụ zuru oke na Kubernetes, na mgbe mgbe na ibu ọrụ ha na-ajụ.

Yabụ, ị kwesịrị ịgba ọsọ Kafka na Kubernetes? Ajụjụ Counter: Kafka ọ ga-arụ ọrụ nke ọma na-enweghị Kubernetes? Ọ bụ ya mere m ji chọọ ịkọwapụta n'isiokwu a ka Kafka na Kubernetes si emeju ibe ha, na ihe ọnyà nwere ike ịbịa na ijikọta ha.

Oge mmecha

Ka anyị kwuo banyere ihe bụ isi - oge ojiri gaa gburugburu n'onwe ya

usoro

Ndị na-ere ahịa Kafka bụ enyi na enyi CPU. TLS nwere ike iwebata ụfọdụ n'elu. Agbanyeghị, ndị ahịa Kafka nwere ike ịdịwanye ike karịa CPU ma ọ bụrụ na ha na-eji ezoro ezo, mana nke a anaghị emetụta ndị na-ere ahịa.

ebe nchekwa

Ndị na-ere ahịa Kafka na-eri ihe ncheta. A na-enwekarị oke mkpokọ JVM na 4-5 GB, mana ị ga-achọkwa ọtụtụ ebe nchekwa sistemụ ebe Kafka na-eji cache ibe ahụ nke ukwuu. Na Kubernetes, tọọ akụrụngwa akpa ma rịọ oke ka ọ dabara.

Ụlọ ahịa data

Nchekwa data n'ime akpa bụ ihe na-agwụ ike - data na-efunahụ mgbe ịmalitegharịrị. Maka data Kafka ị nwere ike iji olu emptyDir, na mmetụta ga-adị ka: gị ore ahia data ga-efunahụ mgbe emechara. Enwere ike ịchekwa ozi gị na ndị na-ere ahịa ndị ọzọ dị ka oyiri. Ya mere, mgbe ịmalitegharịrị, onye na-ere ahịa dara ada ga-ebu ụzọ megharịa data niile, usoro a nwere ike were ogologo oge.

Nke a bụ ihe mere ị ga-eji jiri nchekwa data ogologo oge. Ka ọ bụrụ nchekwa ogologo oge na-abụghị nke mpaghara yana sistemụ faịlụ XFS ma ọ bụ, karịa, ext4. Ejila NFS. M dọọ gị aka ná ntị. Ụdị NFS v3 ma ọ bụ v4 agaghị arụ ọrụ. Na nkenke, onye na-ere ahịa Kafka ga-adaba ma ọ bụrụ na ọ nweghị ike ihichapụ ndekọ data n'ihi nsogbu "nzuzu rename" na NFS. Ọ bụrụ na emebeghị m ka ị kwenye, nke ọma gụọ akụkọ a. Ụlọ ahịa data kwesịrị ịbụ nke na-abụghị nke mpaghara ka Kubernetes wee nwee ike ịhọrọ ọnụ ọhụrụ karịa ka ịmalitegharịa ma ọ bụ mbugharị.

Network

Dị ka ọ dị na ọtụtụ sistemụ kesara, arụmọrụ Kafka dabere na idobe latency netwọk kacha nta yana bandwit ruo oke. Agbalịla ịnabata ndị na-ere ahịa niile n'otu ọnụ ọnụ, n'ihi na nke a ga-ebelata nnweta. Ọ bụrụ na ọnụ Kubernetes daa, ụyọkọ Kafka niile ga-ada. Ọzọkwa, agbasasịla ụyọkọ Kafka n'ofe ebe data niile. Otu ihe ahụ na-aga maka ụyọkọ Kubernetes. Nkwekọrịta dị mma na nke a bụ ịhọrọ mpaghara dị iche iche dị.

Nhazi

Ihe ngosi mgbe niile

Weebụsaịtị Kubernetes nwere ezigbo ndu gbasara otu esi ahazi ZooKeeper site na iji ngosipụta. Ebe ọ bụ na ZooKeeper bụ akụkụ nke Kafka, nke a bụ ebe dị mma ịmalite ịmara nke echiche Kubernetes na-etinye ebe a. Ozugbo ị ghọtara nke a, ị nwere ike iji otu echiche ahụ na ụyọkọ Kafka.

  • N'okpuru: Otu pọd bụ akụkụ kacha nta na Kubernetes. Pọd nwere ibu ọrụ gị, pọd ahụ n'onwe ya dabara na usoro dị na ụyọkọ gị. Otu pọd nwere otu akpa ma ọ bụ karịa. Ihe nkesa ZooKeeper ọ bụla na mkpokọta na onye na-ere ahịa ọ bụla na ụyọkọ Kafka ga-agba ọsọ na pọd dị iche.
  • StatefulSet: StatefulSet bụ ihe Kubernetes nke na-ejikwa ọtụtụ ọrụ steeti arụ ọrụ, na ọrụ dị otú ahụ chọrọ nhazi. StatefulSets na-enye nkwa gbasara ịtụ pọd na ịpụiche ha.
  • Ọrụ enweghị isi: Ọrụ na-enye gị ohere iwepụ pods n'aka ndị ahịa site na iji aha ezi uche dị na ya. Kubernetes na nke a bụ ọrụ maka ịhazi nha. Agbanyeghị, mgbe ị na-arụ ọrụ dị mma, dị ka ZooKeeper na Kafka, ndị ahịa kwesịrị iji otu ihe atụ kparịta ụka. Nke a bụ ebe ọrụ enweghị isi na-abata: na nke a, onye ahịa ahụ ka ga-enwe aha ezi uche dị na ya, mana ị gaghị akpọtụrụ pọd ozugbo.
  • Olu nchekwa ogologo oge: Achọrọ mpịakọta ndị a iji hazie nchekwa na-adịgide adịgide nke na-abụghị nke mpaghara a kpọtụrụ aha n'elu.

Na Yolean Na-enye usoro ngosipụta zuru oke iji nyere gị aka ịmalite na Kafka na Kubernetes.

chaatị Helm

Helm bụ onye njikwa ngwugwu maka Kubernetes enwere ike iji ya tụnyere ndị njikwa ngwugwu OS dị ka yum, apt, Homebrew ma ọ bụ Chocolatey. Ọ na-eme ka ọ dị mfe ịwụnye ngwungwu ngwanrọ akọwara akọwara na chaatị Helm. Chaatị Helm ahọpụtara nke ọma na-eme ka ọrụ siri ike nke otu esi ahazi usoro niile nke ọma iji Kafka na Kubernetes dị mfe. Enwere ọtụtụ eserese Kafka: nke gọọmentị dị n'ọnọdụ incubator, e nwere otu si Mgbagha, otu ọzọ - si Bitnami.

Ndị ọrụ

N'ihi na Helm nwere ụfọdụ adịghị ike, ngwá ọrụ ọzọ na-enweta nnukwu ewu ewu: ndị ọrụ Kubernetes. Onye na-arụ ọrụ abụghị naanị ngwugwu ngwanrọ maka Kubernetes, kamakwa na-enye gị ohere ibuga ngwanro dị otú ahụ ma jikwaa ya.

Na ndepụta ndị na-arụ ọrụ dị ịtụnanya A na-akpọ ndị ọrụ abụọ maka Kafka. Otu n'ime ha - Strimzi. Site na Strimzi, ọ dị mfe iji nweta ụyọkọ Kafka gị wee na-agba ọsọ n'ime nkeji. Ọ fọrọ nke nta ka ọ bụrụ nhazi ọ bụla achọrọ, na mgbakwunye, onye ọrụ n'onwe ya na-enye ụfọdụ njirimara mara mma, dịka ọmụmaatụ, izo ya ezo TLS n'ime ụyọkọ ahụ. Confluent na-enyekwa onye ọrụ nke ya.

Ubu oke

Ọ dị mkpa iji nwalee arụmọrụ site na benchmarking gị Kafka. Nnwale ndị dị otú ahụ ga-enyere gị aka ịchọta nsogbu ndị nwere ike ime tupu nsogbu emee. Luckily, Kafka enyelarị ngwaọrụ nnwale arụmọrụ abụọ: kafka-producer-perf-test.sh и kafka-consumer-perf-test.sh. Jiri ha mee ihe nke ọma. Maka ntụnye aka, ị nwere ike rụtụ aka na nsonaazụ akọwara na ya nke a post Jay Kreps, ma ọ bụ lekwasị anya na a nyochaa Amazon MSK nke Stéphane Maarek.

arụmọrụ

Nlekota oru

Nghọta na usoro dị oke mkpa - ma ọ bụghị na ị gaghị aghọta ihe na-eme na ya. Taa enwere ngwa ngwa siri ike nke na-enye nleba anya dabere na metrik na ụdị ala igwe ojii. Ngwa abụọ a ma ama maka ebumnuche a bụ Prometheus na Grafana. Prometheus nwere ike ịnakọta metrics na usoro Java niile (Kafka, Zookeeper, Kafka Connect) site na iji onye na-ebupụ JMX - n'ụzọ kachasị mfe. Ọ bụrụ na ị gbakwunye metrik cAdvisor, ị nwere ike ịghọta nke ọma ka esi eji akụrụngwa na Kubernetes.

Strimzi nwere ezigbo ihe atụ nke dashboard Grafana maka Kafka. Ọ na-egosipụta metric isi, dịka ọmụmaatụ, gbasara ngalaba anaghị emegharị ma ọ bụ ndị na-anọghị n'ịntanetị. Ihe niile doro anya ebe ahụ. A na-agbakwunye metrik ndị a site na iji akụrụngwa yana ozi arụmọrụ yana ihe nkwụsi ike. Yabụ ị nweta nlebanya ụyọkọ Kafka bụ isi n'efu!

Kafka na Kubernetes ọ dị mma?

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

Ọ ga-adị mma ịgbakwunye ihe a niile na nlekota ndị ahịa (metrics na ndị na-azụ ahịa na ndị na-emepụta ihe), yana nlekota latency (maka nke a enwere. Burrow) na nlekota njedebe na njedebe - maka ojiji a Kafka Monitor.

Ịbanye

Ịkụ osisi bụ ọrụ ọzọ dị mkpa. Gbaa mbọ hụ na abanyela na arịa niile dị na nrụnye Kafka gị stdout и stderr, ma hụkwa na ụyọkọ Kubernetes gị na-achịkọta ndekọ niile n'ime akụrụngwa osisi etiti, dịka ọmụmaatụ. Elasticsearch.

Nyocha arụmọrụ

Kubernetes na-eji nyocha ịdị ndụ na ịdị njikere iji lelee ma pọd gị na-agba ọsọ nke ọma. Ọ bụrụ na nlele ndụ ahụ ada, Kubernetes ga-akwụsị akpa ahụ wee malitegharịa ya na-akpaghị aka ma ọ bụrụ na edobere amụma mmalite ahụ. Ọ bụrụ na nlele njikere ahụ ada, Kubernetes kewapụrụ pọd ahụ na arịrịọ ọrụ. Ya mere, n'ọnọdụ ndị dị otú ahụ, enyemaka aka adịghịzi achọ ma ọlị, nke bụ nnukwu gbakwunyere.

Na-ewepụta mmelite

StatefulSets na-akwado mmelite akpaka: ọ bụrụ na ịhọrọ atụmatụ RollingUpdate, onye ọ bụla n'okpuru Kafka ga-emelite n'otu n'otu. N'ụzọ dị otú a, oge nkwụsịtụ nwere ike belata ka ọ bụrụ efu.

Ịtụle

Ịme ụyọkọ Kafka abụghị ọrụ dị mfe. Agbanyeghị, Kubernetes na-eme ka ọ dị mfe ịtụba pọd na ọnụ ọgụgụ ụfọdụ nke oyiri, nke pụtara na ị nwere ike ịkọwapụta ọtụtụ ndị na-ere ahịa Kafka dị ka masịrị gị. Ihe kachasị sie ike n'okwu a bụ ịnyegharị ngalaba mgbe emechara elu ma ọ bụ tupu ibelata. Ọzọ, Kubernetes ga-enyere gị aka na ọrụ a.

Nchịkwa

Enwere ike ime ọrụ ndị metụtara ijikwa ụyọkọ Kafka gị, dị ka ịmepụta isiokwu na nhazigharị ngalaba, site na iji edemede shei dị ugbu a site na imepe interface ahịrị ahịrị na pọd gị. Otú ọ dị, ngwọta a adịghị mma nke ukwuu. Strimzi na-akwado ijikwa isiokwu site na iji onye ọrụ dị iche. Enwere ohere maka imeziwanye ebe a.

Езервное копирование и восстановление

Ugbu a nnweta Kafka ga-adaberekwa na nnweta Kubernetes. Ọ bụrụ na ụyọkọ Kubernetes gị daa, mgbe ahụ n'ọnọdụ kachasị njọ, ụyọkọ Kafka gị ga-adakwa. Dịka iwu Murphy siri dị, nke a ga-emerịrị, ma ị ga-atụfu data. Iji belata ụdị ihe egwu a, nwee echiche ndabere dị mma. Ị nwere ike iji MirrorMaker, nhọrọ ọzọ bụ iji S3 maka nke a, dị ka akọwara na nke a biputere nke Zalando.

nkwubi

Mgbe ị na-arụ ọrụ na obere ụyọkọ Kafka na ọkara, ọ bara uru iji Kubernetes ka ọ na-enyekwu mgbanwe ma na-eme ka ahụmịhe onye ọrụ dị mfe. Ọ bụrụ na ị nwere nnukwu latency na-adịghị arụ ọrụ na/ma ọ bụ ihe nrụpụta chọrọ, mgbe ahụ ọ ga-aka mma ịtụle nhọrọ mbugharị ọzọ.

isi: www.habr.com

Tinye a comment