ایا کافکا په کبرنیټس کې ښه دی؟

سلامونه، حبر!

په یو وخت کې، موږ لومړی کس وو چې موضوع یې د روسیې بازار ته معرفي کړه کافکا او ادامه ورکړئ تعقیب د هغې د پراختیا لپاره. په ځانګړې توګه، موږ د کافکا او کافکا ترمنځ د اړیکو موضوع وموندله کوبنیټس. د لیدلو وړ (او خورا محتاط) مقاله دا موضوع د ګوین شاپیرا د لیکوالۍ لاندې د تیر کال په اکتوبر کې په کنفلوینټ بلاګ کې خپره شوې وه. نن ورځ موږ غواړو ستاسو پام د اپریل څخه د جوهان ګیګر لخوا یوې وروستي مقالې ته واړوو ، کوم چې که څه هم په سرلیک کې د پوښتنې نښه پرته نه ، موضوع په خورا مهم ډول څیړي ، د متن سره په زړه پورې لینکونو سره. مهرباني وکړئ موږ ته د "افراتفري بندر" وړیا ژباړه معاف کړئ که تاسو کولی شئ!

ایا کافکا په کبرنیټس کې ښه دی؟

پېژندنه

Kubernetes د بې ریاسته کاري بارونو اداره کولو لپاره ډیزاین شوی. عموما، دا ډول کاري بارونه د مایکرو سرویس معمارۍ په بڼه وړاندې کیږي، دوی لږ وزن لري، په افقی ډول ښه اندازه کوي، د 12 فکتور غوښتنلیکونو اصول تعقیبوي، او کولی شي د سرکټ ماتونکو او ګډو بندرونو سره کار وکړي.

کافکا، له بلې خوا، په اصل کې د ویشل شوي ډیټابیس په توګه کار کوي. په دې توګه، کله چې کار کوي، تاسو باید د دولت سره معامله وکړئ، او دا د مایکرو سرویس په پرتله خورا دروند دی. کوبرنیټس د دولتي بارونو ملاتړ کوي ، مګر لکه څنګه چې کیلسي های ټاور په دوه ټویټونو کې په ګوته کوي ، دوی باید په احتیاط سره اداره شي:

ځینې ​​​​خلک احساس کوي چې که تاسو Kubernetes په دولتي کاري بار کې رول کړئ، دا په بشپړ ډول اداره شوي ډیټابیس کیږي چې د RDS سره سیالي کوي. دا غلط دی. شاید، که تاسو کافي سخت کار وکړئ، اضافي برخې اضافه کړئ او د SRE انجنیرانو ټیم جذب کړئ، تاسو به وکولی شئ د Kubernetes په سر کې RDS جوړ کړئ.

زه تل وړاندیز کوم چې هرڅوک د ډیر احتیاط څخه کار واخلي کله چې په کبرنیټس کې د دولتي کاري بارونو چلول. ډیری خلک چې پوښتنه کوي "ایا زه کولی شم په کوبرنیټس کې د کار بار بار ترسره کړم" د کوبرنیټس سره کافي تجربه نلري ، او ډیری وختونه د هغه کاري بار سره چې دوی یې په اړه پوښتنه کوي.

نو، تاسو باید کافکا په کبرنیټس چل کړئ؟ کاونټر پوښتنه: ایا کافکا به د کوبرنیټس پرته ښه کار وکړي؟ له همدې امله زه غواړم په دې مقاله کې روښانه کړم چې کافکا او کبرنیټس څنګه یو بل بشپړوي، او د دوی په یوځای کولو سره کوم زیانونه راځي.

د بشپړیدو وخت

راځئ چې د اساسي شیانو په اړه وغږیږو - پخپله د چلولو چاپیریال

پروسه

د کافکا بروکرز د CPU دوستانه دي. TLS ممکن یو څه سر معرفي کړي. په هرصورت، د کافکا پیرودونکي ممکن د CPU ډیر سخت وي که دوی کوډ کړي، مګر دا په بروکرانو اغیزه نه کوي.

حافظه

د کافکا دلالانو حافظه خوري. د JVM هپ اندازه معمولا تر 4-5 GB پورې محدوده وي، مګر تاسو به د سیسټم ډیری حافظې ته هم اړتیا ولرئ ځکه چې کافکا د پاڼې کیچ په ډیره اندازه کاروي. په Kubernetes کې، د کانټینر سرچینې تنظیم کړئ او د مطابق حد غوښتنه وکړئ.

د معلوماتو ذخیره

