ڪبرنيٽس جو مناسب مقابلو لاڳو ڪريو، تبديل ڪريو ۽ پيچ

ڪبرنيٽس وٽ وسيلن کي اپڊيٽ ڪرڻ لاءِ ڪيترائي آپشن آھن: لاڳو ڪريو، ايڊٽ ڪريو، پيچ ۽ تبديل ڪريو. اتي مونجهارو آهي ته هر هڪ ڇا ڪندو آهي ۽ جڏهن انهن کي استعمال ڪرڻ گهرجي. اچو ته ان جو اندازو لڳايو.

ڪبرنيٽس جو مناسب مقابلو لاڳو ڪريو، تبديل ڪريو ۽ پيچ

ته گوگل تي ڳولا ڪريو جملي "kubernetes apply vs replace" واقع آهي StackOverflow ڏانهن جواب ڏيو، جيڪو درست ناهي. جڏهن ڳولهيو "kubernetes apply vs patch" پهرين لنڪ لاءِ دستاويز آهي kubectl patch، جنهن ۾ مقابلو شامل ناهي apply и patch. هي آرٽيڪل مختلف اختيارن تي نظر ايندو، انهي سان گڏ هر هڪ جي مناسب استعمال.

ڪبرنيٽس وسيلن جي زندگيءَ جي دوران (خدمت، مقرري، داخلا، وغيره)، ڪڏهن ڪڏهن توهان کي هن وسيلن جي ڪجهه خاصيتن کي تبديل ڪرڻ، شامل ڪرڻ يا ختم ڪرڻ جي ضرورت پوندي. مثال طور، نوٽ شامل ڪريو، نقلن جو تعداد وڌايو يا گھٽايو.

ڪبرنيٽس CLI

جيڪڏهن توهان اڳ ۾ ئي CLI ذريعي ڪبرنيٽس ڪلستر سان ڪم ڪري رهيا آهيو، توهان اڳ ۾ ئي واقف آهيو apply и edit. ٽيم apply فائل مان وسيلن جي وضاحت کي پڙهي ٿو ۽ Kubernetes ڪلستر ڏانهن "اپسرٽ" ٺاهي ٿو، يعني. وسيلو ٺاهي ٿو جيڪڏهن اهو موجود ناهي ۽ ان کي تازه ڪاري ڪري ٿو جيڪڏهن اهو موجود آهي. ٽيم edit API ذريعي هڪ وسيلن کي پڙهي ٿو، پوء مقامي فائل ڏانهن وسيلن جي وضاحت لکي ٿو، جيڪو پوء ٽيڪسٽ ايڊيٽر ۾ کوليو ويندو آهي. توھان کان پوءِ ترميم ۽ فائل محفوظ ڪريو، kubectl API ذريعي ڪيل تبديلين کي واپس موڪليندو، جيڪو احتياط سان انهن تبديلين کي وسيلن تي لاڳو ڪندو.

نه هرڪو ڄاڻي ٿو حڪم patch и replace. ٽيم patch توهان کي وسيلن جي وضاحت جو حصو تبديل ڪرڻ جي اجازت ڏئي ٿي، صرف ڪمانڊ لائن تي تبديل ٿيل حصو مهيا ڪندي. ٽيم replace ساڳيو ڪم ڪري ٿو edit، پر هر شي کي دستي طور تي ڪرڻ جي ضرورت آهي: توهان کي ڊائون لوڊ ڪرڻ جي ضرورت آهي موجوده ورزن جي وسيلن جي وضاحت، مثال طور، استعمال ڪندي kubectl get -o yaml، ان کي تبديل ڪريو، پوء استعمال ڪريو replace تبديل ٿيل وضاحتن جي مطابق وسيلن کي اپڊيٽ ڪرڻ لاء. ٽيم replace ڪم نه ڪندو جيڪڏهن ڪا به تبديلي وسيلا پڙهڻ ۽ مٽائڻ جي وچ ۾ ٿي.

Kubernetes API

