هيلم سان ڪينري ڊيپلائيمينٽ کي خودڪار ڪرڻ جو هڪ آسان ۽ محفوظ طريقو

هيلم سان ڪينري ڊيپلائيمينٽ کي خودڪار ڪرڻ جو هڪ آسان ۽ محفوظ طريقو

ڪينري ڊيپلائيشن استعمال ڪندڙن جي ذيلي سيٽ تي نئين ڪوڊ کي جانچڻ لاءِ هڪ تمام مؤثر طريقو آهي. اهو خاص طور تي ٽرئفڪ جي لوڊ کي گھٽائي ٿو جيڪو مقرري جي عمل دوران مشڪل ٿي سگهي ٿو، ڇاڪاڻ ته اهو صرف هڪ مخصوص سبسٽ ۾ ٿئي ٿو. هي نوٽ وقف ڪيو ويو آهي ته ڪبرنيٽس ۽ ڊيپلائيمينٽ آٽوميشن استعمال ڪندي اهڙي ترتيب کي ڪيئن منظم ڪجي. اسان فرض ڪيو ته توهان Helm ۽ Kubernetes وسيلن بابت ڪجهه ڄاڻو ٿا.

هيلم سان ڪينري ڊيپلائيمينٽ کي خودڪار ڪرڻ جو هڪ آسان ۽ محفوظ طريقو

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

kind: Deployment
metadata:
  name: app-canary
  labels:
    app: app
spec:
  replicas: 1
  ...
    image: myapp:canary
---
kind: Deployment
metadata:
  name: app
  labels:
    app: app
spec:
  replicas: 5
  ...
    image: myapp:stable
---
kind: Service
selector:
  app: app # Selector will route traffic to both deployments.

اهو تصور ڪرڻ به آسان آهي هن اختيار کي استعمال ڪندي ڪبيڪٽل، ۽ اندر Kubernetes دستاويز هن منظر تي پڻ هڪ مڪمل سبق آهي. پر هن پوسٽ جو بنيادي سوال اهو آهي ته اسان هيلم استعمال ڪندي هن عمل کي خودڪار ڪرڻ وارا آهيون.

ڪينري لڳائڻ جي خودڪار

سڀ کان پهريان، اسان کي هيلم چارٽ نقشي جي ضرورت آهي، جنهن ۾ اڳ ۾ ئي اهي وسيلا شامل آهن جن تي اسان مٿي ذڪر ڪيو آهي. اهو ڪجهه هن طرح ڏسڻ گهرجي:

~/charts/app
├── Chart.yaml
├── README.md
├── templates
│   ├── NOTES.txt
│   ├── _helpers.tpl
│   ├── deployment.yaml
│   └── service.yaml
└── values.yaml

هيلم تصور جو بنياد ملٽي ورزن رليز جو انتظام آهي. مستحڪم نسخو پروجيڪٽ ڪوڊ جي اسان جي مکيه مستحڪم شاخ آهي. پر هيلم سان اسان اسان جي تجرباتي ڪوڊ سان ڪينري رليز کي ترتيب ڏئي سگهون ٿا. بنيادي شيء مستحڪم ورزن ۽ ڪينري ڇڏڻ جي وچ ۾ ٽرئفڪ جي بدلي کي برقرار رکڻ آهي. اسان هي سڀ انتظام ڪنداسين هڪ خاص چونڊيندڙ استعمال ڪندي:

selector:
  app.kubernetes.io/name: myapp

اسان جا ”ڪينري“ ۽ مستحڪم ڊيپلائيمينٽ وسيلا هن ليبل کي ماڊلز تي ظاهر ڪندا. جيڪڏهن هر شي صحيح ترتيب ڏني وئي آهي، ته پوء اسان جي هيلم چارٽ نقشي جي ڪينري ورزن جي ترتيب جي دوران اسين ڏسندا سين ته ٽرئفڪ کي نئين مقرر ڪيل ماڊلز ڏانهن هدايت ڪئي ويندي. هن حڪم جو مستحڪم نسخو هن طرح نظر ايندو:

helm upgrade
  --install myapp 
  --namespace default 
  --set app.name=myapp       # Goes into app.kubernetes.io/name
  --set app.version=v1       # Goes into app.kubernetes.io/version
  --set image.tag=stable 
  --set replicaCount=5

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

helm upgrade
  --install myapp-canary 
  --namespace default 
  --set app.name=myapp       # Goes into app.kubernetes.io/name
  --set app.version=v2       # Goes into app.kubernetes.io/version
  --set image.tag=canary 
  --set replicaCount=1

اهو ئي سڀ ڪجهه آهي! جيڪڏهن توهان خدمت پنگ ڪريو ٿا، توهان ڏسي سگهو ٿا ته ڪينري تازه ڪاري رستن جي ٽرئفڪ کي صرف وقت جو حصو ڏئي ٿو.

جيڪڏھن توھان ڳولي رھيا آھيو ڊولپمينٽ آٽوميشن اوزار جنھن ۾ بيان ڪيل منطق شامل آھي، پوءِ ڌيان ڏيو پهچائڻ وارو بوٽ ۽ تي GitHub تي هيلم خودڪار اوزار. مٿي بيان ڪيل طريقي تي عمل ڪرڻ لاءِ استعمال ٿيل هيلم چارٽ Github تي آهن، ھتي صحيح آھي. عام طور تي، اهو هڪ نظرياتي جائزو هو ته ڪيئن عملي طور تي ڪنري ورزن جي ڊيپلائيشن جي خودڪار طريقي کي لاڳو ڪرڻ، مخصوص تصورن ۽ مثالن سان.

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

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