ڇا ڪافڪا ڪبرنيٽس تي سٺو آهي؟

سلام، حبر!

هڪ دفعي، اسان پهريون ڀيرو هي موضوع روسي مارڪيٽ ۾ متعارف ڪرايو ڪوفي ۽ جاري رکو ٽريڪ ان جي ترقي لاء. خاص طور تي، اسان کي ڪافڪا ۽ جي وچ ۾ رابطي جو موضوع مليو ڪوبنيٿس. قابل مشاهدو (۽ ڪافي محتاط) هڪ مضمون هي موضوع گوين شپيرا جي تصنيف هيٺ گذريل سال آڪٽوبر ۾ Confluent بلاگ تي شايع ٿيو هو. اڄ اسان توهان جو ڌيان اپريل جي هڪ وڌيڪ تازي مضمون ڏانهن جوهان گيگر جي طرف ڇڪائڻ چاهيون ٿا، جيڪو جيتوڻيڪ عنوان ۾ سواليه نشان کان سواءِ، موضوع کي وڌيڪ بنيادي انداز ۾ جانچي ٿو، متن سان گڏ دلچسپ لنڪس. مهرباني ڪري اسان کي معاف ڪريو ”افراتفري بندر“ جو مفت ترجمو جيڪڏهن توهان ڪري سگهو ٿا!

ڇا ڪافڪا ڪبرنيٽس تي سٺو آهي؟

تعارف

ڪبرنيٽس بي رياست ڪم لوڊ کي سنڀالڻ لاءِ ٺهيل آهي. عام طور تي، اهڙا ڪم لوڊ هڪ مائڪرو سروس آرڪيٽيڪچر جي صورت ۾ پيش ڪيا ويا آهن، اهي هلڪو وزن آهن، چڱي طرح افقي طور تي ماپيل آهن، 12 فيڪٽر ايپليڪيشنن جي اصولن تي عمل ڪن ٿا، ۽ سرڪٽ برڪرز ۽ افراتفري بندر سان ڪم ڪري سگهن ٿا.

ڪافڪا، ٻئي طرف، لازمي طور تي ورهايل ڊيٽابيس طور ڪم ڪري ٿو. اهڙيء طرح، جڏهن ڪم ڪري رهيا آهيو، توهان کي رياست سان معاملو ڪرڻو پوندو، ۽ اهو هڪ مائڪرو سروس کان تمام گهڻو ڳري آهي. ڪبرنيٽس رياستي لوڊشيڊنگ کي سپورٽ ڪري ٿو، پر جيئن ڪلسي هاء ٽاور ٻن ٽوئيٽس ۾ اشارو ڪري ٿو، انهن کي احتياط سان سنڀالڻ گهرجي:

ڪجهه ماڻهو محسوس ڪن ٿا ته جيڪڏهن توهان ڪبرنيٽس کي هڪ رياستي ڪم لوڊ ۾ رول ڪيو، اهو هڪ مڪمل طور تي منظم ڪيل ڊيٽابيس بڻجي ٿو جيڪو RDS سان مقابلو ڪري ٿو. هي غلط آهي. ٿي سگهي ٿو، جيڪڏهن توهان ڪافي محنت ڪريو، اضافي اجزاء شامل ڪريو ۽ SRE انجنيئرن جي هڪ ٽيم کي راغب ڪريو، توهان ڪبرنيٽس جي چوٽي تي RDS ٺاهي سگهندا.

مان هميشه سفارش ڪريان ٿو ته هرڪو انتهائي احتياط سان ڪم ڪري جڏهن ڪبرنيٽس تي رياستي ڪم لوڊ هلائي رهيو آهي. گھڻا ماڻھو جيڪي پڇندا آھن ”ڇا مان ڪبرنيٽس تي رياستي ڪم لوڊ ڪري سگھان ٿو“ انھن وٽ ڪوبرنيٽس سان ڪافي تجربو نه آھي ، ۽ اڪثر ڪم جي لوڊ سان جيڪي اھي پڇي رھيا آھن.

تنهن ڪري، توهان کي ڪبرنيٽس تي ڪافڪا کي هلائڻ گهرجي؟ جوابي سوال: ڇا ڪافڪا ڪبرنيٽس کان سواءِ بهتر ڪم ڪندو؟ ان ڪري مان هن مضمون ۾ نمايان ڪرڻ چاهيان ٿو ته ڪفڪا ۽ ڪبرنيٽس ڪيئن هڪ ٻئي کي پورو ڪن ٿا، ۽ انهن کي گڏ ڪرڻ سان ڪهڙا نقصان ٿي سگهن ٿا.