په کانټینرونو کې د معلوماتو ذخیره کول لنډمهاله دي - کله چې بیا پیل شي ډیټا له لاسه ورکوي. د کافکا ډیټا لپاره تاسو کولی شئ حجم وکاروئ emptyDir، او اغیزه به ورته وي: ستاسو د بروکر ډیټا به د بشپړیدو وروسته ورک شي. ستاسو پیغامونه لاهم په نورو بروکرانو کې د نقل په توګه زیرمه کیدی شي. له همدې امله، د بیا پیل کولو وروسته، ناکام بروکر باید لومړی ټول معلومات نقل کړي، او دا پروسه کولی شي ډیر وخت ونیسي.

له همدې امله تاسو باید د اوږدې مودې ډیټا ذخیره وکاروئ. اجازه راکړئ چې دا د XFS فایل سیسټم سره غیر محلي اوږدمهاله ذخیره وي یا په دقیق ډول، ext4. NFS مه کاروئ. ما تاسو ته خبرداری ورکړ. د NFS نسخې v3 یا v4 به کار ونکړي. په لنډه توګه، د کافکا بروکر به خراب شي که چیرې دا په NFS کې د "احمقانه نوم بدلولو" ستونزې له امله د ډیټا لارښود حذف نشي. که ما تراوسه تاسو قانع نه کړي، په ډیر احتیاط سره دا مقاله ولولئ. د ډیټا ذخیره باید غیر محلي وي ترڅو کبرنیټس کولی شي په ډیر انعطاف سره د بیا پیل یا ځای په ځای کولو وروسته نوی نوډ غوره کړي.

شبکه

لکه څنګه چې د ډیری توزیع شوي سیسټمونو سره، د کافکا فعالیت خورا لږ پورې د شبکې ځنډ ساتلو او تر اعظمي حد پورې بینډ ویت پورې اړه لري. هڅه مه کوئ چې ټول بروکران په ورته نوډ کې کوربه کړئ، ځکه چې دا به شتون کم کړي. که د کبرنیټس نوډ ناکام شي، د کافکا ټول کلستر به ناکام شي. همدارنګه، د کافکا کلستر په ټول ډیټا مرکزونو کې مه خپروئ. ورته د Kubernetes کلستر لپاره ځي. پدې حالت کې یو ښه جوړجاړی د مختلف شتون زونونو غوره کول دي.

شکل بندي

منظم منشور

د Kubernetes ویب پاڼه لري ډیر ښه لارښود د مینیفیسټونو په کارولو سره د ZooKeeper تنظیم کولو څرنګوالي په اړه. څرنګه چې زوکیپر د کافکا برخه ده، دا د پیل کولو لپاره یو ښه ځای دی چې د کوبرنیټس مفکورې دلته پلي کیږي. یوځل چې تاسو پدې پوه شئ ، تاسو کولی شئ ورته مفکورې د کافکا کلستر سره وکاروئ.

  • د: پوډ په کبرنیټس کې ترټولو کوچنی د ځای پرځای کولو وړ واحد دی. یو پوډ ستاسو د کار بار لري، او پوډ پخپله ستاسو په کلستر کې د پروسې سره مطابقت لري. یو پوډ یو یا څو کانتینرونه لري. په مجموعه کې د زوکیپر هر سرور او د کافکا کلستر کې هر بروکر به په جلا پوډ کې پرمخ ځي.
  • StatefulSet: یو StatefulSet یو Kubernetes څیز دی چې ډیری دولتي کاري بارونه اداره کوي، او دا ډول کاري بار همغږي ته اړتیا لري. StatefulSets د پوډونو ترتیب او د دوی انفرادیت په اړه تضمین چمتو کوي.
  • بې سرې خدمتونه: خدمتونه تاسو ته اجازه درکوي چې د منطقي نوم په کارولو سره د پیرودونکو څخه پوډونه جلا کړئ. په دې حالت کې Kubernetes د بار توازن لپاره مسؤل دی. په هرصورت، کله چې د دولتي کاري بارونو عملیات کوي، لکه زوکیپر او کافکا، پیرودونکي اړتیا لري چې د یو ځانګړي مثال سره اړیکه ونیسي. دا هغه ځای دی چې بې سرې خدمتونه په کار راځي: پدې حالت کې ، پیرودونکي به لاهم منطقي نوم ولري ، مګر تاسو اړتیا نلرئ مستقیم پوډ سره اړیکه ونیسئ.
  • د اوږدې مودې ذخیره کولو حجم: دا حجمونه د پورته ذکر شوي غیر محلي بلاک دوامداره ذخیره تنظیم کولو لپاره اړین دي.

په یولین تاسو سره د کافکا سره په کبرنیټس کې پیل کولو کې د مرستې لپاره د منشورونو پراخه سیټ چمتو کوي.

د هیلم چارټونه

هیلم د کبرنیټس لپاره د بسته بندۍ مدیر دی چې د OS کڅوړې مدیرانو لکه یوم ، اپټ ، هومبریو یا چاکلیټي سره پرتله کیدی شي. دا د هیلم چارټونو کې تشریح شوي د مخکینۍ تعریف شوي سافټویر کڅوړو نصب کول اسانه کوي. یو ښه غوره شوی هیلم چارټ دا ستونزمن کار کوي چې څنګه په کوبرنیټس کې د کافکا کارولو لپاره ټول پیرامیټونه په سمه توګه تنظیم کړئ. د کافکا ډیری ډیاګرامونه شتون لري: رسمي یو موقعیت لري د انکیوبټر حالت کې، له دې څخه یو دی متواضع, یو بل - څخه Bitnami.

عملیات

ځکه چې هیلم ځینې نیمګړتیاوې لري، بله وسیله د پام وړ شهرت ترلاسه کوي: د کوبرنیټس آپریټرونه. آپریټر نه یوازې د کبرنیټس لپاره سافټویر بسته کوي ، بلکه تاسو ته اجازه درکوي دا ډول سافټویر ځای په ځای کړئ او اداره یې کړئ.

په لیست کې حیرانونکي چلونکي د کافکا لپاره دوه چلونکي ذکر شوي دي. ېو د هغو څخه - سټریمزي. د سټریمزي سره، دا اسانه ده چې ستاسو د کافکا کلستر په څو دقیقو کې پورته او چل کړئ. په حقیقت کې هیڅ ترتیب ته اړتیا نشته، سربیره پردې، آپریټر پخپله ځینې ښه ځانګړتیاوې وړاندې کوي، د بیلګې په توګه، په کلستر کې د ټکي څخه نقطه TLS کوډ کول. کنفلونټ هم ورکوي خپل چلونکی.

محصولات

دا مهمه ده چې ستاسو د کافکا مثال په بنچمارک کولو سره د فعالیت ازموینه وکړئ. دا ډول ازموینې به تاسو سره د ستونزو رامینځته کیدو دمخه احتمالي خنډونو موندلو کې مرسته وکړي. خوشبختانه، کافکا دمخه د فعالیت ازموینې دوه وسیلې چمتو کوي: kafka-producer-perf-test.sh и kafka-consumer-perf-test.sh. له دوی څخه فعاله ګټه پورته کړئ. د حوالې لپاره، تاسو کولی شئ هغه پایلې ته مراجعه وکړئ چې تشریح شوي دا پوسټ Jay Kreps، یا تمرکز وکړئ دا بیاکتنه ایمیزون MSK د سټیفن ماریک لخوا.

عملیات

څارنه

په سیسټم کې شفافیت خورا مهم دی - که نه نو تاسو به نه پوهیږئ چې پدې کې څه پیښیږي. نن ورځ یو قوي توکی کټ شتون لري چې د کلاوډ اصلي سټایل کې د میټریک پراساس نظارت چمتو کوي. د دې هدف لپاره دوه مشهور وسیلې Prometheus او Grafana دي. پرومیټیوس کولی شي د JMX صادرونکي په کارولو سره د جاوا ټولو پروسو (کافکا ، زوکیپر ، کافکا کنیکټ) څخه میټریکونه راټول کړي - په ساده ډول. که تاسو د caAdvisor میټریکونه اضافه کړئ، تاسو کولی شئ په بشپړ ډول پوه شئ چې څنګه سرچینې په Kubernetes کې کارول کیږي.

سټریمزي د کافکا لپاره د ګرافانا ډشبورډ خورا مناسب مثال لري. دا کلیدي میټریکونه ګوري، د بیلګې په توګه، د کم نقل شوي سکټورونو په اړه یا هغه چې آف لائن دي. هلته هر څه ډېر روښانه دي. دا میټریکونه د سرچینو کارولو او د فعالیت معلوماتو، او همدارنګه د ثبات شاخصونو لخوا بشپړ شوي. نو تاسو د هیڅ شی لپاره د کافکا کلستر بنسټیز نظارت ترلاسه کوئ!

ایا کافکا په کبرنیټس کې ښه دی؟

