E lelei Kafka i Kubernetes?

Talofa, Habr!

I se tasi taimi, o matou na muamua faʻalauiloa le autu i le maketi a Rusia Kafka ma faaauau ala mo lona atinae. Aemaise lava, na matou mauaina le autu o fegalegaleaiga i le va o Kafka ma Kubernetes. Mata'ituina (ma matua fa'aeteete) se tusiga o lenei autu na lomia i luga o le Confluent blog i tua ia Oketopa i le tausaga talu ai i lalo o le tusitala a Gwen Shapira. O le asō matou te fia tosina atu ai lou mafaufau i se tala fou mai ia Aperila na saunia e Johann Gyger, o ia, e ui lava e leai se faailoga fesili i le ulutala, e suʻesuʻeina le autu i se tulaga sili atu ona taua, faʻatasi ma le tusitusiga ma fesoʻotaʻiga fiafia. Fa'amolemole fa'amagalo mai le fa'aliliuga saoloto o le "chaos monkey" pe a e mafaia!

E lelei Kafka i Kubernetes?

Faatomuaga

Kubernetes ua mamanuina e taulimaina galuega e leai ni setete. E masani lava, o ia galuega o loʻo tuʻuina atu i le tulaga o le microservice architecture, e mama, fua lelei i luga ole laiga, mulimuli i mataupu faavae o le 12-factor applications, ma e mafai ona galulue faʻatasi ma motumotu ma manuki vevesi.

Kafka, i le isi itu, o loʻo galue o se faʻamaumauga tuʻufaʻatasia. O le mea lea, pe a galue, e tatau ona e feagai ma le setete, ma e sili atu le mamafa nai lo se microservice. E lagolagoina e Kubernetes le tele o avega, ae pei ona taʻua e Kelsey Hightower i tweets e lua, e tatau ona taulimaina ma le faʻaeteete:

O nisi tagata e manatu afai e te faʻasolo Kubernetes i se faʻatonuga o galuega, o le a avea ma faʻamaumauga faʻatautaia atoatoa e faʻatusalia RDS. E sese lenei mea. Masalo, afai e te galue malosi, faʻaopoopo vaega faaopoopo ma tosina mai se 'au a SRE inisinia, o le a mafai ona e fausia RDS i luga o Kubernetes.

Ou te fautuaina i taimi uma ia faʻaeteete tagata uma pe a faʻatautaia galuega faʻatulafonoina ile Kubernetes. O le tele o tagata e fesili "pe mafai ona ou faʻatinoina galuega faʻatulafonoina i Kubernetes" e le lava le poto masani i Kubernetes, ma e masani lava i le mamafa o galuega latou te fesili ai.

O lea la, e tatau ona e taʻavale Kafka i Kubernetes? Fesili fa'afeagai: mata o le a sili atu le galuega a Kafka e aunoa ma Kubernetes? O le mea lea ou te manaʻo e faʻamamafa i lenei tusiga pe faʻafefea ona faʻafeiloaʻi e Kafka ma Kubernetes le tasi ma le isi, ma o a faʻalavelave e mafai ona oʻo mai i le tuʻufaʻatasia.

Taimi e mae'a ai

Sei o tatou talanoa e uiga i le mea autu - o le siosiomaga taimi taʻavale lava ia

Le faagasologa

Kafka brokers e faauo CPU. E mafai e le TLS ona fa'ailoa mai nisi o luga. Ae ui i lea, e mafai e tagata Kafka ona sili atu le malosi o le CPU pe a latou faʻaogaina faʻamatalaga, ae e le afaina ai le au fai pisinisi.

manatua

Kafka brokers 'ai le manatua. Ole tele ole fa'aputuga o le JVM e masani lava ona fa'atapula'aina ile 4-5 GB, ae e te mana'omia fo'i le tele o le fa'amanatuina o le polokalama talu ai e fa'aoga malosi e Kafka le fa'aoga itulau. I totonu o Kubernetes, seti alagaoa pusa ma talosaga tapulaa e tusa ai.

Teuga fa'amaumauga