توهان شايد طريقن سان واقف آهيو CoreV1().Pods().Update(), replaceNamespacedService يا patch_namespaced_deployment، جيڪڏهن توهان ڪلستر ذريعي ڪم ڪريو ٿا Kubernetes API لاءِ ڪلائنٽ لائبريري ڪجھ پروگرامنگ ٻولي استعمال ڪندي. لائبريري انهن طريقن کي هٿي وٺندي آهي HTTP درخواستن ذريعي طريقن کي استعمال ڪندي PUT и PATCH... جتي update и replace استعمال ڪريو PUT۽ patch، ڪو مسئلو ناهي ته اهو ڪيترو معقول ٿي سگهي ٿو، استعمال ڪندو آهي PATCH.

اهو ان ڳالهه جي قابل آهي kubectl API ذريعي ڪلستر سان پڻ ڪم ڪري ٿو. ٻين لفظن ۾، kubectlگو ٻولي لاءِ ڪلائنٽ لائبريري جي چوٽي تي هڪ لفافو آهي، جيڪو گهڻو ڪري ذيلي ڪمانڊ مهيا ڪرڻ جي صلاحيت ڏئي ٿو وڌيڪ ڪمپيڪٽ ۽ پڙهڻ جي قابل فارم ۾ معياري API صلاحيتن کان علاوه. مثال طور، جيئن توهان اڳ ۾ ئي محسوس ڪيو آهي، طريقو apply اڳئين پيراگراف ۾ مٿي ذڪر نه ڪيو ويو آهي. في الحال (مئي 2020، لڳ ڀڳ مترجم) سڀ منطق kubectl apply، i.e. غير موجود وسيلن کي ٺاهڻ ۽ موجوده کي تازه ڪاري ڪرڻ، مڪمل طور تي ڪوڊ جي پاسي تي ڪم ڪري ٿو kubectl. ڪوششون ڪيون پيون وڃن منطق جي منتقلي تي apply API جي طرف، پر اهو اڃا تائين بيٽا ۾ آهي. مان هيٺ وڌيڪ تفصيل سان لکندس.

ڊفالٽ طور پيچ

بهترين استعمال patch، جيڪڏهن توهان وسيلن کي اپڊيٽ ڪرڻ چاهيو ٿا. اهو ڪيئن آهي ٻنهي ڪلائنٽ لائبريريون ڪبرنيٽس API جي چوٽي تي ڪم ڪن ٿيون ۽ kubectl (عجب جي ڳالهه ناهي، ڇاڪاڻ ته اها ڪلائنٽ لائبريري لاءِ هڪ لفافي آهي، لڳ ڀڳ مترجم).

حڪمت عملي سان ڪم ڪريو

سڀ ٽيمون kubectl apply, edit и patch طريقو استعمال ڪريو PATCH موجوده وسيلن کي تازه ڪاري ڪرڻ لاء HTTP درخواستن ۾. جيڪڏهن توهان وڌيڪ تفصيل سان حڪمن تي عمل درآمد ڪريو ٿا، پوء اهي سڀئي طريقا استعمال ڪن ٿا اسٽريٽجڪ ضم ڪرڻ واري پيچنگ وسيلن کي اپڊيٽ ڪرڻ، جيتوڻيڪ حڪم patch ٻيا طريقا استعمال ڪري سگھن ٿا (ھن تي وڌيڪ ھيٺ ڏنل). اسٽريٽجڪ-ضم ڪرڻ واري پيچنگ واري طريقي سان "اها صحيح حاصل ڪرڻ" جي ڪوشش ڪئي وئي آهي فراهم ڪيل وضاحتن کي موجوده وضاحتن سان ضم ڪندي. وڌيڪ خاص طور تي، اهو ٻنهي شين ۽ صفن کي گڏ ڪرڻ جي ڪوشش ڪري ٿو، جنهن جو مطلب آهي ته تبديليون اضافو ٿي ويندا آهن. مثال طور، حڪم هلائڻ patch پوڊ ڪنٽينر جي وضاحت ۾ هڪ نئين ماحولياتي متغير سان، ماحول جي متغير کي موجوده ماحولياتي متغيرن ۾ شامل ڪرڻ جو سبب بنائي ٿو بلڪه انهن کي اوور رائٽ ڪرڻ جي. هن طريقي کي استعمال ڪندي هٽائڻ لاء، توهان کي لازمي طور تي پيٽرولر جي قيمت کي لازمي طور تي مهيا ڪيل وضاحتن ۾ null ڪرڻ گهرجي. جنهن ٽيمن مان kubectl ڇا ان کي اپڊيٽ ڪرڻ لاء استعمال ڪرڻ لاء بهترين آهي؟

