A bheil Kafka air Kubernetes math?

Beannachd leat, Habr!

Aig aon àm, b 'e sinne a' chiad fhear a thug a-steach a 'chuspair gu margadh na Ruis Kafka agus lean ort rian airson a leasachadh. Gu sònraichte, lorg sinn cuspair eadar-obrachadh eadar Kafka agus Kubernetes. Ri fhaicinn (agus gu math faiceallach) artaigil chaidh an cuspair seo fhoillseachadh air a’ bhlog Confluent air ais san Dàmhair an-uiridh fo ùghdarras Gwen Shapira. An-diugh bu mhath leinn d ’aire a tharraing gu artaigil nas ùire bhon Ghiblean le Johann Gyger, a bhios, ged nach eil e às aonais comharra ceist san tiotal, a’ sgrùdadh a ’chuspair ann an dòigh nas susbainteach, an cois an teacsa le ceanglaichean inntinneach. Feuch an toir thu mathanas dhuinn an eadar-theangachadh an-asgaidh de “chaos monkey” mas urrainn dhut!

A bheil Kafka air Kubernetes math?

Ro-ràdh

Tha Kubernetes air a dhealbhadh gus eallach obrach gun stàit a làimhseachadh. Mar as trice, bidh na h-uallaichean obrach sin air an taisbeanadh ann an cruth ailtireachd microservice, tha iad aotrom, sgèile gu math còmhnard, lean prionnsapalan tagraidhean 12-factar, agus faodaidh iad obrachadh le luchd-brisidh cuairteachaidh agus muncaidhean caos.

Tha Kafka, air an làimh eile, gu bunaiteach ag obair mar stòr-dàta sgaoilte. Mar sin, nuair a bhios tu ag obair, feumaidh tu dèiligeadh ri staid, agus tha e tòrr nas truime na microservice. Tha Kubernetes a’ toirt taic do luchdan stàiteil, ach mar a tha Kelsey Hightower a’ comharrachadh ann an dà thweets, bu chòir an làimhseachadh le cùram:

Tha cuid de dhaoine a’ faireachdainn ma chuireas tu Kubernetes a-steach gu eallach obrach stàiteil, gum bi e na stòr-dàta làn-riaghlaidh a bhios a’ farpais ri RDS. Tha seo ceàrr. Is dòcha, ma dh ’obraicheas tu cruaidh gu leòr, cuir co-phàirtean a bharrachd ris agus tàladh sgioba de innleadairean SRE, bidh e comasach dhut RDS a thogail air mullach Kubernetes.

Bidh mi an-còmhnaidh a’ moladh gum bi a h-uile duine air leth faiceallach nuair a bhios iad a’ ruith eallach obrach stàiteil air Kubernetes. Chan eil eòlas gu leòr aig a’ mhòr-chuid de dhaoine a bhios a’ faighneachd “an urrainn dhomh eallach obrach stàiteil a ruith air Kubernetes” le Kubernetes, agus gu tric leis an eallach obrach a tha iad a’ faighneachd.

Mar sin, am bu chòir dhut Kafka a ruith air Kubernetes? Ceist an aghaidh: an obraich Kafka nas fheàrr às aonais Kubernetes? Sin as coireach gu bheil mi airson sealltainn san artaigil seo mar a tha Kafka agus Kubernetes a 'cur ri chèile, agus dè na duilgheadasan a dh' fhaodadh a thighinn le bhith gan cur còmhla.

Ùine crìochnachaidh

Bruidhnidh sinn mun rud bunaiteach - an àrainneachd runtime fhèin

phròiseas

Tha brocairean Kafka càirdeil do CPU. Faodaidh TLS beagan os-cionn a thoirt a-steach. Ach, faodaidh luchd-dèiligidh Kafka a bhith nas dian CPU ma chleachdas iad crioptachadh, ach chan eil seo a’ toirt buaidh air brocairean.

Cuimhne

Bidh brocairean Kafka ag ithe suas cuimhne. Mar as trice tha meud cruachan JVM cuingealaichte ri 4-5 GB, ach bidh feum agad air tòrr cuimhne siostam cuideachd leis gu bheil Kafka a’ cleachdadh tasgadan na duilleige gu mòr. Ann an Kubernetes, suidhich goireasan soithichean agus iarr crìochan a rèir sin.

Stòr dàta

