Beannachd leat, Habr!
Aig aon àm, b 'e sinne a' chiad fhear a thug a-steach a 'chuspair gu margadh na Ruis
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
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
- 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 '
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
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
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
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!
Source:
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
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.
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
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