جيڪڏھن توھان ٺاھيو ۽ پنھنجي وسيلن کي استعمال ڪندي منظم ڪريو kubectl apply، جڏهن تازه ڪاري ڪرڻ بهتر آهي ته هميشه استعمال ڪرڻ kubectl applyڪرڻ kubectl ترتيب کي منظم ڪري سگهي ٿو ۽ مناسب طريقي سان درخواست ٿيل تبديلين کي ايپليڪيشن کان ايپليڪيشن تائين ٽريڪ ڪري سگھي ٿو. فائدو هميشه استعمال ڪريو apply اهو آهي ته اهو اڳ ۾ لاڳو ڪيل وضاحتن جي ٽريڪ رکي ٿو، ان کي ڄاڻڻ جي اجازت ڏئي ٿو جڏهن وضاحت جي ملڪيت ۽ صف عناصر واضح طور تي هٽايو ويو آهي. هي توهان کي استعمال ڪرڻ جي اجازت ڏئي ٿو apply ملڪيتن ۽ صفن جي عناصر کي ختم ڪرڻ لاء، جڏهن ته عام اسٽريٽجڪ ضم ڪم نه ڪندو. ٽيمون edit и patch نوٽس اپڊيٽ نه ڪريو جيڪي kubectl apply ان جي تبديلين کي ٽريڪ ڪرڻ لاءِ استعمال ڪري ٿو، تنهنڪري ڪا به تبديليون جيڪي ٽريڪ ڪيون ويون آهن ۽ ڪبرنيٽس API ذريعي ڪيون ويون آهن، پر حڪمن ذريعي ڪيون ويون آهن. edit и patch، پوشيده ايندڙ حڪمن لاءِ applyاهو آهي apply انهن کي نه هٽائي ٿو جيتوڻيڪ اهي ان پٽ جي وضاحت ۾ ظاهر نه ٿيندا آهن apply (دستاويز چوي ٿو ته edit и patch استعمال ٿيل نوٽس کي اپڊيٽ ڪريو apply، پر عملي طور تي - نه).

جيڪڏهن توهان حڪم استعمال نٿا ڪريو apply، جي طور تي استعمال ڪري سگهجي ٿو edit، ۽ patch, اهو حڪم چونڊيو جيڪو بهترين طريقي سان تبديل ڪيو پيو وڃي. جڏهن BOM ملڪيت شامل ڪرڻ ۽ تبديل ڪرڻ، ٻنهي طريقن سان لڳ ڀڳ ساڳيا آهن. جڏهن وضاحت جي خاصيتن يا صف جي عناصر کي ختم ڪرڻ edit هڪ وقت جي لانچ وانگر عمل ڪري ٿو apply, جنهن ۾ اهو ٽريڪ رکڻ شامل آهي ته وضاحت ڪهڙي طرح هئي ان کان اڳ ۽ پوءِ ان کي ايڊٽ ڪيو ويو، تنهن ڪري توهان واضح طور تي هٽائي سگهو ٿا ملڪيتن ۽ صفن جي عناصر کي وسيلن مان. توھان کي واضع طور تي ملڪيت جي قيمت مقرر ڪرڻ جي ضرورت آھي null لاءِ وضاحت ۾ patchان کي وسيلن کان هٽائڻ لاء. اسٽريٽجڪ-ضم ڪرڻ واري پيچنگ کي استعمال ڪندي هڪ صف عنصر کي هٽائڻ وڌيڪ پيچيده آهي ڇو ته ان کي ضم ڪرڻ جي هدايتن جي استعمال جي ضرورت آهي. وڌيڪ قابل عمل متبادل لاءِ ھيٺ ڏنل اپ گريڊ جا طريقا ڏسو.

