جئين توهان وڌيڪ ۽ وڌيڪ Kubernetes خدمتون ٺاهڻ شروع ڪندا، اهي ڪم جيڪي شروعاتي طور تي سادو هوندا آهن وڌيڪ پيچيده ٿيڻ شروع ڪندا. مثال طور، ڊولپمينٽ ٽيمون ساڳي نالي تحت خدمتون يا نوڪريون ٺاهي نه ٿيون سگهن. جيڪڏهن توهان وٽ هزارين پوڊ آهن، صرف انهن کي لسٽ ڪرڻ ۾ تمام گهڻو وقت لڳندو، اڪيلو انهن کي صحيح طريقي سان منظم ڪرڻ ڏيو. ۽ هي صرف برفاني چوٽي جو ٽڪرو آهي.
اچو ته ڏسون ته نالا اسپيس ڪبرنيٽس وسيلن کي منظم ڪرڻ آسان بڻائي ٿو. پوء هڪ namespace ڇا آهي؟ Namespace توهان جي Kubernetes ڪلستر جي اندر هڪ مجازي ڪلستر جي طور تي سمجهي سگهجي ٿو. توهان هڪ واحد ڪبرنيٽس ڪلستر جي اندر هڪ ٻئي کان ڌار ڌار ڪيترن ئي نالا اسپيس ڪري سگهو ٿا. اهي واقعي توهان جي ۽ توهان جي ٽيمن جي تنظيم، سيڪيورٽي، ۽ سسٽم جي ڪارڪردگي سان مدد ڪري سگهن ٿيون.
اڪثر ڪبرنيٽس جي تقسيم تي، ڪلستر دٻي مان نڪرندو آهي نالي جي جاءِ سان جنهن کي "ڊفالٽ" سڏيو ويندو آهي. اصل ۾ ٽي نالا آهن جن کي ڪبرنيٽس سان واسطو رکي ٿو: ڊفالٽ، ڪوبي-سسٽم، ۽ ڪبي-پبلڪ. في الحال، ڪبي-عوامي اڪثر استعمال نه ڪيو ويو آهي.
kube namespace کي اڪيلو ڇڏڻ هڪ سٺو خيال آهي، خاص طور تي هڪ منظم سسٽم تي جهڙوڪ گوگل ڪبرنيٽس انجڻ. اهو استعمال ڪري ٿو "ڊفالٽ" نالي جي جڳھ جي طور تي جتي توهان جون خدمتون ۽ ايپليڪيشنون ٺهيل آهن. ان جي باري ۾ بلڪل ڪجھ خاص ناهي، سواء ان جي ته ڪبرنيٽس ان کي استعمال ڪرڻ لاء دٻي مان ٻاهر ترتيب ڏني وئي آهي، ۽ توهان ان کي هٽائي نٿا سگهو. اهو شروع ڪرڻ ۽ گهٽ ڪارڪردگي واري نظام لاءِ وڏو آهي، پر مان سفارش نه ڪندس ته ڊفالٽ نالي جي جاءِ استعمال ڪرڻ جي وڏي پروڊ سسٽم تي. پوئين صورت ۾، هڪ ڊولپمينٽ ٽيم آساني سان ڪنهن ٻئي جي ڪوڊ کي ٻيهر لکي سگهي ٿي ۽ ڪنهن ٻئي ٽيم جي ڪم کي ٽوڙي سگهي ٿي ان کي سمجهڻ کان سواءِ.
ان ڪري، توھان کي گھڻن نالن جي جڳھ ٺاھڻ گھرجي ۽ انھن کي استعمال ڪرڻ گھرجي توھان جي خدمتن کي منظم يونٽن ۾ ورهائڻ لاءِ. ھڪڙي نالي جي جڳھ ھڪڙي حڪم سان ٺاھي سگھجي ٿو. جيڪڏھن توھان چاھيو ٿا ھڪڙي نالي جي جاءِ ٺاھيو ٽيسٽ نالي، پوءِ ڪمانڊ استعمال ڪريو $ kubectl create namespace test يا صرف YAML فائل ٺاھيو ۽ ان کي استعمال ڪريو ڪنھن ٻئي Kubernetes وسيلن وانگر.
توهان $ kubectl get namespace ڪمانڊ استعمال ڪندي سڀئي نالا اسپيس ڏسي سگهو ٿا.
هڪ دفعو اهو ٿي چڪو آهي، توهان ڏسندا ٽي ٺاهيل نالا اسپيس ۽ هڪ نئين نالي جي جڳهه جنهن کي "ٽيسٽ" سڏيو ويندو آهي. اچو ته هڪ سادي YAML فائل ڏسو پوڊ ٺاهڻ لاءِ. توهان ڏسندا ته اتي نالو جاء جو ڪو به ذڪر نه آهي.
جيڪڏهن توهان هن فائل کي هلائڻ لاءِ kubectl استعمال ڪريو ٿا، اهو هن وقت فعال نالي واري جاءِ ۾ mypod ماڊل ٺاهيندو. هي ڊفالٽ نالو اسپيس هوندو جيستائين توهان ان کي تبديل نه ڪندا. هتي 2 طريقا آهن ڪبرنيٽس کي ٻڌائڻ لاءِ ته توهان ڪهڙي نالي واري جاءِ ٺاهڻ چاهيو ٿا جنهن ۾ توهان پنهنجو وسيلو ٺاهڻ چاهيو ٿا. پهريون طريقو اهو آهي ته هڪ وسيلو ٺاهڻ دوران هڪ نالي جي جڳهه پرچم استعمال ڪرڻ.
ٻيو طريقو YAML اعلان ۾ نالي جي جڳھ کي بيان ڪرڻ آھي.
جيڪڏھن توھان YAML ۾ ھڪڙي نالي جي جڳھ بيان ڪريو ٿا، وسيلو ھميشه ان نالي جي جڳھ ۾ ٺاھيو ويندو. جيڪڏھن توھان ڪوشش ڪندا ته مختلف نالو اسپيس استعمال ڪرڻ دوران نالو اسپيس جھنڊو استعمال ڪيو، حڪم ناڪام ٿيندو. هاڻي جيڪڏهن توهان پنهنجي پوڊ کي ڳولڻ جي ڪوشش ڪندا، توهان ائين ڪرڻ جي قابل نه هوندا.
اهو ٿئي ٿو ڇاڪاڻ ته سڀئي حڪم جاري ڪيا ويا آهن في الحال فعال نالي جي جاء کان ٻاهر. پنھنجي پوڊ کي ڳولڻ لاءِ، توھان کي استعمال ڪرڻ جي ضرورت آھي نالي جي جڳھ واري جھنڊو، پر اھو جلدي بورنگ ٿي وڃي ٿو، خاص طور تي جيڪڏھن توھان ھڪڙي ٽيم تي ڊولپر آھيو جيڪو پنھنجي نالي جي جڳھ استعمال ڪري ٿو ۽ اھو پرچم استعمال ڪرڻ نٿو چاھين ھر ھڪڙي حڪم لاءِ. اچو ته ڏسون ته اسان هن کي ڪيئن درست ڪري سگهون ٿا.
دٻي کان ٻاهر، توهان جي فعال نالي جي جاء کي ڊفالٽ سڏيو ويندو آهي. جيڪڏهن توهان وسيلا YAML ۾ نالي جي جاءِ بيان نه ڪندا آهيو، ته پوءِ سڀ ڪبرنيٽس ڪمانڊ هن فعال ڊفالٽ نالي جي جاءِ استعمال ڪندا. بدقسمتي سان، ڪبيڪٽل استعمال ڪندي فعال نالي جي جڳھ کي منظم ڪرڻ جي ڪوشش ناڪام ٿي سگھي ٿي. بهرحال، ڪوبنز نالي هڪ تمام سٺو اوزار آهي جيڪو هن عمل کي تمام آسان بڻائي ٿو. جڏهن توهان kubens ڪمانڊ کي هلائيندا آهيو، توهان سڀني نالن جي اسپيس کي فعال نالو اسپيس سان نمايان ٿيل ڏسندا آهيو.
فعال نالي واري جاءِ کي ٽيسٽ جي نالي واري جاءِ تي تبديل ڪرڻ لاءِ، توھان ھلايو $kubens test ڪمانڊ. جيڪڏهن توهان وري هلايو $kubens ڪمانڊ، توهان ڏسندا ته هڪ نئين فعال نالي جي جڳهه مختص ڪئي وئي آهي - ٽيسٽ.
ان جو مطلب اهو آهي ته توهان کي جانچ جي نالي واري جڳهه ۾ پوڊ ڏسڻ لاءِ نالا اسپيس پرچم جي ضرورت ناهي.
اهڙيءَ طرح نالا جڳهيون هڪ ٻئي کان لڪيل آهن، پر هڪ ٻئي کان الڳ نه آهن. ھڪڙي نالي جي جڳھ ۾ ھڪڙي خدمت بلڪل آساني سان ڳالھ ٻولھ ڪري سگھي ٿي ٻي نالي جي جڳھ ۾ ھڪڙي خدمت سان، جيڪو اڪثر ڪري مفيد آھي. مختلف نالن جي اسپيس ۾ ڳالھ ٻولھ ڪرڻ جي صلاحيت جو مطلب آھي توھان جي ڊولپرز جي خدمت ھڪ ٻئي ديو ٽيم جي سروس سان مختلف نالن جي جڳھ ۾ ڳالھائي سگھي ٿي.
عام طور تي، جڏهن توهان جي ايپليڪيشن ڪبرنيٽس سروس تائين رسائي حاصل ڪرڻ چاهي ٿي، توهان استعمال ڪريو ٿا بلٽ ان DNS دريافت سروس ۽ صرف توهان جي ايپليڪيشن کي خدمت جو نالو ڏيو. بهرحال، ائين ڪرڻ سان، توهان هڪ ئي نالي سان هڪ خدمت ٺاهي سگهو ٿا ڪيترن ئي نالن جي جڳهن ۾، جيڪا قابل قبول ناهي.
خوش قسمت، DNS پتي جي وڌايل فارم کي استعمال ڪندي چوڌاري حاصل ڪرڻ آسان آهي. Kubernetes ۾ خدمتون عام DNS ٽيمپليٽ استعمال ڪندي انهن جي آخري پوائنٽ کي ظاهر ڪن ٿيون. اهو ڪجهه هن طرح نظر اچي ٿو:
عام طور تي، توهان کي صرف خدمت جي نالي جي ضرورت آهي ۽ DNS خودڪار طريقي سان پورو پتو طئي ڪندو.
تنهن هوندي، جيڪڏهن توهان کي مختلف نالي جي جڳهه ۾ ڪنهن خدمت تائين رسائي حاصل ڪرڻ جي ضرورت آهي، صرف خدمت جو نالو استعمال ڪريو ۽ نالي جي جڳهه جو نالو:
مثال طور، جيڪڏھن توھان چاھيو ٿا ڪنھن سروس ڊيٽابيس سان ڳنڍڻ لاءِ ٽيسٽ جي نالي جي جڳھ ۾، توھان استعمال ڪري سگھوٿا ايڊريس ڊيٽابيس database.test
جيڪڏھن توھان چاھيو ٿا سروس ڊيٽابيس سان ڳنڍڻ لاءِ پروڊ نالي جي جڳھ ۾، توھان استعمال ڪريو database.prod.
جيڪڏھن توھان واقعي کي الڳ ڪرڻ چاھيو ٿا ۽ نالي جي جڳھ کي محدود ڪرڻ چاھيو ٿا، ڪبرنيٽس توھان کي اجازت ڏئي ٿو ڪبرنيٽس نيٽ ورڪ پاليسين کي استعمال ڪندي ائين ڪرڻ جي. مان ان بابت ايندڙ قسط ۾ ڳالهائيندس.
مون کان اڪثر سوال پڇيو ويندو آهي ته مون کي ڪيترا نالا اسپيس ٺاهڻ گهرجن ۽ ڪهڙن مقصدن لاءِ؟ ڊيٽا جو هڪ منظم حصو ڇا آهي؟
جيڪڏھن توھان تمام گھڻا نالا ٺاھيو ٿا، اھي صرف توھان جي رستي ۾ ايندا. جيڪڏهن انهن مان تمام ٿورا آهن، توهان اهڙي حل جي سڀني فائدن کان محروم ٿي ويندا. مان سمجهان ٿو ته چار مکيه مرحلا آهن جيڪي هر ڪمپني ذريعي گذري ٿو جڏهن ان جي تنظيمي جوڙجڪ ٺاهي ٿي. ترقيءَ جي مرحلي تي مدار رکندي توهان جو پروجيڪٽ يا ڪمپني آهي، توهان شايد هڪ مناسب نالي واري حڪمت عملي اختيار ڪرڻ چاهيو ٿا.
تصور ڪريو ته توهان هڪ ننڍڙي ٽيم جو حصو آهيو جيڪا 5-10 مائڪرو سروسز کي ترقي ڪرڻ تي ڪم ڪري رهي آهي ۽ توهان آساني سان سڀني ڊولپرز کي هڪ ڪمري ۾ گڏ ڪري سگهو ٿا. هن صورتحال ۾، اهو سمجھ ۾ اچي ٿو ته سڀني پروڊ سروسز کي ڊفالٽ نالي جي جاء تي هلائڻ لاء. يقينن، وڌيڪ لچڪداريءَ لاءِ، توهان استعمال ڪري سگهو ٿا 2 نالا اسپيس - الڳ الڳ پروڊ ۽ ديوي لاءِ. ۽ گهڻو ڪري، توهان Minikube وانگر ڪجهه استعمال ڪندي پنهنجي مقامي ڪمپيوٽر تي توهان جي ترقي کي جانچيو.
اچو ته چئو شيون تبديل ٿيون ۽ توهان وٽ هاڻي هڪ تيزيءَ سان وڌندڙ ٽيم آهي هڪ وقت ۾ 10 کان وڌيڪ مائڪرو سروسز تي ڪم ڪري رهيو آهي. اتي هڪ وقت اچي ٿو جڏهن اهو ضروري آهي ته ڪيترن ئي ڪلستر يا نالا اسپيس استعمال ڪرڻ لاء، الڳ الڳ پروڊ ۽ ديو لاء. توھان ٽيم کي ڪيترن ئي ذيلي ٽيمن ۾ ٽوڙي سگھو ٿا ته جيئن انھن مان ھر ھڪ وٽ پنھنجون مائيڪرو سروسز آھن ۽ انھن مان ھر ھڪ ٽيم پنھنجي نالي جي جڳھ چونڊي سگھي ٿي ته جيئن سافٽ ويئر ڊولپمينٽ ۽ رليز کي منظم ڪرڻ جي عمل کي آسان بڻائي سگھجي.
جيئن ته ٽيم جي هر ميمبر کي بصيرت حاصل ٿئي ٿي ته سسٽم مڪمل طور تي ڪيئن ڪم ڪري ٿو، اهو وڌيڪ ۽ وڌيڪ ڏکيو ٿي ويندو آهي ته هر تبديلي کي ٻين سڀني ڊولپرز سان همٿائڻ. توهان جي مقامي مشين تي مڪمل اسٽيڪ اسپن ڪرڻ جي ڪوشش هر روز سخت ٿي رهي آهي.
وڏين ڪمپنين ۾، ڊولپرز کي عام طور تي خبر ناهي ته ڪير ڇا تي ڪم ڪري رهيو آهي. ٽيمون ڪميونيڪيشن ڪن ٿيون سروس ڪانٽريڪٽ استعمال ڪندي يا سروس ميش ٽيڪنالاجي استعمال ڪندي آهي، جيڪا نيٽ ورڪ تي هڪ تجريدي پرت شامل ڪري ٿي، جهڙوڪ Istio configuration tool. مقامي طور تي مڪمل اسٽيڪ کي هلائڻ جي ڪوشش ڪرڻ بلڪل ممڪن ناهي. مان هڪ مسلسل ترسيل (CD) پليٽ فارم استعمال ڪرڻ جي صلاح ڏيان ٿو جهڙوڪ ڪبرنيٽس تي Spinnaker. تنهن ڪري، اتي هڪ نقطو اچي ٿو جتي هر حڪم کي ضرور پنهنجي نالي جي جاء جي ضرورت آهي. هر ٽيم پڻ چونڊي سگھي ٿي ڪيترن ئي نالن جي جڳھ لاءِ ديو ماحول ۽ پروڊ ماحول.
آخرڪار، اتي وڏيون ڪاروباري ڪمپنيون آهن جن ۾ ڊولپرز جي هڪ گروهه کي ٻين گروپن جي وجود بابت به خبر ناهي. اهڙي ڪمپني عام طور تي ٽئين پارٽي ڊولپرز کي نوڪري ڏئي سگهي ٿي جيڪي ان سان گڏ چڱي طرح دستاويز ٿيل APIs ذريعي رابطو ڪن ٿا. هر اهڙي گروپ ۾ ڪيترن ئي ٽيمن ۽ ڪيترن ئي microservices تي مشتمل آهي. انهي حالت ۾، توهان سڀني اوزارن کي استعمال ڪرڻ جي ضرورت آهي جنهن بابت مون اڳ ۾ ڳالهايو.
پروگرامرز کي دستي طور تي خدمتون سرانجام نه ڏيڻ گهرجن ۽ نالن جي جڳهن تائين رسائي نه هجڻ گهرجي جيڪي انهن سان تعلق نه رکن. هن اسٽيج تي، اهو مشورو ڏنو ويو آهي ته ڪيترن ئي ڪلسٽرن کي گهٽائڻ لاءِ "بلاسٽ ريڊيس" خراب ترتيب ڏنل ايپليڪيشنن کي گهٽائڻ لاءِ، بلنگ جي عمل کي آسان ڪرڻ ۽ وسيلن جي انتظام کي.
اھڙيءَ طرح، توھان جي تنظيم پاران نالن جي جڳھن جو صحيح استعمال توھان کي اجازت ڏئي ٿو ڪبرنيٽس کي وڌيڪ منظم، قابل ڪنٽرول، محفوظ، ۽ لچڪدار.
ڪجھ اشتهار 🙂
اسان سان گڏ رهڻ لاء توهان جي مهرباني. ڇا توهان اسان جا مضمون پسند ڪندا آهيو؟ وڌيڪ دلچسپ مواد ڏسڻ چاهيو ٿا؟ آرڊر ڏيڻ يا دوستن کي سفارش ڪندي اسان جي مدد ڪريو،
ڊيل R730xd 2x سستا Equinix Tier IV ڊيٽا سينٽر ۾ Amsterdam ۾؟ صرف هتي
جو ذريعو: www.habr.com