Ṣe Kafka lori Kubernetes dara?

Ẹ kí, Habr!

Ni akoko kan, a jẹ akọkọ lati ṣafihan koko-ọrọ si ọja Russia Kafka ati ki o tẹsiwaju orin fun idagbasoke rẹ. Ni pato, a ri koko ti ibaraenisepo laarin Kafka ati Kubernetes. Ṣe akiyesi (ati ṣọra pupọ) nkan koko yii ni a tẹjade lori bulọọgi Confluent pada ni Oṣu Kẹwa ọdun to kọja labẹ aṣẹ ti Gwen Shapira. Loni a yoo fẹ lati fa akiyesi rẹ si nkan aipẹ diẹ sii lati Oṣu Kẹrin nipasẹ Johann Gyger, ẹniti, botilẹjẹpe kii ṣe laisi ami ibeere ninu akọle, ṣe ayẹwo koko-ọrọ naa ni ọna ti o ṣe pataki, ti o tẹle ọrọ naa pẹlu awọn ọna asopọ ti o nifẹ si. Jọwọ dariji wa ni itumọ ọfẹ ti “ọbọ Idarudapọ” ti o ba le!

Ṣe Kafka lori Kubernetes dara?

Ifihan

Kubernetes jẹ apẹrẹ lati mu awọn ẹru iṣẹ ti ko ni ipinlẹ ṣiṣẹ. Ni deede, iru awọn ẹru iṣẹ ni a gbekalẹ ni irisi faaji microservice, wọn jẹ iwuwo fẹẹrẹ, iwọn daradara ni petele, tẹle awọn ilana ti awọn ohun elo ifosiwewe 12, ati pe o le ṣiṣẹ pẹlu awọn fifọ Circuit ati awọn obo rudurudu.

Kafka, ni ida keji, ṣe pataki bi ibi ipamọ data pinpin. Nitorinaa, nigbati o ba n ṣiṣẹ, o ni lati ṣe pẹlu ipinlẹ, ati pe o wuwo pupọ ju iṣẹ microservice kan lọ. Kubernetes ṣe atilẹyin awọn ẹru ipinlẹ, ṣugbọn bi Kelsey Hightower ṣe tọka si ni awọn tweets meji, wọn yẹ ki o ṣe itọju pẹlu iṣọra:

Diẹ ninu awọn eniyan lero pe ti o ba yi Kubernetes sinu iṣẹ ṣiṣe ti ipinlẹ, o di ibi-ipamọ data iṣakoso ni kikun ti o dije RDS. Eyi jẹ aṣiṣe. Boya, ti o ba ṣiṣẹ takuntakun to, ṣafikun awọn paati afikun ati fa ẹgbẹ kan ti awọn onimọ-ẹrọ SRE, iwọ yoo ni anfani lati kọ RDS lori oke Kubernetes.

Mo ṣeduro nigbagbogbo pe gbogbo eniyan lo iṣọra pupọ nigbati o nṣiṣẹ awọn iṣẹ ṣiṣe ipinlẹ lori Kubernetes. Pupọ eniyan ti o beere “Ṣe MO le ṣiṣẹ awọn ẹru iṣẹ ipinlẹ lori Kubernetes” ko ni iriri to pẹlu Kubernetes, ati nigbagbogbo pẹlu ẹru iṣẹ ti wọn n beere nipa rẹ.

Nitorina, o yẹ ki o ṣiṣẹ Kafka lori Kubernetes? Ibeere counter: Ṣe Kafka yoo ṣiṣẹ dara julọ laisi Kubernetes? Ti o ni idi ti Mo fẹ lati saami ni yi article bi Kafka ati Kubernetes iranlowo kọọkan miiran, ati ohun ti pitfalls le wa pẹlu apapọ wọn.

Akoko ti Ipari

Jẹ ki a sọrọ nipa ohun ipilẹ - agbegbe asiko asiko funrararẹ

Ilana

Awọn alagbata Kafka jẹ ọrẹ Sipiyu. TLS le ṣafihan diẹ ninu awọn oke. Sibẹsibẹ, awọn alabara Kafka le jẹ aladanla Sipiyu diẹ sii ti wọn ba lo fifi ẹnọ kọ nkan, ṣugbọn eyi ko kan awọn alagbata.

Iranti

Awọn alagbata Kafka jẹ iranti. Iwọn okiti JVM nigbagbogbo ni opin si 4-5 GB, ṣugbọn iwọ yoo tun nilo ọpọlọpọ iranti eto nitori Kafka nlo kaṣe oju-iwe pupọ darale. Ni Kubernetes, ṣeto awọn orisun eiyan ati awọn opin ibeere ni ibamu.