O le teuina o fa'amaumauga i totonu o pusa e le tumau - e leiloa fa'amaumauga pe a toe amata. Mo faʻamatalaga Kafka e mafai ona e faʻaogaina se voluma emptyDir, ma o le a tutusa le aʻafiaga: o au faʻamatalaga fai pisinisi o le a leiloa pe a maeʻa. O au fe'au e mafai lava ona teuina i luga o isi tagata fai pisinisi e fai ma fa'atusa. O le mea lea, a maeʻa le toe amataina, e tatau i le tagata fai pisinisi ua le manuia ona toe faʻaaogaina uma faʻamaumauga, ma o lenei faagasologa e mafai ona tele se taimi.

O le mea lea e tatau ai ona e faʻaogaina faʻamaumauga umi umi. Fa'ataga e le fa'alotoifale mo se taimi umi e teu ai ma le faila faila XFS po'o, sili atu, ext4. Aua le fa'aogaina le NFS. Na ou lapataia oe. NFS versions v3 po'o v4 o le a le aoga. I se faapuupuuga, o le Kafka broker o le a paʻu pe a le mafai ona tapeina le lisi o faʻamaumauga ona o le faʻafitauli "valea toe igoa" i le NFS. Afai ou te lei faatalitonuina oe, ia matua faaeteete lava faitau lenei tusiga. O le faleteuoloa fa'amaumauga e tatau ona le fa'apitonu'u ina ia mafai e Kubernetes ona sili atu ona fetu'una'i le filifilia o se node fou pe a mae'a le toe fa'afouina po'o le toe si'i.

Fesootaiga

E pei o le tele o faiga fa'asoa, o le fa'atinoga a Kafka e fa'alagolago tele i le taofiofia o feso'ota'iga i le la'ititi ma le bandwidth i le maualuga. Aua le taumafai e faʻafeiloaʻi tagata faʻatau uma i luga o le node e tasi, aua o le a faʻaitiitia ai le avanoa. Afai e faaletonu le node Kubernetes, o le a le manuia le fuifui Kafka atoa. E le gata i lea, aua le fa'asalalauina le vaega o Kafka i totonu o nofoaga autu o fa'amaumauga. E tutusa lava mo le vaega Kubernetes. O se fetuunaiga lelei i lenei tulaga o le filifilia o sone avanoa eseese.

Fetuunaiga

Fa'aaliga masani

O loʻo iai le upega tafaʻilagi a Kubernetes taiala lelei tele e uiga i le faʻaogaina o le ZooKeeper e faʻaaoga ai faʻaaliga. Talu ai ona o le ZooKeeper o se vaega o Kafka, o se nofoaga lelei lea e amata ai ona masani i mea o loʻo faʻaogaina e Kubernetes iinei. O le taimi lava e te malamalama ai i lenei mea, e mafai ona e faʻaogaina manatu tutusa ma se fuifui Kafka.

  • Lalo: O le pod o le iunite laʻititi e mafai ona faʻaaogaina i Kubernetes. O le pod o lo'o i ai lau galuega mamafa, ma o le pod lava ia e fetaui ma se fa'agasologa o lau fuifui. O se pusa e iai se tasi pe sili atu pusa. O server ZooKeeper ta'itasi i totonu o le fa'apotopotoga ma tagata fai pisinisi ta'itasi i le fuifui o Kafka o le a tamomoe i se isi pod.
  • StatefulSet: O le StatefulSet o se mea Kubernetes e faʻatautaia le tele o galuega faʻatulagaina, ma o ia galuega e manaʻomia le faʻamaopoopoina. StatefulSets e tuʻuina atu faʻamaoniga e uiga i le okaina o pods ma lo latou tulaga ese.
  • Auaunaga e leai ni ulu: Au'aunaga e fa'atagaina oe e fa'ate'a ese pods mai tagata fa'atau e fa'aaoga ai se igoa talafeagai. Kubernetes i lenei tulaga e nafa ma le paleni o uta. Ae peita'i, pe a fa'agaoioia galuega fa'atino, pei ole ZooKeeper ma Kafka, e mana'omia e tagata fa'atau ona feso'ota'i ma se fa'ata'ita'iga fa'apitoa. O le mea lea e maua ai auaunaga e leai ni ulu: i lenei tulaga, o le a iai pea le igoa o le kalani, ae e te le tau faʻafesoʻotaʻi saʻo le pod.
  • Tele taimi e teu ai: O nei voluma e manaʻomia e faʻapipiʻi ai le teu faʻapipiʻi poloka poloka e pei ona taʻua i luga.