ڪلائنٽ لائبريري ۾ تازه ڪاري طريقن کي لاڳو ڪرڻ لاء جيڪي مٿي ڏنل حڪمن سان ساڳيو طريقي سان عمل ڪن ٿا kubectl، درخواستن ۾ مقرر ڪيو وڃي content-type в application/strategic-merge-patch+json. جيڪڏھن توھان چاھيو ٿا پراپرٽيز کي ھڪ تصنيف ۾ ختم ڪرڻ لاءِ، توھان کي انھن جي قدرن کي واضح طور تي مقرر ڪرڻ جي ضرورت آھي ساڳي طرح null ڪرڻ لاءِ kubectl patch. جيڪڏهن توهان کي صفن جي عناصر کي هٽائڻ جي ضرورت آهي، توهان کي شامل ڪرڻ گهرجي ضم هدايتون تازه ڪاري جي وضاحت ۾ يا تازه ڪاري لاء مختلف طريقا استعمال ڪريو.

تازه ڪاري جا ٻيا طريقا

Kubernetes ٻن ٻين تازه ڪاري طريقن جي حمايت ڪري ٿو: JSON پيچ ضم ڪريو и JSON پيچ. JSON ضم ڪرڻ واري پيچ جو طريقو جزوي ڪبرنيٽس جي وضاحت کي ان پٽ جي طور تي وٺي ٿو ۽ اسٽريٽجڪ-مرج پيچنگ جي طريقي سان ملندڙ شين کي ملائڻ جي حمايت ڪري ٿو. ٻنهي جي وچ ۾ فرق اهو آهي ته اهو صرف صف جي متبادل کي سپورٽ ڪري ٿو، بشمول پوڊ جي وضاحت ۾ ڪنٽينر صف. هن جو مطلب اهو آهي ته جڏهن JSON ضم پيچ استعمال ڪندي، توهان کي سڀني ڪنٽينرز لاء مڪمل وضاحتون مهيا ڪرڻ جي ضرورت آهي جيڪڏهن ڪنهن به ڪنٽينر جي ملڪيت جي تبديلين جي صورت ۾. تنهن ڪري هي طريقو ڪارائتو آهي عناصر کي هٽائڻ لاءِ هڪ صف مان BOM ۾. ڪمانڊ لائن تي توھان استعمال ڪري سگھوٿا JSON ضم پيچ استعمال ڪندي kubectl patch --type=merge. جڏهن ڪبرنيٽس API سان ڪم ڪري رهيا آهيو، توهان کي درخواست جو طريقو استعمال ڪرڻ گهرجي PATCH ۽ تنصيب content-type в application/merge-patch+json.

JSON پيچ اپروچ، وسيلن جي جزوي وضاحت مهيا ڪرڻ بجاءِ، استعمال ڪري ٿو تبديليون مهيا ڪرڻ جيڪي توھان ڪرڻ چاھيو ٿا وسيلن کي ھڪ صف جي طور تي، جنھن ۾ صف جو ھر عنصر وسيلا ۾ ڪيل تبديلي جي وضاحت جي نمائندگي ڪري ٿو. اهو طريقو هڪ وڌيڪ لچڪدار ۽ طاقتور طريقو آهي جنهن ۾ ڪيل تبديلين کي ظاهر ڪرڻ لاءِ، پر انهن تبديلين کي لسٽ ڪرڻ جي قيمت تي، جيڪا هڪ الڳ، غير ڪبرنيٽس فارميٽ ۾ ڪئي پئي وڃي، بجاءِ جزوي وسيلن جي وضاحت موڪلڻ جي. IN kubectl توھان استعمال ڪري سگھوٿا JSON پيچ kubectl patch --type=json. جڏهن ڪبرنيٽس API استعمال ڪندي، اهو طريقو ڪم ڪري ٿو درخواست جو طريقو استعمال ڪندي PATCH ۽ تنصيب content-type в application/json-patch+json.

