Èske Kafka sou Kubernetes bon?

Bonjou, Habr!

Nan yon sèl fwa, nou te premye moun ki prezante sijè a nan mache Ris la Kafka epi kontinye tras pou devlopman li. An patikilye, nou jwenn sijè a nan entèraksyon ant Kafka ak Kubernetes. Obsèvab (ak byen atansyon) atik sijè sa a te pibliye sou blog la Confluent tounen nan mwa Oktòb ane pase anba patènite a nan Gwen Shapira. Jodi a nou ta renmen atire atansyon w sou yon atik ki pi resan nan mwa avril pa Johann Gyger, ki, byenke pa san yon mak kesyon nan tit la, egzamine sijè a nan yon fason ki pi solid, akonpaye tèks la ak lyen enteresan. Tanpri, padone nou tradiksyon gratis "dezòd makak" si ou kapab!

Èske Kafka sou Kubernetes bon?

Entwodiksyon

Kubernetes fèt pou jere chaj travay apatrid. Tipikman, chaj travay sa yo prezante nan fòm yon achitekti mikwosèvis, yo lejè, echèl byen orizontal, swiv prensip aplikasyon 12 faktè, epi yo ka travay ak disjoncteurs ak makak dezòd.

Kafka, nan lòt men an, esansyèlman aji kòm yon baz done distribye. Kidonk, lè w ap travay, ou dwe fè fas ak eta a, epi li pi lou pase yon mikwosèvis. Kubernetes sipòte chaj eta, men jan Kelsey Hightower fè remake nan de tweets, yo ta dwe okipe ak atansyon:

Gen kèk moun ki santi ke si ou woule Kubernetes nan yon chaj travay eta, li vin tounen yon baz done konplètman jere ki rivalize RDS. Sa a se mal. Petèt, si ou travay di ase, ajoute eleman adisyonèl epi atire yon ekip enjenyè SRE, ou pral kapab bati RDS sou tèt Kubernetes.

Mwen toujou rekòmande pou tout moun pran anpil prekosyon lè yo ap kouri chaj travay eta sou Kubernetes. Pifò moun ki mande "èske mwen ka kouri chaj travay eta sou Kubernetes" pa gen ase eksperyans ak Kubernetes, epi souvan ak kantite travay yo ap mande sou.

Se konsa, ou ta dwe kouri Kafka sou Kubernetes? Kontrè kesyon: Èske Kafka ap travay pi byen san Kubernetes? Se poutèt sa mwen vle mete aksan sou nan atik sa a ki jan Kafka ak Kubernetes konplete youn ak lòt, ak ki enkonvenyans ka vini ak konbine yo.

Tan fini

Ann pale sou bagay debaz la - anviwònman an ègzekutabl tèt li

pwosesis

Koutye Kafka yo zanmitay CPU. TLS ka prezante kèk sou tèt. Sepandan, kliyan Kafka ka gen plis CPU entansif si yo itilize chifreman, men sa a pa afekte koutye.

memwa

Koutye Kafka manje memwa. Gwosè pil JVM a anjeneral limite a 4-5 GB, men w ap bezwen tou anpil memwa sistèm depi Kafka itilize kachèt paj la anpil. Nan Kubernetes, mete resous veso a epi mande limit kòmsadwa.

Done magazen

Depo done nan resipyan se efemèr - done yo pèdi lè rekòmanse. Pou done Kafka ou ka itilize yon volim emptyDir, ak efè a pral menm jan an: done koutye ou yo pral pèdi apre fini. Mesaj ou yo ka toujou estoke sou lòt koutye kòm kopi. Se poutèt sa, apre yon rekòmanse, koutye a echwe dwe premye replike tout done, ak pwosesis sa a ka pran anpil tan.

Se poutèt sa ou ta dwe itilize depo done alontèm. Se pou li depo ki pa lokal alontèm ak sistèm dosye XFS la oswa, pi presizeman, ext4. Pa sèvi ak NFS. Mwen te avèti ou. Vèsyon NFS v3 oswa v4 pa pral travay. Nan ti bout tan, koutye a Kafka pral aksidan si li pa ka efase anyè done a akòz pwoblèm nan "stupid chanje non" nan NFS. Si mwen poko konvenk ou, ak anpil atansyon li atik sa a. Magazen done yo ta dwe pa lokal pou Kubernetes ka chwazi yon nouvo ne plis fleksib apre yon rekòmanse oswa demenajman.

Сеть