i Yolean Tuuina atu se seti atoatoa o faʻaaliga e fesoasoani ia te oe e amata ile Kafka ile Kubernetes.

Siata foeuli

O le Helm o se pule o pusa mo Kubernetes e mafai ona faʻatusatusa i pule o pusa OS e pei ole yum, apt, Homebrew poʻo Chocolatey. E fa'afaigofie ai ona fa'apipi'i pusa fa'akomepiuta ua uma ona fa'amatalaina i siata Helm. O se siata Helm filifilia lelei e faia ai le galuega faigata i le auala e faʻapipiʻi lelei ai faʻamaufaʻailoga uma e faʻaoga ai Kafka i Kubernetes faigofie. E tele fa'atusa Kafka: o lo'o i ai le mea aloa'ia i le tulaga incubator, e iai le tasi mai Faʻasalaga, toe tasi - mai Bitnami.

Faʻatonu

Ona o Helm e iai ni faaletonu, o le isi meafaigaluega o loʻo maua le lauiloa tele: Kubernetes operators. E le gata ina fa'apipi'i e le fa'alapotopotoga polokalame mo Kubernetes, ae fa'ataga fo'i oe e fa'atūina ia polokalame ma pulea.

I le lisi fa'atautaia ofoofogia E lua tagata faʻatautaia mo Kafka o loʻo taʻua. O se tasi oi latou- Strimzi. Faatasi ai ma Strimzi, e faigofie ona faʻapipiʻi lau Kafka fuifui ma faʻagaoioi i minute. Toeitiiti lava leai se faʻatulagaga e manaʻomia, faʻaopoopo, o le tagata faʻapipiʻi lava ia e tuʻuina atu ni foliga matagofie, mo se faʻataʻitaʻiga, faʻailoga TLS point-to-point i totonu o le fuifui. E maua foi e Confluent lava tagata fa'afoe.

Gaioiga

E taua le fa'ata'ita'iina o fa'atinoga e ala i le fa'avasegaina o lau fa'ata'ita'iga Kafka. O ia su'ega o le a fesoasoani ia te oe e su'e ni fa'alavelave fa'aletonu a'o le'i tutupu fa'afitauli. O le mea e laki ai, ua uma ona tuʻuina atu e Kafka meafaigaluega faʻataʻitaʻiga e lua: kafka-producer-perf-test.sh и kafka-consumer-perf-test.sh. Fa'aaoga malosi. Mo faʻamatalaga, e mafai ona e vaʻai i faʻaiʻuga o loʻo faʻamatalaina i totonu lenei pou Jay Kreps, pe taulaʻi i lenei iloiloga Amazon MSK saunia e Stéphane Maarek.

Faʻatonu

Mataitu

O le manino i totonu o le faiga e taua tele - a leai o le ae le malamalama i le mea o loʻo tupu i totonu. I aso nei o loʻo i ai se mea faigaluega malosi e tuʻuina atu ai le mataʻituina o fua faʻatatau ile sitaili masani ole ao. E lua meafaigaluega lauiloa mo lenei faʻamoemoe o Prometheus ma Grafana. E mafai e le Prometheus ona aoina metrics mai faiga Java uma (Kafka, Zookeeper, Kafka Connect) e faʻaaoga ai le JMX faʻatau atu - i le auala sili ona faigofie. Afai e te faʻaopoopoina le cAdvisor metrics, e mafai ona e malamalama atoatoa i le faʻaogaina o punaoa i Kubernetes.

Strimzi o loʻo i ai se faʻataʻitaʻiga sili ona faigofie o le Grafana dashboard mo Kafka. O lo'o va'aia fua fa'atatau, mo se fa'ata'ita'iga, e uiga i vaega e le o toe fa'atusaina po'o i latou e leai se initaneti. E matua manino lava mea uma iina. O nei fua fa'atatau e fa'apipi'iina e le fa'aogaina o puna'oa ma fa'amatalaga fa'atinoga, fa'apea fo'i fa'ailoga mautu. O lea e te maua ai le mata'ituina o fuifui Kafka mo se mea!