اسان کي اعتماد جي ضرورت آهي - متبادل استعمال ڪريو

ڪجهه حالتن ۾، توهان کي پڪ ڪرڻ جي ضرورت آهي ته وسيلن ۾ ڪا به تبديلي نه ڪئي وئي آهي انهي وقت جي وچ ۾ وسيلن جي پڙهڻ ۽ جڏهن ان کي اپڊيٽ ڪيو ويندو آهي. ٻين لفظن ۾، توهان کي پڪ ڪرڻ گهرجي ته سڀ تبديليون ٿينديون ايٽمي. انهي حالت ۾، وسيلن کي تازه ڪاري ڪرڻ لاء توهان کي استعمال ڪرڻ گهرجي replace. مثال طور، جيڪڏهن توهان وٽ هڪ ConfigMap آهي هڪ ڪائونٽر سان جيڪو ڪيترن ئي ذريعن طرفان اپڊيٽ ڪيو ويو آهي، توهان کي پڪ ڪرڻ گهرجي ته ٻه ذريعا هڪ ئي وقت ڪائونٽر کي اپڊيٽ نه ڪندا آهن، جنهن جي ڪري تازه ڪاري گم ٿي ويندي آهي. ظاهر ڪرڻ لاء، تصور ڪريو واقعن جي ھڪڙي ترتيب کي استعمال ڪندي patch:

  • A ۽ B حاصل ڪريو وسيلن جي موجوده حالت API مان
  • هر هڪ مقامي طور تي تفصيلات کي اپڊيٽ ڪري ٿو ڪائونٽر کي هڪ طرف وڌائيندي ۽ پڻ شامل ڪري "A" يا "B" ترتيب سان "تازه ڪاري" نوٽ ۾
  • ۽ اهو وسيلن کي ٿورڙي تيزيءَ سان تازه ڪاري ڪري ٿو
  • B وسيلن کي اپڊيٽ ڪري ٿو

نتيجي طور، اپڊيٽ A گم ٿي ويو آهي. آخري آپريشن patch wins، ڪائونٽر ٻن جي بدران ھڪڙي سان وڌايو ويندو آھي، ۽ "اپڊيٽ ٿيل-بائي" نوٽ جي قيمت "B" سان ختم ٿئي ٿي ۽ "A" تي مشتمل نه آھي. اچو ته مٿي جو مقابلو ڪريون ته ڇا ٿئي ٿو جڏهن اپ ڊيٽون طريقي سان استعمال ڪيون وڃن ٿيون replace:

  • A ۽ B حاصل ڪريو وسيلن جي موجوده حالت API مان
  • هر هڪ مقامي طور تي تفصيلات کي اپڊيٽ ڪري ٿو ڪائونٽر کي هڪ طرف وڌائيندي ۽ پڻ شامل ڪري "A" يا "B" ترتيب سان "تازه ڪاري" نوٽ ۾
  • ۽ اهو وسيلن کي ٿورڙي تيزيءَ سان تازه ڪاري ڪري ٿو
  • B وسيلن کي تازه ڪاري ڪرڻ جي ڪوشش ڪري ٿو، پر تازه ڪاري API طرفان رد ڪئي وئي آهي ڇاڪاڻ ته وسيلن جو نسخو بيان ۾ آهي replace Kubernetes ۾ وسيلن جي موجوده ورزن سان نه ٿو ملي ڇاڪاڻ ته وسيلن جو نسخو A جي بدلي آپريشن سان وڌايو ويو آهي.

