Ose auala faigofie ma le saogalemu e fa'autometi ai le fa'aogaina o canary i le Helm

Ose auala faigofie ma le saogalemu e fa'autometi ai le fa'aogaina o canary i le Helm

Canary deployment o se auala sili ona aoga e suʻe ai tulafono fou i luga o se vaega o tagata faʻaoga. E matua faʻaitiitia ai le uta o taavale e mafai ona faʻafitauli i le taimi o le faʻapipiʻiina, aua e naʻo totonu o se vaega faʻapitoa e tupu. O lenei faʻamatalaga e tuʻuina atu i le faʻatulagaina o sea faʻaogaina e faʻaaoga ai le Kubernetes ma le faʻaogaina o masini. Matou te manatu e te iloa se mea e uiga i punaoa Helm ma Kubernetes.

Ose auala faigofie ma le saogalemu e fa'autometi ai le fa'aogaina o canary i le Helm

O se fa'ata'ita'iga faigofie canary i Kubernetes e aofia ai punaoa autu e lua: o le 'au'aunaga lava ia ma le meafaigaluega fa'apipi'i. Canary deployment e galue e ala i se auaunaga e tasi e fegalegaleai ma punaoa eseese e lua o loʻo faʻafou ai fefaʻatauaiga. O se tasi o nei punaoa o le a galue ma le "canary" version, ma o le lona lua o le a galue ma le faʻamaumauga mautu. I lenei tulaga, e mafai ona tatou faʻatonutonuina le numera o lomiga canary ina ia faʻaitiitia ai le aofaʻi o feoaiga e manaʻomia e tautua ai. Afai, mo se faʻataʻitaʻiga, e te manaʻo e faʻaaoga Yaml, ona foliga mai lea ile 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.

E sili atu ona faigofie le mafaufauina o lenei filifiliga e faʻaaoga ai le kubectl, ma totonu Kubernetes pepa aloaia E iai fo'i se a'oa'oga atoa i lenei fa'aaliga. Ae o le fesili autu o lenei pou o le auala o le a tatou otometi ai lenei faiga e faʻaaoga ai Helm.

Otometi o le faʻapipiʻiina o canary

Muamua lava, matou te manaʻomia se faʻafanua Helm siata, lea ua uma ona aofia ai punaoa na matou talanoaina i luga. E tatau ona foliga e pei o lenei:

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

O le fa'avae o le manatu Helm o le puleaina lea o fa'asalalauga fa'atele. O le lomiga mautu o le matou lala mautu autu o le code poloketi. Ae fa'atasi ai ma Helm e mafai ona matou fa'apipi'iina se fa'amalologa canary ma la matou fa'ata'ita'iga fa'ailoga. O le mea autu o le tausia lea o fefaʻatauaiga o fefaʻatauaiga i le va o le faʻamaumauga mautu ma le faʻamalolo canary. O le a matou faʻatautaia nei mea uma e faʻaaoga ai se filifiliga faʻapitoa:

selector:
  app.kubernetes.io/name: myapp

O a matou "canary" ma punaoa faʻapipiʻi mautu o le a faʻaalia ai lenei igoa i luga o modules. Afai e sa'o lelei mea uma, i le taimi o le fa'apipi'iina o le canary version o la tatou fa'afanua Helm siata o le a tatou va'ai ai o le a fa'asino atu le ta'avale i modules fou fa'apipi'i. Ole fa'atonuga mautu o lenei poloaiga o le a pei o lenei:

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

Se'i o tatou siaki la tatou sa'olotoga o canary. Ina ia faʻapipiʻi le canary version, e manaʻomia ona tatou manatua mea e lua. E tatau ona ese le igoa fa'amatu'u ina ia aua ne'i matou fa'asalalauina se fa'afouga i le fa'amaumauga mautu o lo'o iai nei. E tatau fo'i ona ese le fa'aliliuga ma le pine ina ia mafai ai ona fa'apipi'i isi fa'ailoga ma fa'ailoa eseesega e ala i pine o puna'oa.

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

Pau lava lena! Afai e te ping le auaunaga, e mafai ona e vaʻaia o le faʻafouina o le canary o loʻo faʻauluina feoaiga na o se vaega o le taimi.

Afai o loʻo e suʻeina ni meafaigaluega faʻapipiʻi faʻapipiʻi e aofia ai le faʻamatalaga faʻamatalaga, ona faʻalogo lea i Deliverybot ma luga Mea faigaluega fa'ameamea foeuli ile GitHub. O siata Helm na faʻaaogaina e faʻatino ai le auala o loʻo faʻamatalaina i luga o loʻo i luga ole Github, saʻo iinei. I se tulaga lautele, o se faʻamatalaga faʻapitoa lea o le faʻaogaina o le masini o le faʻapipiʻiina o faʻasologa o canary i le faʻatinoga, faʻatasi ai ma faʻamatalaga patino ma faʻataʻitaʻiga.

puna: www.habr.com

Faaopoopo i ai se faamatalaga