Menm jan ak pifò sistèm distribiye, pèfòmans Kafka a depann anpil de kenbe latansi rezo a nan yon minimòm ak lajè nan yon maksimòm. Pa eseye òganize tout koutye sou menm ne, paske sa ap diminye disponiblite. Si yon ne Kubernetes echwe, tout gwoup Kafka a ap echwe. Epitou, pa dispèse gwoup Kafka a atravè tout sant done yo. Menm bagay la tou ale pou gwoup Kubernetes la. Yon bon konpwomi nan ka sa a se chwazi diferan zòn disponiblite.

Konfigirasyon

Manifest regilye yo

Sit entènèt Kubernetes la gen trè bon gid sou fason pou konfigirasyon ZooKeeper lè l sèvi avèk manifest. Depi ZooKeeper fè pati Kafka, sa a se yon bon kote pou kòmanse abitye ak konsèp Kubernetes ki aplike isit la. Yon fwa ou konprann sa a, ou ka itilize menm konsèp yo ak yon gwoup Kafka.

  • Anba: Yon gous se pi piti inite deplwaye nan Kubernetes. Yon gous gen kantite travay ou, epi gous la li menm koresponn ak yon pwosesis nan gwoup ou a. Yon gous gen youn oswa plizyè resipyan. Chak sèvè ZooKeeper nan ansanbl la ak chak koutye nan gwoup Kafka a pral kouri nan yon gous separe.
  • StatefulSet: Yon StatefulSet se yon objè Kubernetes ki jere plizyè chaj travay ak eta, epi kantite travay sa yo mande pou kowòdinasyon. StatefulSets bay garanti konsènan lòd gous yo ak inik yo.
  • Sèvis san tèt: Sèvis yo pèmèt ou detache gous nan kliyan lè l sèvi avèk yon non ki lojik. Kubernetes nan ka sa a responsab pou balanse chaj. Sepandan, lè yo opere chaj travay eta, tankou ZooKeeper ak Kafka, kliyan bezwen kominike ak yon egzanp espesifik. Sa a se kote sèvis san tèt yo vin an sou la men: nan ka sa a, kliyan an ap toujou gen yon non ki lojik, men ou pa pral oblije kontakte gous la dirèkteman.
  • Volim depo alontèm: Komèsan sa yo nesesè pou konfigirasyon depo ki pèsistan blòk ki pa lokal yo mansyone pi wo a.

Sou Yolean Bay yon seri manifeste konplè pou ede w kòmanse ak Kafka sou Kubernetes.

Tablo Helm

Helm se yon manadjè pake pou yon Kubernetes ki ka konpare ak manadjè pake OS tankou yum, apt, Homebrew oswa Chocolatey. Li fè li fasil pou enstale pakè lojisyèl predefini ki dekri nan tablo Helm yo. Yon tablo Helm byen chwazi fè travay la difisil pou konnen kijan pou byen konfigirasyon tout paramèt yo sèvi ak Kafka sou Kubernetes fasil. Gen plizyè dyagram Kafka: youn ofisyèl la sitiye nan kondisyon enkibatè, gen youn nan Confluent, yon lòt - soti nan Bitnami.

Operatè

Paske Helm gen sèten enpèfeksyon, yon lòt zouti ap pran popilarite konsiderab: operatè Kubernetes. Operatè a pa sèlman pake lojisyèl pou Kubernetes, men tou, pèmèt ou deplwaye lojisyèl sa yo ak jere li.

Nan lis la operatè etonan Yo mansyone de operatè pou Kafka. Youn nan yo - Strimzi. Avèk Strimzi, li fasil pou w mete gwoup Kafka w lan nan kèk minit. Pwatikman pa gen okenn konfigirasyon obligatwa, Anplis de sa, operatè a li menm bay kèk karakteristik bèl, pou egzanp, pwen-a-pwen TLS chifreman nan gwoup la. Confluent tou bay pwòp operatè.

Pwodiktivite

Li enpòtan pou teste pèfòmans lè w analize egzanp Kafka ou a. Egzamen sa yo ap ede w jwenn potansyèl pwoblèm anvan pwoblèm parèt. Erezman, Kafka deja bay de zouti tès pèfòmans: kafka-producer-perf-test.sh и kafka-consumer-perf-test.sh. Sèvi ak yo aktif. Pou referans, ou ka fè referans a rezilta ki dekri nan pòs sa a Jay Kreps, oswa konsantre sou revizyon sa a Amazon MSK pa Stéphane Maarek.

Operasyon

Siveyans