مٿين صورت ۾، B کي وسيلن کي ٻيهر آڻڻو پوندو، نئين رياست ۾ تبديليون ڪرڻ ۽ ٻيهر ڪوشش ڪرڻي پوندي replace. اهو سبب ٿيندو ته ڪائونٽر کي ٻن کان وڌايو ويندو ۽ آخر ۾ "AB" شامل ڪرڻ لاء "تازه ڪاري" نوٽ.

مٿين مثال مان مراد آهي ته جڏهن عمل ڪيو وڃي replace سڄو وسيلو مڪمل طور تي تبديل ڪيو ويو آهي. وضاحت لاء استعمال ڪيو ويو replace، جزوي نه هجڻ گهرجي، يا حصن ۾ جيئن ۾ apply، پر مڪمل، اضافي سميت resourceVersion وضاحت جي ميٽا ڊيٽا ۾. جيڪڏھن توھان چالو نه ڪيو آھي resourceVersion يا جيڪو نسخو توهان مهيا ڪيو آهي اهو موجوده ناهي، متبادل رد ڪيو ويندو. تنهنڪري استعمال ڪرڻ جو بهترين طريقو آهي replace - وسيلن کي پڙهو، ان کي تازه ڪاري ڪريو ۽ ان کي فوري طور تي تبديل ڪريو. استعمال ڪندي kubectl، اهو شايد هن وانگر نظر اچي ٿو:

$ kubectl get deployment my-deployment -o json 
    | jq '.spec.template.spec.containers[0].env[1].value = "new value"' 
    | kubectl replace -f -

اهو نوٽ ڪرڻ جي قابل آهي ته هيٺ ڏنل ٻه حڪم، ترتيب سان جاري ڪيا ويا آهن، ڪاميابيء سان عمل ڪندي، ڇاڪاڻ ته deployment.yaml ملڪيت تي مشتمل نه آهي .metadata.resourceVersion

$ kubectl create -f deployment.yaml
$ kubectl replace -f deployment.yaml

اهو ظاهر ٿئي ٿو ته مٿي بيان ڪيل تضاد آهي، يعني. "شامل ڪرڻ resourceVersion وضاحت جي ميٽا ڊيٽا ۾." ڇا اهو چوڻ غلط آهي؟ نه، اهو ناهي، ڇاڪاڻ ته جيڪڏهن kubectl نوٽس جيڪي توهان بيان نه ڪيا آهن resourceVersion، اهو ان کي وسيلن مان پڙهندو ۽ ان کي توهان جي بيان ڪيل وضاحتن ۾ شامل ڪندو، ۽ صرف پوءِ ان تي عمل ڪندو. replace. ڇو ته اهو ممڪن طور تي خطرناڪ آهي جيڪڏهن توهان جوهر تي ڀروسو ڪريو، جادو مڪمل طور تي ڪم ڪري ٿو kubectl، توهان کي ان تي ڀروسو نه ڪرڻ گهرجي جڏهن ڪلائنٽ لائبريريون استعمال ڪندي جيڪي API سان ڪم ڪن ٿيون. انهي حالت ۾ توهان کي پڙهڻو پوندو موجوده وسيلن جي وضاحت، ان کي اپڊيٽ ڪريو ۽ پوء عمل ڪريو PUT درخواست.

توهان پيچ نٿا ڪري سگهو - اسان هڪ بدلي ڪندا آهيون