سرچینه: streamzi.io/docs/master/#kafka_dashboard

دا به ښه وي چې دا ټول د پیرودونکي نظارت (د مصرف کونکو او تولید کونکو میټریکونو) سره ضمیمه کړئ ، او همدارنګه د ځنډ څارنه (د دې لپاره شتون لري. غوړ) او د پای څخه تر پایه څارنه - د دې کارونې لپاره کافکا مانیټر.

ننوتل

ننوتل یو بل مهم کار دی. ډاډ ترلاسه کړئ چې ستاسو د کافکا نصب کې ټول کانټینرونه ننوتل شوي دي stdout и stderr، او دا هم ډاډه کړئ چې ستاسو د Kubernetes کلستر ټول لاګونه په مرکزي لاګنګ زیربنا کې راټولوي، د بیلګې په توګه. الیسټسیکټ.

فعاله چیک

Kubernetes د ژوند او چمتووالي تحقیقات کاروي ترڅو وګوري چې ایا ستاسو پوډونه په نورمال ډول پرمخ ځي. که د ژوندانه چک ناکامه شي، Kubernetes به هغه کانټینر ودروي او بیا به په اتوماتيک ډول بیا پیل کړي که چیرې د بیا پیل کولو پالیسي د مطابق مطابق ترتیب شوې وي. که د چمتووالي چک ناکامه شي، Kubernetes پوډ د خدمت کولو غوښتنو څخه جلا کوي. په دې توګه، په داسې قضیو کې، لاسي مداخله نور اړتیا نلري، کوم چې یو لوی پلس دی.

تازه معلومات راولئ

StatefulSets د اتوماتیک تازه معلوماتو ملاتړ کوي: که تاسو د رولینګ اپډیټ ستراتیژي غوره کړئ، د کافکا لاندې هر یو به په بدل کې تازه شي. په دې توګه، د ځنډ وخت صفر ته راټیټ کیدی شي.

اندازه کول

د کافکا کلستر اندازه کول اسانه کار نه دی. په هرصورت، Kubernetes دا خورا اسانه کوي چې پوډونه یو مشخص شمیر نقلونو ته اندازه کړي، پدې معنی چې تاسو کولی شئ په اعلاناتي ډول د کافکا بروکرز څومره چې وغواړئ تعریف کړئ. پدې قضیه کې ترټولو ستونزمن شی د سکیل کولو وروسته یا د ټیټ کولو دمخه د سکتورونو بیا ګمارل دي. یوځل بیا ، کوبرنیټس به تاسو سره پدې کار کې مرسته وکړي.

اداره

ستاسو د کافکا کلستر اداره کولو پورې اړوند دندې لکه د موضوعاتو رامینځته کول او د سکتورونو بیا ځای کول ، ستاسو په پوډونو کې د کمانډ لاین انٹرفیس په خلاصولو سره د موجوده شیل سکریپټونو په کارولو سره ترسره کیدی شي. په هرصورت، دا حل خورا ښکلی ندی. سټریمزي د مختلف آپریټر په کارولو سره د موضوعاتو اداره کولو ملاتړ کوي. دلته د پرمختګ لپاره یو څه خونه شتون لري.

بیک اپ او بیا رغونه

اوس د کافکا شتون به هم د کبرنیټس په شتون پورې اړه ولري. که ستاسو د Kubernetes کلستر ناکام شي، نو په بدترین حالت کې، ستاسو د کافکا کلستر به هم ناکام شي. د مرفي د قانون له مخې، دا به خامخا پیښ شي، او تاسو به ډاټا له لاسه ورکړئ. د دې ډول خطر کمولو لپاره، د ښه بیک اپ مفهوم ولرئ. تاسو کولی شئ MirrorMaker وکاروئ، بله لاره دا ده چې د دې لپاره S3 وکاروئ، لکه څنګه چې پدې کې تشریح شوي پوسټ د ځلانډو څخه

پایلې

کله چې د کوچني او متوسط ​​​​کافکا کلسترونو سره کار کوئ ، نو دا یقینا د کوبرنیټس کارولو ارزښت لري ځکه چې دا اضافي انعطاف چمتو کوي او د آپریټر تجربه ساده کوي. که تاسو خورا د پام وړ غیر فعال ځنډ او / یا له لارې اړتیاوې لرئ، نو دا به غوره وي چې د ځای پرځای کولو ځینې نور اختیارونه په پام کې ونیسئ.

سرچینه: www.habr.com

Add a comment