Aiwatar da Canary hanya ce mai inganci don gwada sabon lamba akan rukunin masu amfani. Yana da mahimmanci rage yawan nauyin zirga-zirga wanda zai iya zama matsala yayin aikin ƙaddamarwa, saboda yana faruwa ne kawai a cikin wani yanki na musamman. Wannan bayanin kula yana keɓance yadda ake tsara irin wannan turawa ta amfani da Kubernetes da sarrafa kayan aiki. Muna ɗauka kun san wani abu game da albarkatun Helm da Kubernetes.
Sauƙaƙan tura canary zuwa Kubernetes ya haɗa da mahimman albarkatu guda biyu: sabis ɗin kanta da kayan aikin turawa. Aiwatar da Canary yana aiki ta hanyar sabis guda ɗaya wanda ke hulɗa tare da albarkatu daban-daban guda biyu waɗanda ke ba da sabunta zirga-zirga. Ɗaya daga cikin waɗannan albarkatun zai yi aiki tare da sigar "canary", kuma na biyu zai yi aiki tare da tsayayyen sigar. A cikin wannan yanayin, zamu iya tsara adadin nau'ikan canary don rage yawan zirga-zirgar da ake buƙata don hidima. Idan, alal misali, kun fi son amfani da Yaml, to zai yi kama da wannan a 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.
Har ma ya fi sauƙi a yi tunanin wannan zaɓi ta amfani da kubectl, kuma a ciki
Automation na tura canary
Da farko, muna buƙatar taswirar taswirar Helm, wanda ya riga ya haɗa da albarkatun da muka tattauna a sama. Ya kamata yayi kama da wani abu kamar haka:
~/charts/app
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ └── service.yaml
└── values.yaml
Tushen ra'ayin Helm shine gudanar da sakin nau'ikan iri-iri. Sigar tsayayye shine babban reshen mu na tsarin aikin. Amma tare da Helm za mu iya tura sakin canary tare da lambar gwajin mu. Babban abu shine kula da musayar zirga-zirga tsakanin sigar barga da sakin canary. Za mu sarrafa duk waɗannan ta amfani da zaɓi na musamman:
selector:
app.kubernetes.io/name: myapp
albarkatun mu na "canary" da kwanciyar hankali na tura kayan aiki zasu nuna wannan lakabin akan kayayyaki. Idan an daidaita komai daidai, to, yayin aiwatar da sigar canary na taswirar taswirar Helm ɗin mu za mu ga cewa za a tura zirga-zirga zuwa sabbin kayan aikin da aka tura. Tsayayyen sigar wannan umarni zai yi kama da haka:
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
Yanzu bari mu duba mu Canary saki. Don tura sigar canary, muna buƙatar tuna abubuwa biyu. Dole ne sunan sakin ya bambanta don kada mu fitar da sabuntawa zuwa ga ingantaccen sigar yanzu. Dole ne sigar da tambarin su zama daban-daban domin mu iya tura wasu lambobi kuma mu gano bambance-bambance ta alamar albarkatu.
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
Shi ke nan! Idan kun yi ping ɗin sabis ɗin, zaku iya ganin cewa sabunta hanyoyin Canary yana tafiyar da zirga-zirga kawai wani ɓangare na lokaci.
Idan kuna neman tura kayan aikin atomatik waɗanda suka haɗa da dabarar da aka kwatanta, sannan kula da su
source: www.habr.com