مڪمل ٿيڻ جو وقت

اچو ته بنيادي شيء بابت ڳالهايون - رن ٽائيم ماحول پاڻ

عمل

ڪافڪا بروکرز سي پي يو دوستانه آهن. TLS شايد ڪجهه اوور هيڊ متعارف ڪرايو. بهرحال، ڪافڪا جا گراهڪ وڌيڪ سي پي يو وارا هوندا جيڪڏهن اهي انڪرپشن استعمال ڪن، پر اهو بروڪرز کي متاثر نٿو ڪري.

هوندي آهي

ڪافڪا جا دلال ياداشت کائيندا آهن. JVM هيپ سائيز عام طور تي 4-5 GB تائين محدود هوندي آهي، پر توهان کي سسٽم ميموري جي تمام گهڻي ضرورت هوندي آهي ڇو ته ڪافڪا پيج ڪيش کي تمام گهڻو استعمال ڪري ٿو. Kubernetes ۾، ڪنٽينر وسيلا مقرر ڪريو ۽ مطابق حدن جي درخواست ڪريو.

ڊيٽا اسٽور

ڪنٽينرز ۾ ڊيٽا اسٽوريج عارضي آهي - ڊيٽا گم ٿي ويندي آهي جڏهن ٻيهر شروع ڪيو وڃي. ڪافڪا ڊيٽا لاءِ توهان حجم استعمال ڪري سگهو ٿا emptyDir، ۽ اثر ساڳيو ٿيندو: توهان جي بروکر ڊيٽا مڪمل ٿيڻ کان پوءِ گم ٿي ويندي. توهان جا نياپا اڃا تائين ٻين بروکرز تي محفوظ ڪري سگھجن ٿا جيئن نقل. تنهن ڪري، ٻيهر شروع ٿيڻ کان پوء، ناڪام بروکر کي پهريان سڀني ڊيٽا کي نقل ڪرڻ گهرجي، ۽ اهو عمل تمام گهڻو وقت وٺي سگھي ٿو.

اهو ئي سبب آهي ته توهان کي ڊگهي مدت جي ڊيٽا اسٽوريج استعمال ڪرڻ گهرجي. ان کي XFS فائل سسٽم سان گڏ غير مقامي ڊگھي مدي واري رکڻ ڏيو يا، وڌيڪ واضح طور تي، ext4. NFS استعمال نه ڪريو. مون توکي ڊيڄاريو. NFS نسخو v3 يا v4 ڪم نه ڪندو. مختصر ۾، ڪافڪا بروکر تباھ ٿي ويندو جيڪڏھن اھو ڊيٽا ڊاريڪٽري کي ختم نه ڪري سگھي ڇاڪاڻ ته NFS ۾ "بيوقوف مٽائڻ" جي مسئلي جي ڪري. جيڪڏهن مون توهان کي اڃا تائين قائل نه ڪيو آهي، تمام احتياط سان هي مضمون پڙهو. ڊيٽا اسٽور کي غير مقامي هجڻ گهرجي ته جيئن ڪبرنيٽس وڌيڪ لچڪدار طريقي سان هڪ نئين نوڊ کي ٻيهر شروع ڪرڻ يا منتقل ڪرڻ کان پوء چونڊيو وڃي.

نيٽورڪ

جيئن ته اڪثر ورهايل نظامن سان، ڪافڪا جي ڪارڪردگيءَ تي تمام گهڻو دارومدار آهي نيٽ ورڪ جي ويڪرائي کي گهٽ ۾ گهٽ ۽ بينڊوڊٿ کي وڌ ۾ وڌ رکڻ تي. ساڳي نوڊ تي سڀني بروکرز کي ميزباني ڪرڻ جي ڪوشش نه ڪريو، ڇاڪاڻ ته اهو دستيابي کي گهٽائيندو. جيڪڏهن ڪوبرنيٽس نوڊ ناڪام ٿئي ٿو، سڄو ڪافڪا ڪلستر ناڪام ٿيندو. انهي سان گڏ، سڄي ڊيٽا سينٽرن ۾ ڪافڪا ڪلستر کي منتشر نه ڪريو. اهو ساڳيو آهي Kubernetes ڪلستر لاء. هن معاملي ۾ هڪ سٺو سمجهوتو مختلف دستيابي علائقن کي چونڊڻ آهي.

ڪنفگريشن

باقاعده منشور

