انٽرنيٽ تي تمام گهڻو حوالو ادب آهي، پر ڪڏهن ڪڏهن آسان ترين ٽوٽڪا تمام قيمتي هوندا آهن. ٽيم Mail.ru کان Kubernetes aaS ترجمو ڏهن چالن ۽ ٽوڪن جو هڪ انتخاب، جيڪو مضمون جي ليکڪ ڪبرنيٽس سان ڪم جي هڪ سال کانپوءِ گڏ ڪيو آهي. تجويزون اهميت جي لحاظ کان ترتيب نه آهن، پر اسان سوچيو ٿا ته هرڪو پنهنجي لاء ڪجهه مفيد ڳولي سگهندو.
Kubernetes سان استعمال ڪرڻ لاء آسان ترين حڪم
شروع ڪرڻ لاء، شايد ڪبرنيٽس سان ڪم ڪرڻ ۾ آسان ۽ سڀ کان وڌيڪ مفيد قدم. هيٺ ڏنل حڪم حڪم مڪمل ڪرڻ جي قابل بڻائي ٿو kubectl باش شيل ۾:
خود بخود kubectl .bashrc فائل ڏانهن لکيو ويندو ۽ خودڪار طور تي چالو ڪيو ويندو هر وقت شيل شروع ڪيو ويندو. هي ڊگھي حڪمن ۽ اختيارن وانگر ٽائپنگ کي تيز ڪري ٿو all-namespaces. ۾ وڌيڪ پڙهو Kubernetes bash مدد.
Namespace Memory ۽ CPU Default Limits
جيڪڏهن ڪا ايپليڪيشن غلط لکي وئي آهي، جيئن ته هر سيڪنڊ ۾ هڪ نئون ڊيٽابيس ڪنيڪشن کولڻ، پر ان کي ڪڏهن به بند نه ڪيو وڃي، ته پوءِ ڪلستر ميموري ليڪ ڪندو. ۽ جيڪڏهن ايپليڪيشن ۾ ميموري جي حد نه هوندي آهي ڊولپمينٽ دوران، اهو ٿي سگهي ٿو نوڊ جي ناڪامي کي.
هن کي روڪڻ لاءِ، ڪبرنيٽس توهان کي اجازت ڏئي ٿو ته هر نالي جي جڳهه لاءِ ڊفالٽ حدون مقرر ڪري. اهي yaml فائل ۾ مخصوص نالي جي جاء لاء لکيل آهن. هتي اهڙي فائل جو هڪ مثال آهي:
اهڙو yaml ٺاهيو ۽ ڪنهن به نالي جي جاء تي لاڳو ڪريو. مثال طور، نالي جي جاء تي limit-example. ھاڻي، ھن نالي جي جڳھ ۾ مقرر ڪيل ڪنھن به ڪنٽينر جي حد 512Mi ھوندي، جيستائين ھن ڪنٽينر لاءِ ڪا ٻي انفرادي حد مقرر نه ڪئي وڃي.
Kubernetes جي پراڻن نسخن ۾ ڪچرو گڏ ڪرڻ
ڪبيليٽ ڊفالٽ طور ڪچرو گڏ ڪرڻ شروع ڪري ٿو جڏهن var/lib/docker 90٪ موجود ڊسڪ اسپيس تي قبضو ڪري ٿو. اهو تمام وڏو آهي، جڏهن ته، Kubernetes 1.7 کان اڳ، استعمال ٿيل انوڊس جي تعداد تي ڪا به ڊفالٽ حد نه هئي، جيڪا فائل سسٽم ۾ فائلن جي تعداد سان مطابقت رکي ٿي.
ممڪن طور تي توهان جو ڪنٽينر var/lib/docker صرف ڊسڪ اسپيس جو 50٪ استعمال ڪري سگهي ٿو، پر اهو انوڊس کان ٻاهر نڪري سگهي ٿو، جيڪو ڪارڪنن لاء مسئلا پيدا ڪندو.
1.4 کان 1.6 تائين ڪبيليٽ جي پراڻن ورزن ۾، توھان کي ھيٺ ڏنل جھنڊو شامل ڪرڻو پوندو:
چال اها آهي ته ايپليڪيشن ڪيئن ٺاهي ۽ ان کي مقامي طور تي هن ڪلستر تي هلائي. جيستائين ٻي صورت ۾ بيان نه ڪيو وڃي، ڊاکر تصوير توهان جي مشين تي ٺاهي ويندي، نه ڪلستر تي.
ڊڪر کي مجبور ڪرڻ لاءِ تصوير کي مقامي ڪبرنيٽس ڪلستر ڏانهن ڌڪڻ لاءِ ، هيٺ ڏنل حڪم ڏنو ويو آهي ڊڪر مشين کي:
eval $(minikube docker-env)
ھاڻي اسان مقامي ڪبرنيٽس ڪلستر تي ايپليڪيشنون ٺاھي سگھون ٿا.
هر ڪنهن سان kubectl رسائي حصيداري نه ڪريو
اهو واضع لڳي ٿو، پر جيڪڏهن ڪيتريون ئي ٽيمون ساڳيون ڪلستر استعمال ڪري رهيون آهن انهن جي ايپليڪيشنن لاءِ (جنهن لاءِ ڪبرنيٽس ٺاهيو ويو هو)، صرف انهن سڀني کي هڪ قطار ۾ جاري نه ڪريو. kubectl. اهو بهتر آهي ته حڪمن کي الڳ ڪيو وڃي، انهن مان هر هڪ کي پنهنجي نالي جي جاءِ ڏيو ۽ RBAC پاليسين سان رسائي کي محدود ڪيو وڃي.
توهان هر پوڊ لاء رسائي، پڙهڻ، ٺاهڻ، حذف ڪرڻ، ۽ ٻين عملن جي حقن کي تفويض ڪندي پريشان ٿي سگهو ٿا. پر بنيادي شيء رازن تائين رسائي کي محدود ڪرڻ، ان کي صرف منتظمين جي اجازت ڏيڻ آهي. هي ڪيئن اسان انهن جي وچ ۾ فرق ڪريون ٿا جيڪي ڪلستر کي منظم ڪري سگهن ٿا ۽ جيڪي صرف ان کي ترتيب ڏئي سگهن ٿا.
پوڊ بجيٽ کي منظم ڪريو
ڪيئن پڪ ڪجي ته ڪوبرنيٽس ڪلستر ۾ ايپليڪيشن لاءِ ڪو به وقت نه آهي؟ PodDisruption Budget ۽ وري PodDisruption Budget.
ڪلستر وقتي طور تي اپڊيٽ ڪيا ويندا آهن ۽ نوڊس خالي ڪيا ويندا آهن. ڪجھ به نه بيٺو آهي، اها حقيقت آهي. هر هڪ کان وڌيڪ مثالن سان گڏ هڪ PDB (PodDisruptionBudget) شامل هجڻ ضروري آهي. اهو هڪ سادي yaml فائل ۾ ٺاهيو ويو آهي جيڪو ڪلستر تي لاڳو ٿئي ٿو. هڪ خاص PDB جو دائرو ليبل چونڊيندڙن طرفان طئي ڪيو ويندو آهي.
نوٽ: PDB بجيٽ صرف ان صورت ۾ ورتو وڃي ٿو جڏهن واپسي واري بجيٽ جي خلاف ورزي (رضاڪارانه رڪاوٽ). حالتن ۾ هارڊويئر ناڪامي، PDB ڪم نه ڪندو.
ٻيو (Liveness) اشارو ڪري ٿو ته ڪنٽينر صحتمند آهي يا ٻيهر شروع ڪرڻ جي ضرورت آهي.
لاڳاپيل ترتيبون صرف ترتيب ڏيڻ لاءِ yaml ۾ شامل ڪيون ويون آھن. اتي توھان وضاحت ڪري سگھو ٿا ٽائم آئوٽ، دير جو وقت ۽ ٻيهر ڪوششن جو تعداد. انھن جي باري ۾ وڌيڪ ڏسو Kubernetes دستاويز.
هر هنڌ ليبل
ليبلز Kubernetes ۾ بنيادي تصورن مان ھڪڙو آھن. اهي شيون هڪ ٻئي سان آزاديء سان گفتگو ڪرڻ جي اجازت ڏين ٿا، انهي سان گڏ ليبل جي بنياد تي درخواستون ٺاهي. Kubernetes ۾، توهان شايد ڪلائنٽ ڏانهن وڃو ۽ مخصوص ليبلز لاء واقعا ڏسي سگهو ٿا.
لڳ ڀڳ ڪجھ به ٿي سگهي ٿو ليبل سان، پر هڪ سٺو مثال اهو هوندو ته هڪ ئي ڪلستر تي پروگرام هلائڻ لاءِ گھڻن ماحول پيدا ڪرڻ.
اچو ته چئو ته توهان ساڳئي ڪلستر لاء استعمال ڪريو dev и qa. هن جو مطلب آهي ته توهان هڪ درخواست ڪري سگهو ٿا app-a، ساڳئي وقت ٻنهي ماحول ۾ ڪم ڪرڻ qa и dev. انهي صورت ۾، اسان مناسب پيٽرولر جي وضاحت ڪندي مخصوص ماحول ۾ الڳ الڳ ايپليڪيشن مثال تائين رسائي ڪري سگهون ٿا environment. مثال طور app: app-a и environment: dev هڪ ماحول لاء، ۽ app: app-a и environment: qa ٻئي لاءِ.
هي توهان کي ايپليڪيشن جي ٻنهي مثالن تائين رسائي جي اجازت ڏئي ٿو، مثال طور، ساڳئي وقت ٽيسٽ ڪرڻ.
شين کي ترتيب ڏيو
ڪبرنيٽس هڪ تمام طاقتور سسٽم آهي، پر ڪنهن به سسٽم کي آخرڪار عملن جي وڏي تعداد ۾ دٻايو وڃي ٿو. Kubelet سڀني عملن ۽ چيڪن کي هلائي ٿو جيڪو توهان بيان ڪيو آهي، انهي سان گڏ اهو پنهنجو.
يقينن، هڪ يتيم سروس سسٽم کي سست نه ڪندي، ۽ ڪبرنيٽس کي شروعات کان ماپ ڪرڻ لاء ٺهيل آهي. پر جيڪڏهن هڪ خدمت جي بدران هڪ ملين ظاهر ٿئي ٿو، ڪبلٽ کي ڇڪڻ شروع ٿئي ٿو.
جيڪڏهن ڪنهن سبب جي ڪري توهان ڊليٽ ڪري رهيا آهيو (ڪنٽينر، تصوير، جيڪو به)، بس پڪ ڪريو ته ان کي مڪمل طور تي صاف ڪريو.
ڄاڻو وڃ
اسان اسان جي مٿين ٽپ کي آخري لاء محفوظ ڪيو آهي. گو پروگرامنگ ٻولي سکو.
اهو مختلف ۽ دلچسپ شين لاء استعمال ڪري سگهجي ٿو. مثال طور، Kubernetes سسٽم کي توهان جي ذائقي کي وڌائڻ لاء. مثال طور، توهان ڊيٽا گڏ ڪرڻ، ايپليڪيشنن کي ترتيب ڏيڻ، يا صرف ڪنٽينرز کي صاف ڪرڻ لاءِ پنهنجا پروگرام استعمال ڪري سگهو ٿا.
گو پروگرامنگ ٻولي سکڻ ۽ ڪلائنٽ-گو تي عبور حاصل ڪرڻ شايد مشوري جو سڀ کان اهم ٽڪرو آهي جيڪو نئين ڪبرنيٽس استعمال ڪندڙن کي ڏنو وڃي ٿو.