Itaja data

Ibi ipamọ data ninu awọn apoti jẹ ephemeral - data ti sọnu nigbati o tun bẹrẹ. Fun data Kafka o le lo iwọn didun kan emptyDir, ati ipa naa yoo jẹ iru: data alagbata rẹ yoo sọnu lẹhin ipari. Awọn ifiranṣẹ rẹ le tun wa ni ipamọ lori awọn alagbata miiran bi awọn ẹda. Nitorinaa, lẹhin atunbere, alagbata ti o kuna gbọdọ kọkọ tun gbogbo data ṣe, ati pe ilana yii le gba akoko pupọ.

Eyi ni idi ti o yẹ ki o lo ibi ipamọ data igba pipẹ. Jẹ ki o jẹ ibi ipamọ igba pipẹ ti kii ṣe agbegbe pẹlu eto faili XFS tabi, diẹ sii ni deede, ext4. Maṣe lo NFS. Mo kilo fun yin. Awọn ẹya NFS v3 tabi v4 kii yoo ṣiṣẹ. Ni kukuru, alagbata Kafka yoo jamba ti ko ba le pa ilana data rẹ kuro nitori iṣoro “itumọ aṣiwere” ni NFS. Ti Emi ko ba da ọ loju sibẹsibẹ, farabalẹ ka yi article. Ile-itaja data yẹ ki o jẹ ti kii ṣe agbegbe ki Kubernetes le ni irọrun diẹ sii yan oju ipade tuntun lẹhin atunbere tabi iṣipopada.

Nẹtiwọki

Gẹgẹbi pẹlu awọn ọna ṣiṣe pinpin pupọ julọ, iṣẹ ṣiṣe Kafka dale pupọ lori titọju lairi nẹtiwọọki si o kere ju ati bandiwidi si iwọn. Maṣe gbiyanju lati gbalejo gbogbo awọn alagbata lori ipade kanna, nitori eyi yoo dinku wiwa. Ti ipade Kubernetes ba kuna, gbogbo iṣupọ Kafka yoo kuna. Pẹlupẹlu, maṣe tuka iṣupọ Kafka kaakiri gbogbo awọn ile-iṣẹ data. Kanna n lọ fun iṣupọ Kubernetes. Adehun ti o dara ninu ọran yii ni lati yan awọn agbegbe wiwa oriṣiriṣi.

Iṣeto ni

Deede manifestos

Aaye ayelujara Kubernetes ni gan ti o dara guide nipa bi o ṣe le tunto ZooKeeper nipa lilo awọn ifihan. Niwọn igba ti ZooKeeper jẹ apakan ti Kafka, eyi jẹ aaye ti o dara lati bẹrẹ lati faramọ pẹlu eyiti awọn imọran Kubernetes lo nibi. Ni kete ti o ba loye eyi, o le lo awọn imọran kanna pẹlu iṣupọ Kafka kan.

  • Labẹ: Apoti jẹ ẹyọ ti o kere julọ ti o le gbe ni Kubernetes. Podu kan ni ẹru iṣẹ rẹ ninu, ati pe podu funrarẹ ni ibamu pẹlu ilana kan ninu iṣupọ rẹ. Podu kan ni ọkan tabi diẹ ẹ sii awọn apoti ninu. Olupin ZooKeeper kọọkan ninu akojọpọ ati alagbata kọọkan ninu iṣupọ Kafka yoo ṣiṣẹ ni adarọ ese lọtọ.
  • StatefulSet: StatefulSet jẹ ohun elo Kubernetes ti o mu ọpọlọpọ awọn iṣẹ ṣiṣe ipinlẹ, ati iru awọn iṣẹ ṣiṣe nilo isọdọkan. StatefulSets pese awọn iṣeduro nipa pipaṣẹ awọn adarọ-ese ati iyasọtọ wọn.
  • Awọn iṣẹ ti ko ni ori: Awọn iṣẹ gba ọ laaye lati yọ awọn adarọ-ese kuro lati ọdọ awọn alabara nipa lilo orukọ ọgbọn kan. Kubernetes ninu apere yi jẹ lodidi fun fifuye iwontunwosi. Bibẹẹkọ, nigbati o ba n ṣiṣẹ awọn ẹru iṣẹ ipinlẹ, gẹgẹbi ZooKeeper ati Kafka, awọn alabara nilo lati ṣe ibasọrọ pẹlu apẹẹrẹ kan pato. Eyi ni ibiti awọn iṣẹ ti ko ni ori wa ni ọwọ: ninu ọran yii, alabara yoo tun ni orukọ ọgbọn kan, ṣugbọn iwọ kii yoo ni lati kan si podu taara.
  • Iwọn ipamọ igba pipẹ: Awọn ipele wọnyi ni a nilo lati tunto ibi ipamọ itẹramọṣẹ ti kii ṣe agbegbe ti a mẹnuba loke.

Ni Yolean Pese akojọpọ awọn ifihan gbangba lati ṣe iranlọwọ fun ọ lati bẹrẹ pẹlu Kafka lori Kubernetes.

Awọn aworan atọka Helm

Helm jẹ oluṣakoso package fun Kubernetes ti o le ṣe akawe si awọn alakoso package OS gẹgẹbi yum, apt, Homebrew tabi Chocolatey. O jẹ ki o rọrun lati fi sori ẹrọ awọn idii sọfitiwia ti a ti sọ tẹlẹ ti a ṣalaye ninu awọn shatti Helm. Atọka Helm ti a yan daradara jẹ ki iṣẹ ṣiṣe ti o nira ti bii o ṣe le tunto daradara gbogbo awọn aye lati lo Kafka lori Kubernetes rọrun. Ọpọlọpọ awọn aworan atọka Kafka wa: osise ti o wa ni incubator majemu, nibẹ ni ọkan lati Ṣe alaye, ọkan diẹ sii - lati Bitnami.

Awọn oniṣẹ

Nitori Helm ni awọn ailagbara kan, ọpa miiran n gba olokiki pupọ: awọn oniṣẹ Kubernetes. Oniṣẹ kii ṣe sọfitiwia idii nikan fun Kubernetes, ṣugbọn tun gba ọ laaye lati ran iru sọfitiwia ati ṣakoso rẹ.

Ninu atokọ naa iyanu awọn oniṣẹ Awọn oniṣẹ meji fun Kafka ni a mẹnuba. Ọkan ninu wọn - Strimzi. Pẹlu Strimzi, o rọrun lati gba iṣupọ Kafka rẹ soke ati ṣiṣe ni awọn iṣẹju. Fere ko si iṣeto ni o nilo, ni afikun, oniṣẹ funrararẹ pese diẹ ninu awọn ẹya ti o wuyi, fun apẹẹrẹ, fifi ẹnọ kọ nkan TLS aaye-si-ojuami laarin iṣupọ. Confluent tun pese ti ara onišẹ.

Ise sise

O ṣe pataki lati ṣe idanwo iṣẹ ṣiṣe nipa fifi aami si apẹẹrẹ Kafka rẹ. Iru awọn idanwo bẹẹ yoo ṣe iranlọwọ fun ọ lati wa awọn igo ti o pọju ṣaaju awọn iṣoro dide. Ni Oriire, Kafka ti pese awọn irinṣẹ idanwo iṣẹ meji: kafka-producer-perf-test.sh и kafka-consumer-perf-test.sh. Ṣe lilo wọn lọwọ. Fun itọkasi, o le tọka si awọn abajade ti a ṣalaye ninu yi post Jay Kreps, tabi idojukọ lori yi awotẹlẹ Amazon MSK nipasẹ Stéphane Maarek.

Awọn iṣẹ

Abojuto

Itumọ ninu eto jẹ pataki pupọ - bibẹẹkọ iwọ kii yoo loye ohun ti n ṣẹlẹ ninu rẹ. Loni ohun elo irinṣẹ to lagbara ti o pese ibojuwo-orisun metiriki ni ara abinibi awọsanma. Awọn irinṣẹ olokiki meji fun idi eyi ni Prometheus ati Grafana. Prometheus le gba awọn metiriki lati gbogbo awọn ilana Java (Kafka, Zookeeper, Kafka Connect) ni lilo olutaja JMX kan - ni ọna ti o rọrun julọ. Ti o ba ṣafikun awọn metiriki cAdvisor, o le loye ni kikun diẹ sii bi a ṣe lo awọn orisun ni Kubernetes.

Strimzi ni apẹẹrẹ irọrun pupọ ti Dasibodu Grafana fun Kafka. O ṣe akiyesi awọn metiriki bọtini, fun apẹẹrẹ, nipa awọn apa ti a ko tun ṣe tabi awọn ti o wa ni aisinipo. Ohun gbogbo jẹ kedere nibẹ. Awọn metiriki wọnyi jẹ iranlowo nipasẹ lilo orisun ati alaye iṣẹ, bakanna bi awọn afihan iduroṣinṣin. Nitorinaa o gba ibojuwo iṣupọ Kafka ipilẹ fun ohunkohun!