Kubernetes ويب سائيٽ آهي تمام سٺو رهنمائي مينيفيسٽ استعمال ڪندي ZooKeeper کي ڪيئن ترتيب ڏيڻ بابت. جيئن ته ZooKeeper Kafka جو حصو آهي، هي هڪ سٺي جڳهه آهي جنهن سان واقف ٿيڻ شروع ڪيو وڃي جنهن سان ڪبرنيٽس تصورات هتي لاڳو ٿين ٿا. هڪ دفعو توهان هن کي سمجهي، توهان ساڳيا تصورات ڪافڪا ڪلستر سان استعمال ڪري سگهو ٿا.

  • هيٺ: هڪ پوڊ ڪبرنيٽس ۾ سڀ کان ننڍو قابل استعمال يونٽ آهي. هڪ پوڊ توهان جي ڪم لوڊ تي مشتمل آهي، ۽ پوڊ پاڻ توهان جي ڪلستر ۾ هڪ عمل سان ملندو آهي. هڪ پوڊ هڪ يا وڌيڪ ڪنٽينر تي مشتمل آهي. هر زو ڪيپر سرور جوڙ ۾ ۽ هر بروکر ڪافڪا ڪلستر ۾ هڪ الڳ پوڊ ۾ هلندو.
  • رياستي سيٽ: هڪ StatefulSet هڪ Kubernetes اعتراض آهي جيڪو ڪيترن ئي رياستي ڪم جي لوڊ کي سنڀاليندو آهي، ۽ اهڙي ڪم لوڊ کي همٿ جي ضرورت هوندي آهي. StatefulSets پوڊ جي ترتيب ۽ انهن جي انفراديت جي حوالي سان ضمانت فراهم ڪن ٿا.
  • بي سر خدمتون: خدمتون توهان کي منطقي نالو استعمال ڪندي ڪلائنٽ کان پوڊ کي ڌار ڪرڻ جي اجازت ڏين ٿيون. هن معاملي ۾ Kubernetes لوڊ توازن لاء ذميوار آهي. تنهن هوندي، جڏهن آپريٽنگ ڪم لوڊ، جهڙوڪ ZooKeeper ۽ Kafka، گراهڪن کي هڪ خاص مثال سان رابطو ڪرڻ جي ضرورت آهي. هي اهو آهي جتي هيڊ بيس خدمتون هٿ ۾ اچن ٿيون: انهي صورت ۾، ڪلائنٽ اڃا تائين هڪ منطقي نالو هوندو، پر توهان کي سڌو سنئون پوڊ سان رابطو ڪرڻ جي ضرورت ناهي.
  • ڊگھي-مدت رکڻ جي مقدار: اهي حجم مٿي ڄاڻايل غير مقامي بلاڪ مسلسل اسٽوريج کي ترتيب ڏيڻ لاء گهربل آهن.

تي يولين ڪافڪا سان شروع ڪرڻ ۾ توهان جي مدد ڪرڻ لاءِ منشور جو هڪ جامع سيٽ مهيا ڪري ٿو Kubernetes تي.

هيلم چارٽس

هيلم ڪبرنيٽس لاءِ هڪ پيڪيج مئنيجر آهي جنهن جو مقابلو OS پيڪيج مينيجرز جهڙوڪ yum، apt، Homebrew يا Chocolatey سان ڪري سگهجي ٿو. هيلم چارٽس ۾ بيان ڪيل اڳواٽ بيان ڪيل سافٽ ويئر پيڪيجز کي انسٽال ڪرڻ آسان بڻائي ٿو. هڪ چڱي طرح چونڊيل هيلم چارٽ اهو ڏکيو ڪم ڪري ٿو ته ڪبرنيٽس تي ڪافڪا کي استعمال ڪرڻ لاءِ سڀني پيرا ميٽرن کي صحيح طريقي سان ترتيب ڪيئن ڪجي. ڪيفڪا جا ڪيترائي ڊراما آھن: سرڪاري ھڪڙو واقع آھي انڪيوبيٽر جي حالت ۾، مان ھڪڙو آھي سنگم، هڪ وڌيڪ - کان بٽني جو.

آپريٽرز

ڇو ته هيلم ۾ ڪجهه خاميون آهن، هڪ ٻيو اوزار ڪافي مقبوليت حاصل ڪري رهيو آهي: ڪبرنيٽس آپريٽرز. آپريٽر نه صرف ڪبرنيٽس لاءِ سافٽ ويئر پيڪيج ڪري ٿو، پر توهان کي اهڙي سافٽ ويئر کي ترتيب ڏيڻ ۽ ان کي منظم ڪرڻ جي اجازت پڻ ڏئي ٿو.