ڪڏهن ڪڏهن توهان کي ڪجهه تبديليون ڪرڻ جي ضرورت آهي جيڪا API طرفان هٿ نه ٿي سگهي. انهن حالتن ۾، توهان ان کي ختم ڪرڻ ۽ ٻيهر ٺاهڻ ذريعي وسيلن جي متبادل کي مجبور ڪري سگهو ٿا. اهو استعمال ڪيو ويندو آهي kubectl replace --force. حڪم هلائڻ فوري طور تي وسيلن کي هٽائي ٿو ۽ پوء انهن کي فراهم ڪيل وضاحتن مان ٻيهر ٺاهي ٿو. API ۾ ڪو به ”قوت بدلائڻ وارو“ هينڊلر ناهي، ۽ API ذريعي ائين ڪرڻ لاءِ، توهان کي ٻه آپريشن ڪرڻ گهرجن. پهرين توهان کي ان جي سيٽنگ ڪندي وسيلن کي ختم ڪرڻ جي ضرورت آهي gracePeriodSeconds صفر تائين (0) ۽ propagationPolicy "پس منظر" ۾ ۽ پوء هن وسيلن کي گهربل وضاحت سان ٻيهر ٺاهيو.

خبردار: اهو طريقو ممڪن طور تي خطرناڪ آهي ۽ ٿي سگهي ٿو اڻڄاتل رياست ڏانهن.

سرور جي پاسي تي لاڳو ڪريو

جيئن مٿي ڄاڻايل آهي، ڪبرنيٽس ڊولپرز منطق کي لاڳو ڪرڻ تي ڪم ڪري رهيا آهن apply کان kubectl Kubernetes API ۾. منطق apply دستياب آهي Kubernetes 1.18 ذريعي kubectl apply --server-side يا طريقي سان استعمال ڪندي API ذريعي PATCH с content-type application/apply-patch+YAML.

نوٽ: JSON پڻ صحيح YAML آهي، تنهنڪري توهان JSON جي طور تي وضاحت موڪلي سگهو ٿا جيتوڻيڪ content-type ٿيندو application/apply-patch+yaml.

ان کان علاوه منطق kubectl API ذريعي هر ڪنهن لاءِ دستياب ٿي وڃي ٿي، apply سرور جي پاسي تي، ٽريڪ رکي ٿو جيڪو وضاحت ۾ فيلڊ لاء ذميوار آهي، اهڙيء طرح ان جي تڪرار کان آزاد ايڊيٽنگ لاء محفوظ گهڻن رسائي جي اجازت ڏئي ٿي. ٻين لفظن ۾، جيڪڏهن apply سرور جي پاسي کان وڌيڪ وسيع ٿي ويندو، هڪ آفاقي محفوظ وسيلن جي انتظام جو انٽرفيس مختلف ڪلائنٽ لاءِ ظاهر ٿيندو، مثال طور، kubectl، Pulumi يا Terraform، GitOps، ۽ گڏوگڏ ڪلائنٽ لائبريريون استعمال ڪندي خود لکيل اسڪرپٽ.

نتيجو

مون کي اميد آهي ته توهان کي مختلف طريقن جو مختصر جائزو مليو آهي ڪلستر ۾ وسيلن کي اپڊيٽ ڪرڻ لاء مددگار. اهو ڄاڻڻ سٺو آهي ته اهو صرف لاڳو نه آهي بدلي جي بدلي ۾، اهو ممڪن آهي هڪ وسيلن کي اپڊيٽ ڪرڻ، لاڳو ڪرڻ، ايڊٽ ڪرڻ، پيچ، يا متبادل استعمال ڪندي. سڀ کان پوء، اصول ۾، هر طريقي جي پنهنجي درخواست جو علائقو آهي. ايٽمي تبديلين لاءِ، متبادل کي ترجيح ڏني وڃي ٿي؛ ٻي صورت ۾، توھان کي استعمال ڪرڻ گھرجي اسٽريٽجڪ-مرج پيچ ذريعي لاڳو. گهٽ ۾ گهٽ، مان توقع ڪريان ٿو ته توهان سمجهي رهيا آهيو ته توهان Google يا StackOerflow تي ڀروسو نه ٿا ڪري سگهو جڏهن "kubernetes apply vs replace" جي ڳولا ڪريو. گهٽ ۾ گهٽ جيستائين هي مضمون موجوده جواب کي تبديل ڪري.

ڪبرنيٽس جو مناسب مقابلو لاڳو ڪريو، تبديل ڪريو ۽ پيچ

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

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