Ṣe Kafka lori Kubernetes dara?

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

Yoo dara lati ṣafikun gbogbo eyi pẹlu ibojuwo alabara (awọn metiriki lori awọn alabara ati awọn olupilẹṣẹ), bakanna bi ibojuwo lairi (fun eyi o wa Buruku) ati ibojuwo opin-si-opin - fun lilo yii Kafka Atẹle.

Wọle

Wọle jẹ iṣẹ pataki miiran. Rii daju pe gbogbo awọn apoti inu fifi sori Kafka rẹ ti wọle si stdout и stderr, ati tun rii daju pe iṣupọ Kubernetes rẹ ṣajọpọ gbogbo awọn akọọlẹ sinu awọn amayederun gedu aarin, fun apẹẹrẹ. Elasticsearch.

Ṣayẹwo iṣẹ-ṣiṣe

Kubernetes nlo igbesi aye ati awọn iwadii imurasilẹ lati ṣayẹwo boya awọn adarọ-ese rẹ nṣiṣẹ ni deede. Ti ayẹwo igbesi aye ba kuna, Kubernetes yoo da eiyan yẹn duro ati lẹhinna tun bẹrẹ laifọwọyi ti eto imulo atunbere ti ṣeto ni ibamu. Ti ayẹwo imurasilẹ ba kuna, Kubernetes ya sọtọ podu lati awọn ibeere iṣẹ. Nitorinaa, ni iru awọn ọran, ilowosi afọwọṣe ko nilo rara, eyiti o jẹ afikun nla.

Yiyi awọn imudojuiwọn

StatefulSets ṣe atilẹyin awọn imudojuiwọn aifọwọyi: ti o ba yan ilana RollingUpdate, ọkọọkan labẹ Kafka yoo ni imudojuiwọn ni titan. Ni ọna yii, akoko idaduro le dinku si odo.

Igbelosoke

Diwọn iṣupọ Kafka kii ṣe iṣẹ ti o rọrun. Sibẹsibẹ, Kubernetes jẹ ki o rọrun pupọ lati ṣe iwọn awọn adarọ-ese si nọmba kan ti awọn ẹda, eyiti o tumọ si pe o le ṣalaye ni asọye bi ọpọlọpọ awọn alagbata Kafka bi o ṣe fẹ. Ohun ti o nira julọ ninu ọran yii ni yiyan awọn apa lẹhin igbelosoke tabi ṣaaju ki o to fifẹ si isalẹ. Lẹẹkansi, Kubernetes yoo ran ọ lọwọ pẹlu iṣẹ yii.

Isakoso

Awọn iṣẹ ṣiṣe ti o ni ibatan si ṣiṣakoso iṣupọ Kafka rẹ, gẹgẹbi ṣiṣẹda awọn akọle ati awọn apa atunto, le ṣee ṣe ni lilo awọn iwe afọwọkọ ikarahun ti o wa tẹlẹ nipa ṣiṣi wiwo laini aṣẹ ni awọn adarọ-ese rẹ. Sibẹsibẹ, ojutu yii ko lẹwa pupọ. Strimzi ṣe atilẹyin iṣakoso awọn koko-ọrọ nipa lilo oniṣẹ ẹrọ ọtọtọ. Yara diẹ wa fun ilọsiwaju nibi.

Afẹyinti ati mimu-pada sipo

Bayi wiwa ti Kafka yoo tun dale lori wiwa Kubernetes. Ti iṣupọ Kubernetes rẹ ba kuna, lẹhinna ni oju iṣẹlẹ ti o buruju, iṣupọ Kafka rẹ yoo tun kuna. Gẹgẹbi ofin Murphy, eyi yoo ṣẹlẹ dajudaju, ati pe iwọ yoo padanu data. Lati dinku iru eewu yii, ni imọran afẹyinti to dara. O le lo MirrorMaker, aṣayan miiran ni lati lo S3 fun eyi, bi a ti ṣalaye ninu eyi ifiweranṣẹ lati Zalando.

ipari

Nigbati o ba n ṣiṣẹ pẹlu awọn iṣupọ Kafka kekere si alabọde, dajudaju o tọ lati lo Kubernetes bi o ṣe n pese irọrun ni afikun ati simplifies iriri oniṣẹ. Ti o ba ni lairi pupọ ti kii ṣe iṣẹ-ṣiṣe ati / tabi awọn ibeere agbejade, lẹhinna o le dara julọ lati ronu diẹ ninu aṣayan imuṣiṣẹ miiran.

orisun: www.habr.com

Fi ọrọìwòye kun