Beannachtaí, Habr!
Ag am amháin, bhí muid ar an gcéad duine a chuir an t-ábhar isteach ar mhargadh na Rúise
Réamhrá
Tá Kubernetes deartha chun ualaí oibre gan stát a láimhseáil. De ghnáth, cuirtear ualaí oibre den sórt sin i láthair i bhfoirm ailtireacht microservice, tá siad éadrom, scála go maith go cothrománach, leanann siad prionsabail na n-iarratas 12-fhachtóir, agus is féidir leo oibriú le scoradáin chiorcaid agus mhoncaí chaos.
Ar an láimh eile, feidhmíonn Kafka go bunúsach mar bhunachar sonraí dáilte. Dá bhrí sin, nuair a bhíonn tú ag obair, caithfidh tú déileáil leis an stát, agus tá sé i bhfad níos troime ná microservice. Tacaíonn Kubernetes le hualaí stáit, ach mar a luann Kelsey Hightower in dhá thweet, ba chóir iad a láimhseáil go cúramach:
Mothaíonn roinnt daoine, má chuireann tú Kubernetes isteach i ualach oibre státmhar, go mbeidh sé ina bhunachar sonraí bainistithe go hiomlán a théann in iomaíocht le RDS. Tá sé seo mícheart. B'fhéidir, má oibríonn tú go crua go leor, cuir comhpháirteanna breise leis agus foireann innealtóirí SRE a mhealladh, beidh tú in ann RDS a thógáil ar bharr Kubernetes.
Molaim i gcónaí do gach duine a bheith fíor-aireach agus iad ag rith ualaí oibre maorga ar Kubernetes. Ní bhíonn go leor taithí ag formhór na ndaoine a fhiafraíonn “an féidir liom ualaí oibre maorga a rith ar Kubernetes” le Kubernetes, agus go minic leis an ualach oibre a bhfuil siad ag cur ceiste faoi.
Mar sin, ar cheart duit Kafka a rith ar Kubernetes? Ceist chuntair: an n-oibreoidh Kafka níos fearr gan Kubernetes? Sin an fáth gur mhaith liom a aibhsiú san Airteagal seo conas a chomhlánaíonn Kafka agus Kubernetes a chéile, agus cad iad na gaistí a d'fhéadfadh teacht le chéile.
Am críochnaithe
Labhraímis faoin rud bunúsach - timpeallacht an ama rite féin
Процесс
Tá bróicéirí Kafka cairdiúil don LAP. Féadfaidh TLS roinnt forchostais a thabhairt isteach. Mar sin féin, d'fhéadfadh go mbeadh cliaint Kafka níos déine ar LAP má úsáideann siad criptiú, ach ní chuireann sé seo isteach ar bhróicéirí.
Память
Itheann bróicéirí Kafka suas cuimhne. Is gnách go mbíonn méid an charn JVM teoranta do 4-5 GB, ach beidh go leor cuimhne córais ag teastáil uait freisin ós rud é go n-úsáideann Kafka an taisce leathanach go mór. I Kubernetes, socraigh acmhainní coimeádáin agus iarr teorainneacha dá réir sin.
Stóras sonraí
Tá stóráil sonraí i gcoimeádáin tharthréimhseach - cailltear sonraí nuair a atosaítear iad. Le haghaidh sonraí Kafka is féidir leat imleabhar a úsáid emptyDir
, agus beidh an éifeacht cosúil: caillfear do shonraí bróicéir tar éis a chríochnú. Is féidir do theachtaireachtaí a stóráil fós ar bhróicéirí eile mar mhacasamhla. Dá bhrí sin, tar éis atosú, ní mór don bhróicéir teipthe na sonraí go léir a mhacasamhlú ar dtús, agus féadfaidh an próiseas seo go leor ama a ghlacadh.
Sin é an fáth gur chóir duit stóráil sonraí fadtéarmach a úsáid. Bíodh sé ina stóráil fadtéarmach neamháitiúil le córas comhaid XFS nó, níos cruinne, ext4. Ná húsáid NFS. Thug mé rabhadh duit. Ní oibreoidh leaganacha NFS v3 nó v4. I mbeagán focal, beidh an bróicéir Kafka tuairteála mura féidir leis an eolaire sonraí a scriosadh mar gheall ar an bhfadhb "athainmnithe dúr" i NFS. Más rud é nach bhfuil mé ina luí ort go fóill, go han-chúramach
Líonra
Mar is amhlaidh i gcás an chuid is mó de na córais dáilte, tá feidhmíocht Kafka ag brath go mór ar fhola líonra a choinneáil chomh híseal agus is féidir agus bandaleithead chomh fada agus is féidir. Ná déan iarracht gach bróicéir a óstáil ar an nód céanna, toisc go laghdóidh sé seo infhaighteacht. Má theipeann ar nód Kubernetes, teipfidh an bhraisle Kafka ar fad. Chomh maith leis sin, ná scaip braisle Kafka thar lárionaid sonraí iomlána. Baineann an rud céanna le braisle Kubernetes. Comhréiteach maith sa chás seo is ea criosanna infhaighteachta éagsúla a roghnú.
Cumraíocht
manifestos rialta
Tá an láithreán gréasáin Kubernetes
- Faoi: Is é pod an t-aonad imscartha is lú i Kubernetes. Bíonn d’ualach oibre ar phod, agus comhfhreagraíonn an pod féin do phróiseas i do bhraisle. Tá coimeádán amháin nó níos mó i pod. Reáchtálfar gach freastalaí ZooKeeper sa ensemble agus gach bróicéir sa bhraisle Kafka i pod ar leith.
- StatefulSet: Is éard is StatefulSet ann ná réad Kubernetes a láimhseálann ualaí oibre iomadúla státacha, agus éilíonn ualaí oibre den sórt sin comhordú. Soláthraíonn StatefulSets ráthaíochtaí maidir le hordú pods agus a n-uathúlacht.
- Seirbhísí gan cheann: Ligeann seirbhísí duit pods a dhícheangal ó chliaint ag baint úsáide as ainm loighciúil. Tá Kubernetes sa chás seo freagrach as cothromú ualach. Mar sin féin, agus ualaí oibre maorga á n-oibriú acu, mar ZooKeeper agus Kafka, ní mór do chliaint cumarsáid a dhéanamh le cás sonrach. Seo nuair a bhíonn seirbhísí gan cheann áisiúil: sa chás seo, beidh ainm loighciúil fós ag an gcliant, ach ní bheidh ort teagmháil dhíreach a dhéanamh leis an pod.
- Toirt stórála fadtéarmach: Tá na méideanna seo ag teastáil chun an stóráil leanúnach bloc neamh-áitiúil thuasluaite a chumrú.
Ar
Cairteacha Helm
Is bainisteoir pacáiste é Helm do Kubernetes is féidir a chur i gcomparáid le bainisteoirí pacáiste OS mar yum, apt, Homebrew nó Chocolatey. Déanann sé éasca pacáistí bogearraí réamhshainithe a shuiteáil a bhfuil cur síos orthu i gcairteacha Helm. Déanann cairt Helm dea-roghnaithe an tasc deacair maidir le conas na paraiméadair go léir a chumrú i gceart chun Kafka a úsáid ar Kubernetes éasca. Tá roinnt léaráidí Kafka ann: tá an ceann oifigiúil suite
Oibreoirí
Toisc go bhfuil easnaimh áirithe ag Helm, tá an-tóir ar uirlis eile: oibreoirí Kubernetes. Ní hamháin go bpacálann an t-oibreoir bogearraí do Kubernetes, ach ligeann sé duit bogearraí den sórt sin a imscaradh agus é a bhainistiú.
Sa liosta
Táirgiúlacht
Tá sé tábhachtach feidhmíocht a thástáil trí do shampla Kafka a thagarmharcáil. Cabhróidh tástálacha den sórt sin leat scrogaill ionchasacha a aimsiú sula dtagann fadhbanna chun cinn. Ar ámharaí an tsaoil, soláthraíonn Kafka dhá uirlis tástála feidhmíochta cheana féin: kafka-producer-perf-test.sh
и kafka-consumer-perf-test.sh
. Bain úsáid ghníomhach astu. Le haghaidh tagartha, is féidir leat tagairt a dhéanamh do na torthaí a thuairiscítear i
Oibríochtaí
Monatóireacht
Tá trédhearcacht sa chóras an-tábhachtach - ar shlí eile ní thuigfidh tú cad atá ag tarlú ann. Sa lá atá inniu ann tá foireann uirlisí soladach a sholáthraíonn monatóireacht bunaithe ar mhéadracht sa stíl dhúchasach scamall. Dhá uirlis mhóréilimh chun na críche seo ná Prometheus agus Grafana. Is féidir le Prometheus méadracht a bhailiú ó gach próiseas Java (Kafka, Zookeeper, Kafka Connect) ag baint úsáide as onnmhaireoir JMX - ar an mbealach is simplí. Má chuireann tú méadracht cAdvisor leis, is féidir leat níos iomláine a thuiscint conas a úsáidtear acmhainní in Kubernetes.
Tá sampla an-áisiúil ag Strimzi de chlár Grafana do Kafka. Amharcann sé príomhmhéadracht, mar shampla, faoi earnálacha nach bhfuil a macasamhlú go leor nó na cinn atá as líne. Tá gach rud an-soiléir ann. Comhlánaítear na méadrachtaí sin le húsáid acmhainní agus faisnéis feidhmíochta, chomh maith le táscairí cobhsaíochta. Mar sin gheobhaidh tú monatóireacht bhunúsach braisle Kafka gan aon rud!
Foinse:
Bheadh sé deas é seo go léir a fhorlíonadh le monatóireacht cliant (méadracht ar thomhaltóirí agus táirgeoirí), chomh maith le monatóireacht latency (do seo tá
Logáil
Tasc ríthábhachtach eile is ea an logáil. Cinntigh go bhfuil logáilte isteach ar gach coimeádán i do shuiteáil Kafka stdout
и stderr
, agus a chinntiú freisin go gcomhiomlánaíonn do bhraisle Kubernetes gach logáil isteach i mbonneagar logála lárnach, e.g.
Seiceáil feidhmiúil
Úsáideann Kubernetes tóireadóirí beogachta agus ullmhachta chun a sheiceáil an bhfuil do pods ag rith de ghnáth. Má theipeann ar an seiceáil beocht, stopfaidh Kubernetes an coimeádán sin agus ansin déanfaidh sé é a atosú go huathoibríoch má tá an polasaí atosú socraithe dá réir sin. Má theipeann ar an tseiceáil ullmhachta, leithlisíonn Kubernetes an pod ó iarratais seirbhíse. Mar sin, i gcásanna den sórt sin, ní gá idirghabháil láimhe a thuilleadh ar chor ar bith, rud is buntáiste mór.
Nuashonruithe á rolladh amach
Tacaíonn StatefulSets le nuashonruithe uathoibríocha: má roghnaíonn tú an straitéis RollingUpdate, déanfar gach ceann faoi Kafka a nuashonrú ar a seal. Ar an mbealach seo, is féidir downtime a laghdú go nialas.
Scálú
Ní tasc éasca é braisle Kafka a scálú. Mar sin féin, déanann Kubernetes sé an-éasca pods a scála go líon áirithe macasamhla, rud a chiallaíonn gur féidir leat an oiread bróicéirí Kafka agus is mian leat a shainiú go declaratively. Is é an rud is deacra sa chás seo ná earnálacha a athshannadh tar éis scálaithe suas nó roimh scálú síos. Arís, cabhróidh Kubernetes leat leis an tasc seo.
Riarachán
Is féidir tascanna a bhaineann le do bhraisle Kafka a riar, mar shampla topaicí a chruthú agus earnálacha a athshannadh, a dhéanamh ag baint úsáide as scripteanna bhlaosc atá ann cheana féin trí chomhéadan na n-orduithe a oscailt i do pods. Mar sin féin, níl an réiteach seo an-álainn. Tacaíonn Strimzi le hábhair a bhainistiú ag baint úsáide as oibreoir difriúil. Tá spás le feabhsú anseo.
Cúltaca agus athchóiriú
Anois beidh infhaighteacht Kafka ag brath freisin ar infhaighteacht Kubernetes. Má theipeann ar do bhraisle Kubernetes, ansin sa chás is measa, teipfidh ar do bhraisle Kafka freisin. De réir dlí Murphy, is cinnte go dtarlóidh sé seo, agus caillfidh tú sonraí. Chun an cineál riosca seo a laghdú, bíodh coincheap cúltaca maith agat. Is féidir leat MirrorMaker a úsáid, rogha eile ná S3 a úsáid le haghaidh seo, mar a thuairiscítear anseo
Conclúid
Agus tú ag obair le braislí Kafka beaga go meánmhéide, is cinnte gur fiú Kubernetes a úsáid mar go soláthraíonn sé solúbthacht breise agus go simplíonn sé taithí an oibreora. Má tá riachtanais fholaigh agus/nó tréchur neamhfheidhmiúil an-suntasach agat, b’fhéidir gurbh fhearr rogha imlonnaithe eile a mheas.
Foinse: will.com