لسٽ ۾ شاندار آپريٽرز ڪافڪا لاءِ ٻه آپريٽرز جو ذڪر ڪيو ويو آهي. انهن مان هڪ - اسٽريمزي. Strimzi سان، اهو آسان آهي توهان جي ڪافڪا ڪلستر کي حاصل ڪرڻ ۽ منٽن ۾ هلائڻ. عملي طور تي ڪا به ترتيب جي ضرورت ناهي، اضافي طور تي، آپريٽر پاڻ کي ڪجهه سٺيون خاصيتون مهيا ڪري ٿو، مثال طور، ڪلستر جي اندر پوائنٽ کان پوائنٽ TLS انڪرپشن. Confluent پڻ مهيا ڪري ٿي پنهنجو آپريٽر.

پيداوار

اهو ضروري آهي ته ڪارڪردگي کي جانچڻ لاءِ توهان جي ڪافڪا مثال جي بينچ مارڪ ڪندي. اهڙا تجربا توهان جي مدد ڪندا امڪاني رڪاوٽون ڳولڻ کان اڳ مسئلا پيدا ٿيڻ کان اڳ. خوش قسمت، ڪافڪا اڳ ۾ ئي ٻه ڪارڪردگي جاچ جا اوزار مهيا ڪري ٿو: kafka-producer-perf-test.sh и kafka-consumer-perf-test.sh. انھن جو فعال استعمال ڪريو. حوالن لاء، توھان حوالو ڪري سگھو ٿا نتيجن ۾ بيان ڪيل هي پوسٽ جي Kreps، يا تي ڌيان ڏيڻ هن جائزو Amazon MSK پاران اسٽيفن مارڪ.

آپريشن

مانيٽرنگ

سسٽم ۾ شفافيت تمام ضروري آهي - ٻي صورت ۾ توهان سمجهي نه سگهندا ته ان ۾ ڇا ٿي رهيو آهي. اڄ اتي ھڪڙو مضبوط ٽول ڪٽ آھي جيڪو ڪلائوڊ اصلي انداز ۾ ميٽرڪ تي ٻڌل نگراني مهيا ڪري ٿو. هن مقصد لاء ٻه مشهور اوزار Prometheus ۽ Grafana آهن. Prometheus JMX ايڪسپورٽر استعمال ڪندي سڀني جاوا پروسيس (ڪافڪا، زوڪپر، ڪافڪا ڪنيڪٽ) مان ميٽرڪ گڏ ڪري سگھي ٿو - آسان طريقي سان. جيڪڏهن توهان شامل ڪريو ٿا cAdvisor ميٽرڪس، توهان وڌيڪ مڪمل طور تي سمجهي سگهو ٿا ته ڪبرنيٽس ۾ وسيلا ڪيئن استعمال ڪيا ويندا آهن.

Strimzi هڪ تمام آسان مثال آهي گرافانا ڊيش بورڊ جو ڪافڪا لاءِ. اهو اهم ميٽرڪس کي ڏسي ٿو، مثال طور، هيٺ ڏنل نقل ٿيل شعبن بابت يا جيڪي آف لائن آهن. اتي هر شيء بلڪل واضح آهي. اهي ميٽرڪ وسيلن جي استعمال ۽ ڪارڪردگي جي معلومات، گڏوگڏ استحڪام اشارن سان مڪمل ڪيا ويا آهن. تنهن ڪري توهان حاصل ڪريو بنيادي ڪافڪا ڪلستر مانيٽرنگ لاءِ ڪجھ به نه!

ڇا ڪافڪا ڪبرنيٽس تي سٺو آهي؟

جو ذريعو: streamzi.io/docs/master/#kafka_dashboard

اهو سٺو لڳندو ته اهو سڀ ڪجهه ڪلائنٽ مانيٽرنگ (صارفين ۽ پروڊڪٽرن تي ميٽرڪ) سان گڏ گڏوگڏ دير جي نگراني سان (هن لاءِ موجود آهي. بليو) ۽ آخر کان آخر تائين نگراني - هن استعمال لاءِ ڪافڪا مانيٽر.

لاگنگ

لاگنگ هڪ ٻيو نازڪ ڪم آهي. پڪ ڪريو ته توهان جي ڪافڪا تنصيب ۾ سڀئي ڪنٽينر لاگ ان ٿيل آهن stdout и stderr، ۽ اهو پڻ پڪ ڪريو ته توهان جو ڪبرنيٽس ڪلستر سڀني لاگن کي مرڪزي لاگنگ انفراسٽرڪچر ۾ گڏ ڪري ٿو، مثال طور. ElasticsSearch.

فيڪلٽي جاچ پڙتال