E lelei Kafka i Kubernetes?

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

E manaia le faʻaopoopoina o nei mea uma i le mataʻituina o tagata faʻatau (fuainumera i luga o tagata faʻatau ma tagata gaosi oloa), faʻapea foʻi ma le mataʻituina o le latency (mo lenei mea e iai Burrow) ma le mataituina pito i luga - mo lenei faʻaoga Mataitu a Kafka.

Fa'amauina

O le taina o se isi galuega taua. Ia mautinoa o koneteina uma o loʻo i totonu o lau faʻapipiʻi Kafka o loʻo saini i ai stdout и stderr, ma fa'amautinoaina fo'i e fa'aputuina e lau fa'aputuga Kubernetes ia ogalaau uma i totonu o se atina'e fa'atotonugalemu, eg. Elasticsearch.

Siaki siaki

E fa'aaoga e Kubernetes ni su'esu'ega fa'aolaola ma sauni e siaki pe o fa'agasolo masani au po'o. Afai e le manuia le siakiina o le ola, e taofi e Kubernetes lena atigipusa ona toe otometi lea pe a faʻatulagaina le tulafono toe amata. Afai e le manuia le siakiina o le saunia, e fa'aesea e Kubernetes le pod mai le tautuaina o talosaga. O le mea lea, i ia tulaga, e le toe manaʻomia le faʻaogaina o le lima, o se faʻaopoopoga tele.

Fa'asalalau fa'afouga

E lagolagoina e StatefulSets fa'afouga otometi: afai e te filifilia le ta'iala RollingUpdate, o le a fa'afouina ta'itasi i lalo ole Kafka. I lenei auala, e mafai ona faʻaititia le taimi faʻaletonu i le zero.

Fuaina

Ole fuaina ole fuifui Kafka e le ose galuega faigofie. Ae ui i lea, o Kubernetes e faigofie tele ona faʻasolo le pods i se numera o faʻataʻitaʻiga, o lona uiga e mafai ona e faʻamalamalamaina le tele o Kafka brokers e te manaʻo ai. O le mea pito sili ona faigata i lenei tulaga o le toe faʻatulagaina o vaega pe a uma ona faʻateleina pe aʻo leʻi faʻaititia i lalo. Toe, Kubernetes o le a fesoasoani ia te oe i lenei galuega.

Pulega

O galuega e feso'ota'i ma le fa'afoeina o lau fuifui Kafka, e pei o le fatuina o autu ma le toe fa'avasegaina o vaega, e mafai ona fa'aogaina i le fa'aogaina o fa'amaumauga atigi o lo'o iai e ala i le tatalaina o le laina fa'atonuga i totonu o au pods. Ae ui i lea, o lenei fofo e le matagofie tele. E lagolagoina e Strimzi le puleaina o autu e faʻaaoga ai se isi faʻalapotopotoga. O loʻo i ai se avanoa e faʻaleleia atili ai iinei.

Fa'asaoina ma toe fa'afo'isia

Ole taimi nei ole avanoa ole Kafka ole a faʻalagolago foi ile maua ole Kubernetes. Afai e le manuia lau fuifui Kubernetes, i le tulaga sili ona leaga, o le a toilalo foi lau fuifui Kafka. E tusa ai ma le tulafono a Murphy, e mautinoa lava e tupu lenei mea, ma o le ae leiloa faʻamatalaga. Ina ia faʻaitiitia lenei ituaiga o tulaga lamatia, ia i ai se manatu faaleoleo lelei. E mafai ona e faʻaogaina MirrorMaker, o le isi filifiliga o le faʻaoga S3 mo lenei, e pei ona faʻamatalaina i lenei pou mai Zalando.

iʻuga

Pe a galue i fuifui Kafka laʻititi ma feololo, e matua aoga lava le faʻaaogaina o Kubernetes aua e maua ai le fetuutuunai faaopoopo ma faʻafaigofie le poto masani o le tagata faʻaoga. Afai e iai sau fa'aletonu e le o fa'aogaina ma/po'o mea e mana'omia, atonu e sili atu le mafaufau i se isi filifiliga fa'apipi'i.

puna: www.habr.com

Faaopoopo i ai se faamatalaga