Tha stòradh dàta ann an soithichean sealach - thèid dàta a chall nuair a thèid ath-thòiseachadh. Airson dàta Kafka faodaidh tu tomhas-lìonaidh a chleachdadh emptyDir, agus bidh a’ bhuaidh coltach: thèid an dàta broker agad a chall às deidh a chrìochnachadh. Faodar na teachdaireachdan agad a stòradh fhathast air brocairean eile mar mhac-samhail. Mar sin, às deidh ath-thòiseachadh, feumaidh am broker a dh’ fhàillig an dàta gu lèir ath-riochdachadh an-toiseach, agus faodaidh am pròiseas seo tòrr ùine a ghabhail.

Sin as coireach gum bu chòir dhut stòradh dàta fad-ùine a chleachdadh. Biodh e na stòradh fad-ùine neo-ionadail leis an t-siostam faidhle XFS no, nas mionaidiche, ext4. Na cleachd NFS. Thug mi rabhadh dhut. Chan obraich tionndaidhean NFS v3 no v4. Ann an ùine ghoirid, tuitidh am broker Kafka mura h-urrainn dha an eòlaire dàta a sguabadh às ri linn na trioblaid “ath-ainmean gòrach” ann an NFS. Mura h-eil mi air do dhearbhadh fhathast, gu math faiceallach leugh an artaigil seo. Bu chòir don stòr dàta a bhith neo-ionadail gus an urrainn dha Kubernetes nód ùr a thaghadh nas sùbailte às deidh ath-thòiseachadh no gluasad.

Lìonra

Coltach ris a’ mhòr-chuid de shiostaman sgaoilte, tha coileanadh Kafka gu mòr an urra ri bhith a’ cumail latency lìonra chun ìre as ìsle agus leud-bann chun ìre as àirde. Na feuch ri aoigheachd a thoirt do na brocairean uile air an aon nód, oir lùghdaichidh seo na tha ri fhaighinn. Ma dh’ fhailicheas nód Kubernetes, fàilligidh an cruinneachadh Kafka gu lèir. Cuideachd, na sgaoil an cruinneachadh Kafka thairis air ionadan dàta gu lèir. Tha an aon rud a’ dol airson buidheann Kubernetes. Is e co-rèiteachadh math sa chùis seo a bhith a’ taghadh diofar shònaichean rim faighinn.

Rèiteachadh

Manifestothan cunbhalach

Tha làrach-lìn Kubernetes stiùireadh fìor mhath mu mar a chuireas tu ZooKeeper air dòigh a’ cleachdadh manifestos. Leis gu bheil ZooKeeper na phàirt de Kafka, is e deagh àite a tha seo airson tòiseachadh air eòlas fhaighinn air na bun-bheachdan Kubernetes a tha a’ buntainn an seo. Cho luath ‘s a thuigeas tu seo, faodaidh tu na h-aon bhun-bheachdan a chleachdadh le cruinneachadh Kafka.

  • Le: Is e pod an aonad as lugha a ghabhas cleachdadh ann an Kubernetes. Ann am pod tha an t-uallach obrach agad, agus tha am pod fhèin a’ freagairt ri pròiseas sa bhuidheann agad. Ann am pod tha aon no barrachd shoithichean. Bidh gach frithealaiche ZooKeeper anns an ensemble agus gach broker ann am buidheann Kafka a’ ruith ann am pod air leth.
  • Set Stàiteil: Is e stuth Kubernetes a th’ ann an StatefulSet a bhios a’ làimhseachadh grunn eallach obrach stàiteil, agus tha feum air co-òrdanachadh le leithid de dh’ eallach obrach. Bidh StatefulSets a’ toirt seachad barrantasan a thaobh òrdachadh pods agus cho sònraichte ‘s a tha iad.
  • Seirbheisean gun cheann: Leigidh seirbheisean leat pods a sgaradh bho luchd-dèiligidh a’ cleachdadh ainm loidsigeach. Tha Kubernetes sa chùis seo an urra ri cothromachadh luchdan. Ach, nuair a bhios iad ag obrachadh eallach obrach stàiteil, leithid ZooKeeper agus Kafka, feumaidh teachdaichean conaltradh le eisimpleir sònraichte. Seo far am bi seirbheisean gun cheann feumail: anns a’ chùis seo, bidh ainm loidsigeach fhathast aig an neach-dèiligidh, ach cha leig thu leas fios a chuir chun pod gu dìreach.
  • Meud stòraidh fad-ùine: Tha feum air na leabhraichean seo gus an stòradh seasmhach bloc neo-ionadail a chaidh ainmeachadh gu h-àrd a rèiteachadh.