ڪبرنيٽس استعمال ڪري ٿو جاندار ۽ تيارگي جي جاچ ڪرڻ لاءِ ته ڇا توهان جا پوڊ عام طور تي هلن ٿا. جيڪڏهن زندگي جي چڪاس ناڪام ٿئي ٿي، ڪبرنيٽس ان ڪنٽينر کي روڪيندو ۽ پوءِ خودڪار طريقي سان ان کي ٻيهر شروع ڪندو جيڪڏهن ٻيهر شروع ڪرڻ واري پاليسي مطابق مقرر ڪئي وئي آهي. جيڪڏهن تياري جي چڪاس ناڪام ٿئي ٿي، ڪبرنيٽس پوڊ کي خدمت جي درخواستن کان الڳ ڪري ٿو. اهڙيء طرح، اهڙين حالتن ۾، دستياتي مداخلت جي ضرورت ناهي، جيڪو هڪ وڏو پلس آهي.

رول آئوٽ اپڊيٽ

StatefulSets خودڪار تازه ڪاري جي حمايت ڪن ٿا: جيڪڏهن توهان رولنگ اپ ڊيٽ حڪمت عملي چونڊيو ٿا، هر هڪ ڪافڪا جي تحت تبديل ٿي ويندي. هن طريقي سان، بند وقت صفر تائين گھٽائي سگھجي ٿو.

اسڪيلنگ

ڪافڪا ڪلستر کي ماپڻ ڪو آسان ڪم ناهي. جڏهن ته، ڪبرنيٽس ان کي تمام آسان بڻائي ٿو پوڊ کي مخصوص تعداد ۾ نقل ڪرڻ لاءِ، جنهن جو مطلب آهي ته توهان بيان ڪري سگهو ٿا بيان ڪري سگهو ٿا ڪيترا ڪيفڪا بروڪرز جيترا توهان چاهيو. هن معاملي ۾ سڀ کان وڌيڪ ڏکيو شيء آهي شعبن کي ٻيهر ڏيڻ کان پوء اسڪيلنگ کان پوء يا اسڪيل ڪرڻ کان اڳ. ٻيهر، ڪبرنيٽس توهان کي هن ڪم سان مدد ڪندي.

انتظاميه

توهان جي ڪافڪا ڪلستر کي منظم ڪرڻ سان لاڳاپيل ڪم، جهڙوڪ عنوان ٺاهڻ ۽ شعبن کي ٻيهر تفويض ڪرڻ، توهان جي پوڊس ۾ ڪمانڊ لائن انٽرفيس کي کولڻ سان موجوده شيل اسڪرپٽ استعمال ڪندي ڪري سگهجي ٿو. بهرحال، هي حل تمام خوبصورت ناهي. Strimzi مختلف آپريٽر استعمال ڪندي عنوانن کي منظم ڪرڻ جي حمايت ڪري ٿو. هتي بهتري لاءِ ڪجهه ڪمرو آهي.

بيڪ اپ ۽ بحال

هاڻي ڪافڪا جي دستيابي به ڪبرنيٽس جي دستيابي تي منحصر هوندي. جيڪڏهن توهان جو ڪبرنيٽس ڪلستر ناڪام ٿيندو، ته پوءِ بدترين حالتن ۾، توهان جو ڪافڪا ڪلستر به ناڪام ٿيندو. مرفي جي قانون جي مطابق، اهو ضرور ٿيندو، ۽ توهان ڊيٽا وڃائي ڇڏيندؤ. خطري جي هن قسم کي گهٽائڻ لاء، هڪ سٺو بيڪ اپ تصور آهي. توهان استعمال ڪري سگهو ٿا MirrorMaker، ٻيو اختيار اهو آهي ته S3 استعمال ڪريو ان لاءِ، جيئن هن ۾ بيان ڪيو ويو آهي پوسٽ Zalando کان.

ٿڪل

جڏهن ننڍي کان وچولي سائيز جي ڪافڪا ڪلسترن سان ڪم ڪري رهيا آهن، اهو ضرور ڪبرنيٽس استعمال ڪرڻ جي قابل آهي جيئن اهو اضافي لچڪ فراهم ڪري ٿو ۽ آپريٽر جي تجربي کي آسان بڻائي ٿو. جيڪڏهن توهان وٽ تمام اهم غير فنڪشنل ويڪرائي ۽ / يا ذريعي گهرج آهي، ته پوء اهو بهتر ٿي سگهي ٿو ته ڪجهه ٻين ترتيب ڏيڻ جي اختيار تي غور ڪيو وڃي.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو