Indlela elula nevikelekile yokwenza ukuthunyelwa kwe-canary nge-Helm

Indlela elula nevikelekile yokwenza ukuthunyelwa kwe-canary nge-Helm

Ukuthunyelwa kwe-Canary kuyindlela ephumelela kakhulu yokuhlola ikhodi entsha kusethi engaphansi yabasebenzisi. Yehlisa kakhulu umthwalo wethrafikhi ongase ube yinkinga phakathi nenqubo yokuthunyelwa, njengoba kwenzeka kuphela ngaphakathi kwesethi ethile encane. Leli nothi linikezelwe ekuhleleni ukuthunyelwa okunjalo kusetshenziswa i-Kubernetes kanye ne-deployment automation. Sicabanga ukuthi wazi okuthile ngezinsiza ze-Helm ne-Kubernetes.

Indlela elula nevikelekile yokwenza ukuthunyelwa kwe-canary nge-Helm

Ukuthunyelwa okulula kwe-canary ku-Kubernetes kufaka phakathi izinsiza ezimbili ezibalulekile: isevisi ngokwayo kanye nethuluzi lokuthunyelwa. Ukuthunyelwa kwe-Canary kusebenza ngesevisi eyodwa esebenzisana nezinsiza ezimbili ezihlukene ezinikezela ngethrafikhi yokubuyekeza. Enye yalezi zinsiza izosebenza nenguqulo "ye-canary", kanti eyesibili izosebenza nenguqulo ezinzile. Kulesi simo, singakwazi ukulawula inani lezinguqulo ze-canary ukuze sinciphise inani lethrafikhi edingekayo ukuze kusetshenziswe. Uma, ngokwesibonelo, ukhetha ukusebenzisa i-Yaml, izobukeka kanje ku-Kubernetes:

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.

Kulula kakhulu ukucabanga le nketho usebenzisa i-kubectl, kanye nokungena Kubernetes imibhalo Kukhona ngisho okokufundisa okugcwele kulesi simo. Kodwa umbuzo oyinhloko walokhu okuthunyelwe ukuthi sizoyenza kanjani le nqubo ngokuzenzakalelayo sisebenzisa i-Helm.

I-automation yokuthunyelwa kwe-canary

Okokuqala, sidinga imephu yeshadi le-Helm, elihlanganisa kakade izinsiza esikhulume ngazo ngenhla. Kufanele ibukeke kanje:

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

Isisekelo somqondo we-Helm ukuphathwa kokukhishwa kwezinguqulo eziningi. Inguqulo ezinzile igatsha lethu elizinzile lekhodi yephrojekthi. Kodwa nge-Helm singasebenzisa ukukhishwa kwe-canary ngekhodi yethu yokuhlola. Into eyinhloko ukugcina ukushintshaniswa kwethrafikhi phakathi kwenguqulo ezinzile nokukhululwa kwe-canary. Sizophatha konke lokhu sisebenzisa isikhethi esikhethekile:

selector:
  app.kubernetes.io/name: myapp

Izinsiza zethu "ze-canary" nezinzile zizobonisa le lebula kumamojula. Uma yonke into ilungiswe kahle, lapho-ke kusetshenziswa inguqulo ye-canary yemephu yethu yeshadi le-Helm sizobona ukuthi ithrafikhi izoqondiswa kumamojula asanda kufakwa. Inguqulo ezinzile yalo myalo izobukeka kanje:

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

Manje ake sihlole ukukhululwa kwethu kwe-canary. Ukuze sisebenzise inguqulo ye-canary, sidinga ukukhumbula izinto ezimbili. Igama lokukhishwa kufanele lihluke ukuze singakhiphi isibuyekezo kunguqulo ezinzile yamanje. Inguqulo nomaka kufanele futhi kuhluke ukuze sikwazi ukusebenzisa enye ikhodi futhi sihlonze umehluko ngomaka bensiza.

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

Yilokho kuphela! Uma uphina isevisi, ungabona ukuthi ithrafikhi yemizila ye-canary ingxenye yesikhathi kuphela.

Uma ufuna amathuluzi e-automation okuthunyelwa afaka phakathi i-logic echazwe, qaphela I-Deliverybot futhi kuqhubeke Amathuluzi e-Helm automation ku-GitHub. Amashadi e-Helm asetshenziselwa ukusebenzisa indlela echazwe ngenhla aku-Github, khona lapha. Sekukonke, lokhu bekuwukubuka konke kwethiyori kokuthi ungayisebenzisa kanjani i-automation yokuthunyelwa kwezinguqulo ze-canary ngokusebenza, ngemiqondo ethile nezibonelo.

Source: www.habr.com

Engeza amazwana