Transparans nan sistèm nan trè enpòtan - otreman ou pa pral konprann sa k ap pase nan li. Jodi a gen yon seri zouti solid ki bay siveyans ki baze sou metrik nan stil natif natal nwaj la. De zouti popilè pou objektif sa a se Prometheus ak Grafana. Prometheus ka kolekte mezi nan tout pwosesis Java (Kafka, Zookeeper, Kafka Connect) lè l sèvi avèk yon ekspòtatè JMX - nan fason ki pi senp. Si ou ajoute mezi cAdvisor, ou ka konprann pi byen kijan resous yo itilize nan Kubernetes.

Strimzi gen yon egzanp trè pratik nan yon tablodbò Grafana pou Kafka. Li vizyalize mezi kle, pou egzanp, sou sektè ki pa gen anpil replike oswa sa yo ki offline. Tout bagay trè klè la. Paramèt sa yo konplete pa itilizasyon resous ak enfòmasyon sou pèfòmans, ansanm ak endikatè estabilite. Se konsa, ou jwenn siveyans debaz Kafka cluster pou anyen!

Èske Kafka sou Kubernetes bon?

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

Li ta bon pou konplete tout bagay sa yo ak siveyans kliyan (mestik sou konsomatè yo ak pwodiktè), osi byen ke siveyans latansi (pou sa a gen rfuj) ak siveyans bout-a-fen - pou itilizasyon sa a Kafka ki monitè kè bebe.

Logging

Enregistrement se yon lòt travay kritik. Asire w ke tout resipyan ki nan enstalasyon Kafka ou a konekte stdout и stderr, epi tou asire ke gwoup Kubernetes ou a rasanble tout mòso bwa nan yon enfrastrikti santral, pa egzanp. Elasticsearch.

Fonksyonèl chèk la

Kubernetes sèvi ak sond vivan ak preparasyon pou tcheke si gous ou yo ap fonksyone nòmalman. Si chèk vivan an echwe, Kubernetes ap sispann veso sa a epi answit rekòmanse li otomatikman si règleman rekòmanse a tabli kòmsadwa. Si chèk preparasyon an echwe, Kubernetes izole gous la nan demann sèvis yo. Kidonk, nan ka sa yo, entèvansyon manyèl pa nesesè ankò, ki se yon gwo plis.

Pwolonje mizajou

StatefulSets sipòte mizajou otomatik yo: si w chwazi estrateji RollingUpdate la, yo chak anba Kafka ap mete ajou youn apre lòt. Nan fason sa a, D 'ka redwi a zewo.

Eskalad

Echèl yon gwoup Kafka se pa yon travay fasil. Sepandan, Kubernetes fè li trè fasil pou echèl gous yo nan yon sèten kantite kopi, ki vle di ou ka defini kòm anpil koutye Kafka jan ou renmen. Bagay ki pi difisil nan ka sa a se reasignasyon sektè apre yo fin monte oswa anvan dekale. Yon fwa ankò, Kubernetes pral ede w ak travay sa a.

Administrasyon an

Travay ki gen rapò ak administre gwoup Kafka ou a, tankou kreye sijè ak reasiyen sektè, ka fè lè l sèvi avèk script shell ki deja egziste lè w louvri koòdone liy kòmand nan gous ou yo. Sepandan, solisyon sa a pa bèl anpil. Strimzi sipòte jere sijè lè l sèvi avèk yon operatè diferan. Gen kèk plas pou amelyorasyon isit la.

Sovgad ak restore

Koulye a, disponiblite a nan Kafka pral tou depann de disponiblite a nan Kubernetes. Si gwoup Kubernetes ou a echwe, Lè sa a, nan pi move senaryo a, gwoup Kafka ou a ap echwe tou. Dapre lwa Murphy a, sa a pral definitivman rive, epi ou pral pèdi done yo. Pou diminye kalite risk sa a, gen yon bon konsèp backup. Ou ka itilize MirrorMaker, yon lòt opsyon se sèvi ak S3 pou sa, jan sa dekri nan sa a poste soti nan Zalando.

Konklizyon

Lè w ap travay ak grap Kafka ti ak mwayen gwosè, li definitivman vo sèvi ak Kubernetes paske li bay plis fleksibilite epi senplifye eksperyans operatè a. Si ou gen anpil siyifikatif latansi ki pa fonksyonèl ak / oswa kondisyon debi, Lè sa a, li ka pi bon yo konsidere kèk lòt opsyon deplwaman.

Sous: www.habr.com

Add nouvo kòmantè