air a ' Iolain A’ toirt seachad seata farsaing de thaisbeanaidhean a chuidicheas tu gus tòiseachadh le Kafka air Kubernetes.

Clàir-thaice

Tha Helm na mhanaidsear pacaid airson Kubernetes a ghabhas coimeas ri manaidsearan pacaid OS leithid yum, apt, Homebrew no Chocolatey. Tha e ga dhèanamh furasta pasganan bathar-bog ro-mhìnichte a stàladh a tha air am mìneachadh ann an clàran Helm. Tha clàr Helm air a dheagh thaghadh ga dhèanamh furasta an obair dhoirbh a thaobh mar a nì thu rèiteachadh ceart air na paramadairean gu lèir gus Kafka a chleachdadh air Kubernetes. Tha grunn diagraman Kafka ann: tha am fear oifigeil suidhichte ann an staid ghoir, tha aon bho Comhluadar, aon eile - bho Bitnami.

Luchd-obrachaidh

Leis gu bheil easbhaidhean sònraichte aig Helm, tha inneal eile a’ fàs mòr-chòrdte: luchd-obrachaidh Kubernetes. Bidh an gnìomhaiche chan ann a-mhàin a’ pacadh bathar-bog airson Kubernetes, ach leigidh e leat cuideachd am bathar-bog sin a chleachdadh agus a riaghladh.

Anns an liosta luchd-obrachaidh iongantach Thathas a’ toirt iomradh air dà ghnìomhaiche airson Kafka. Fear dhiubh - Strimzi. Le Strimzi, tha e furasta do bhuidheann Kafka a chuir an gnìomh ann am mionaidean. Cha mhòr nach eil feum air rèiteachadh, a bharrachd air an sin, tha an gnìomhaiche fhèin a’ toirt seachad cuid de fheartan snog, mar eisimpleir, crioptachadh TLS puing-gu-puing taobh a-staigh a’ bhuidheann. Bidh Confluent cuideachd a’ toirt seachad ghnìomhaiche fhèin.

Coileanadh

Tha e cudromach dèanadas a dhearbhadh le bhith a’ comharrachadh do eisimpleir Kafka. Cuidichidh deuchainnean mar seo thu gus botail a lorg mus tachair duilgheadasan. Gu fortanach, tha Kafka mu thràth a’ toirt seachad dà inneal deuchainn coileanaidh: kafka-producer-perf-test.sh и kafka-consumer-perf-test.sh. Cleachd iad gu gnìomhach. Airson iomradh, faodaidh tu iomradh a thoirt air na toraidhean a tha air am mìneachadh ann an am post seo Jay Kreps, no cuir fòcas air an lèirmheas seo Amazon MSK le Stéphane Maarek.

Obrachaidhean

Sgrùdadh

Tha follaiseachd san t-siostam glè chudromach - air dhòigh eile cha bhith thu a 'tuigsinn dè a tha a' tachairt ann. An-diugh tha inneal cruaidh ann a bheir seachad sgrùdadh stèidhichte air meatrach ann an stoidhle dùthchasach sgòthan. Is e dà inneal mòr-chòrdte airson an adhbhair seo Prometheus agus Grafana. Faodaidh Prometheus metrics a chruinneachadh bho gach pròiseas Java (Kafka, Zookeeper, Kafka Connect) a ’cleachdadh às-mhalairt JMX - anns an dòigh as sìmplidh. Ma chuireas tu metrics cAdvisor ris, gheibh thu barrachd tuigse air mar a tha goireasan air an cleachdadh ann an Kubernetes.

Tha eisimpleir gu math goireasach aig Strimzi de bhòrd-stiùiridh Grafana airson Kafka. Bidh e a’ toirt sealladh air prìomh mheatrics, mar eisimpleir, mu roinnean nach eil air an riochdachadh gu leòr no an fheadhainn a tha far-loidhne. Tha a h-uile dad gu math soilleir an sin. A bharrachd air na meatrach sin tha cleachdadh ghoireasan agus fiosrachadh coileanaidh, a bharrachd air comharran seasmhachd. Mar sin gheibh thu sgrùdadh brabhsair bunaiteach Kafka gun dad!

A bheil Kafka air Kubernetes math?

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

Bhiodh e math seo a chuir ris le sgrùdadh teachdaiche (meatairean air luchd-cleachdaidh agus riochdairean), a bharrachd air sgrùdadh latency (airson seo tha Burrow) agus sgrùdadh deireadh-gu-deireadh - airson an cleachdadh seo Neach-sgrùdaidh Kafka.

Logadh

Tha logadh na obair chudromach eile. Dèan cinnteach gu bheil logadh a-steach air a h-uile soitheach san stàladh Kafka agad stdout и stderr, agus cuideachd dèan cinnteach gu bheil an cruinneachadh Kubernetes agad a’ cruinneachadh a h-uile log a-steach do bhun-structar logaidh meadhanach, me. Elasticsearch.

Sgrùdadh Slàinte

Bidh Kubernetes a’ cleachdadh probes beòthalachd agus ullachaidh gus faighinn a-mach a bheil na pods agad a’ ruith gu h-àbhaisteach. Ma dh’ fhailicheas an sgrùdadh beòthalachd, stadaidh Kubernetes an soitheach sin agus an uairsin ath-thòiseachadh gu fèin-ghluasadach ma tha am poileasaidh ath-thòiseachadh air a shuidheachadh a rèir sin. Ma dh’ fhailicheas an sgrùdadh ullachaidh, bidh Kubernetes a’ dealachadh a’ pod bho iarrtasan seirbheis. Mar sin, ann an leithid de chùisean, chan eil feum air eadar-theachd làimhe tuilleadh, rud a tha na bhuannachd mhòr.

A’ sgaoileadh ùrachaidhean

Bidh StatefulSets a’ toirt taic do dh’ ùrachaidhean fèin-ghluasadach: ma thaghas tu an ro-innleachd RollingUpdate, thèid gach fear fo Kafka ùrachadh mu seach. San dòigh seo, faodar ùine downt a lughdachadh gu neoni.

Sgèileadh

Chan e obair fhurasta a th’ ann a bhith a’ sgèileadh cruinneachadh Kafka. Ach, tha Kubernetes ga dhèanamh gu math furasta pods a sgèileadh gu àireamh sònraichte de mhac-samhail, a tha a’ ciallachadh gun urrainn dhut gu dearbhach na h-uimhir de brocairean Kafka a mhìneachadh mar as toil leat. Is e an rud as duilghe sa chùis seo a bhith ag ath-shònrachadh roinnean às deidh an sgèileadh suas no mus tèid iad sìos. A-rithist, cuidichidh Kubernetes thu leis a’ ghnìomh seo.

Rianachd

Faodar gnìomhan co-cheangailte ri bhith a’ rianachd do bhuidheann Kafka, leithid cruthachadh chuspairean agus ath-shònrachadh roinnean, a dhèanamh a’ cleachdadh sgriobtaichean shligean a th’ ann mar-thà le bhith a’ fosgladh an eadar-aghaidh loidhne-àithne anns na pods agad. Ach, chan eil am fuasgladh seo glè bhrèagha. Bidh Strimzi a’ toirt taic do bhith a’ riaghladh chuspairean a’ cleachdadh gnìomhaiche eile. Tha beagan rùm ann airson leasachadh an seo.

Cùl-taic agus ath-nuadhachadh

A-nis bidh na tha ri fhaighinn de Kafka cuideachd an urra ri na tha ri fhaighinn de Kubernetes. Ma dh’ fhailicheas do bhuidheann Kubernetes, an uairsin anns an t-suidheachadh as miosa, fàilligidh do bhuidheann Kafka cuideachd. A rèir lagh Murphy, bidh seo gu cinnteach a 'tachairt, agus caillidh tu dàta. Gus an seòrsa cunnart seo a lughdachadh, bi deagh bhun-bheachd cùl-taic agad. Faodaidh tu MirrorMaker a chleachdadh, is e roghainn eile S3 a chleachdadh airson seo, mar a tha air a mhìneachadh ann an seo dreuchd bho Zalando.

co-dhùnadh

Nuair a bhios tu ag obair le cruinneachaidhean Kafka beaga gu meadhanach, is fhiach gu cinnteach Kubernetes a chleachdadh oir tha e a’ toirt seachad sùbailteachd a bharrachd agus a ’sìmpleachadh eòlas gnìomhaiche. Ma tha riatanasan latency neo-ghnìomhach agus/no trochur fìor chudromach agad, is dòcha gum biodh e na b’ fheàrr beachdachadh air roghainn cleachdadh eile.

Source: www.habr.com

Cuir beachd ann