Phawula inguqulelo: Olu qwalaselo luvela kwi-Weaveworks lwazisa ezona zicwangciso zithandwayo zokukhutshwa kwesicelo kwaye lubonisa ukuba ezona ziphambili zinokuphunyezwa njani kusetyenziswa umqhubi we-Kubernetes Flagger. Ibhalwe ngolwimi olulula kwaye inemifanekiso ebonakalayo evumela neenjineli ezisaqalayo ukuba ziwuqonde lo mba.

Umzobo uthathwa kwi izicwangciso zokukhutshwa ezenziwe kwi-Container Solutions
Enye yeengxaki ezinkulu ekuphuhliseni izicelo zendalo zamafu namhlanje kukukhawulezisa ukuthunyelwa. Kwindlela ye-microservices, abaphuhlisi sele besebenza kunye kwaye bayile izicelo zeemodyuli ngokupheleleyo, bevumela amaqela ahlukeneyo ukuba abhale ikhowudi ngaxeshanye kwaye enze utshintsho kwisicelo.
Ukusasazwa okufutshane nangaphezulu kunezi nzuzo zilandelayo:
- Ixesha lokuthengisa liyancitshiswa.
- Iimpawu ezintsha zifikelela kubasebenzisi ngokukhawuleza.
- Ingxelo yomsebenzisi ifikelela kwiqela lophuhliso ngokukhawuleza. Oku kuthetha ukuba iqela linokongeza iimpawu kwaye lilungise iingxaki ngokukhawuleza.
- Ukuziphatha komphuhlisi kuyanda: amanqaku amaninzi kuphuhliso kuyonwabisa ngakumbi ukusebenza nawo.
Kodwa njengoko ukukhutshwa rhoqo kusanda, amathuba okuba nefuthe elibi ekuthembekeni kwesicelo okanye amava omsebenzisi nawo anda. Yiyo loo nto kubalulekile ukuba imisebenzi kunye namaqela e-DevOps akhe iinkqubo kwaye alawule izicwangciso zokusasaza ngendlela yokunciphisa umngcipheko kwimveliso nakubasebenzisi. (Unokufunda ngakumbi malunga neCI/CD yombhobho ozenzekelayo .)
Kule post, siza kuxoxa ngezicwangciso ezahlukeneyo zokusasaza kwi-Kubernetes, kubandakanywa ukuthunyelwa kunye neendlela eziphambili ezifana nokukhutshwa kwe-canary kunye nokwahluka kwazo.
Izicwangciso zokusasaza
Kukho iintlobo ezininzi ezahlukeneyo zezicwangciso zokuthunyelwa onokuzisebenzisa ngokuxhomekeke kwinjongo yakho. Umzekelo, unokufuna ukwenza utshintsho kwindawo ethile ukuze uvavanywe ngakumbi, okanye kwiseti esezantsi yabasebenzisi/abaxumi, okanye unokufuna ukwenza uvavanyo lomsebenzisi olulinganiselweyo phambi kokuba wenze uphawu. uluntu.
Ukuqengqeleka (kancinci, "ukuqengqeleka" ukusasazwa)
Esi sisicwangciso esiqhelekileyo sokuthunyelwa kwi-Kubernetes. Ngokuthe ngcembe, nganye nganye, ithatha indawo yeepods ngoguqulelo oludala lwesicelo kunye neepods ngoguqulelo olutsha - ngaphandle kwexesha lokuphumla leqela.

I-Kubernetes ilinda de ii-pods ezintsha zilungele ukusebenza (izijonga usebenzisa ), phambi kokuba uqale ukusonga ezindala. Ukuba ingxaki yenzeka, olu hlaziyo luqengqelekayo lunokupheliswa ngaphandle kokumisa iqela lonke. Kwifayile ye-YAML echaza uhlobo lobeko, umfanekiso omtsha uthatha indawo yomfanekiso omdala:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: awesomeapp
spec:
replicas: 3
template:
metadata:
labels:
app: awesomeapp
spec:
containers:
- name: awesomeapp
image: imagerepo-user/awesomeapp:new
ports:
- containerPort: 8080Iiparamitha zohlaziyo eziqengqelekayo zinokuchazwa kwifayile ye-manifest:
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
template:
...
Yenza kwakhona
Kolu hlobo lulula lokuthunyelwa, iipods ezindala zibulawa zonke ngaxeshanye kwaye zitshintshwe ezintsha:

I-manifest ehambelanayo ibonakala ngolu hlobo:
spec:
replicas: 3
strategy:
type: Recreate
template:
...Blue/Green (blue-green deployments)
Isicwangciso sokusasazwa kweblue-green (ngamanye amaxesha ikwabizwa ngokuba bomvu / emnyama) ibandakanya ukuhanjiswa kwangaxeshanye kwezinto ezindala (eziluhlaza) kunye nentsha (eluhlaza okwesibhakabhaka) yesicelo. Emva kokuthumela zombini iinguqulelo, abasebenzisi abaqhelekileyo banokufikelela kwindawo eluhlaza, ngelixa i-blue blue ifumaneka kwiqela le-QA ukuba lizenzele iimvavanyo ngenkonzo eyahlukileyo okanye ukuthunyelwa kwe-port ngqo:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: awesomeapp-02
spec:
template:
metadata:
labels:
app: awesomeapp
version: "02"Emva kokuba inguqulelo eluhlaza okwesibhakabhaka (entsha) ivavanyiwe kwaye ukukhutshwa kwayo kuvunyiwe, inkonzo itshintshela kuyo, kwaye inguqulelo eluhlaza (endala) isongiwe:
apiVersion: v1
kind: Service
metadata:
name: awesomeapp
spec:
selector:
app: awesomeapp
version: "02"
...I-Canary (ukuthunyelwa kwi-canary)
Ukukhutshwa kweCanary kufana nokukhutshwa okuluhlaza okwesibhakabhaka, kodwa kunolawulo olungcono kunye nokusetyenziswa indlela inyathelo ngenyathelo. Olu hlobo lubandakanya izicwangciso ezininzi ezahlukeneyo, kubandakanywa ukuqaliswa kwe-"stealth" kunye novavanyo lwe-A/B.
Esi sicwangciso sisetyenziswa xa kukho imfuneko yokuzama umsebenzi omtsha, ngokuqhelekileyo kwi-backend yesicelo. Undoqo wendlela yokwenza iiseva ezimbini eziphantse zifane: enye ikhonza phantse bonke abasebenzisi, kwaye enye, ngemisebenzi emitsha, isebenza kuphela iqela elincinci labasebenzisi, emva koko iziphumo zomsebenzi wabo zithelekiswe. Ukuba yonke into ihamba ngaphandle kweempazamo, inguqulelo entsha ikhutshwa ngokuthe ngcembe kuyo yonke isiseko.
Nangona esi sicwangciso sinokuphunyezwa kuphela kusetyenziswa i-Kubernetes, ukutshintsha iipod ezindala kunye nezintsha, kulula ngakumbi kwaye kulula ukusebenzisa i-mesh yenkonzo efana ne-Istio.
Umzekelo, unokuba nemiboniso emibini eyahlukeneyo kwi-Git: i-manifest eqhelekileyo enethegi engu-0.1.0 kunye ne-canary manifest ene-tag 0.2.0. Ngokutshintsha iintsimbi kwi-Istio virtual gateway manifest, unokulawula usasazo lwetrafikhi phakathi koku kuthunyelwa kubini:

Ukufumana isikhokelo sesinyathelo ngesinyathelo sokuphumeza ukuthunyelwa kwe-canary usebenzisa i-Istio, bona . (Phawula. transl.: Sikwaguqulele imathiriyeli emalunga nokukhutshwa kwecanary kwi-Istio .)
Ukuhanjiswa kweCanary kunye ne-Weaveworks Flagger
ikuvumela ukuba ulawule ngokulula ukukhutshwa kwecanary.
Iiflegi zisebenza kunye nabo. Isebenzisa i-Istio okanye i-AWS App Mesh umzila kunye nokutshintsha itrafikhi, kunye ne-Prometheus metrics ukuhlalutya iziphumo. Ukongeza, uhlalutyo lwe-canary deployments lunokuxhaswa kunye ne-webhooks ukwenza iimvavanyo zokwamkelwa, iimvavanyo zomthwalo, kunye naluphi na olunye uhlobo lokuhlola.
Ngokusekwe kwi-Kubernetes deployment kwaye, ukuba kuyimfuneko, ukukala okuthe tyaba kweepods (HPA), iFlagger idala iiseti zezinto (i-Kubernetes deployments, iinkonzo ze-ClusterIP kunye ne-Istio okanye i-App Mesh ye-virtual services) ukuhlalutya kunye nokuphumeza ukuthunyelwa kwe-canary:

Ukuphumeza iluphu yolawulo (lawula iluphu), I-Flagger itshintsha ngokuthe ngcembe i-traffic kwi-server ye-canary, ngelixa ngaxeshanye ilinganisa imilinganiselo yokusebenza engundoqo njengepesenti yezicelo eziphumeleleyo ze-HTTP, ubude besicelo esiphakathi, kunye nempilo ye-pod. Ngokusekelwe kuhlalutyo lwe-KPI (Izikhombisi zeNtsebenzo eziPhambili), i-canary ikhula okanye iwa kwaye iziphumo zohlalutyo zipapashwa kwi-Slack. Inkcazo kunye nomboniso wale nkqubo inokufumaneka kwizinto eziphathekayo .

Mnyama (efihliweyo) okanye i-A/B ukuthunyelwa
Ukuthunyelwa kwe-Stealth yenye inguqu yeqhinga le-canary (leyo, ngendlela, i-Flagger inokusebenza nayo). Umahluko phakathi kwe-stealth kunye ne-canary deployments kukuba i-stealth deployments ijongene ne-frontend kunokuba i-backend efana ne-canary deployments.
Elinye igama lala kuthunyelwa luvavanyo lwe-A/B. Endaweni yokwenza into entsha ifumaneke kubo bonke abasebenzisi, inikezelwa kuphela kwinxalenye encinci yabo. Ngokwesiqhelo, aba basebenzisi abazi ukuba bangoovulindlela abavavanyi (kungoko igama elithi "ukusasazwa ngokufihlakeleyo").
Ukusebenzisa iiswitshi zokusebenza (Inqaku lokuguqula) kunye nezinye izixhobo, unokubeka iliso kwindlela abasebenzisi abanxibelelana ngayo nenqaku elitsha, nokuba babandakanyeka kulo, okanye bafumanisa ukuba ujongano lomsebenzisi omtsha lubhidekisa, kunye nezinye iintlobo zeemethrikhi.

Iiflegi kunye ne-A/B ukusasazwa
Ukongeza kwindlela esekelwe kubunzima, i-Flagger inokuphinda ilandele i-traffic kwi-canary server ngokusekelwe kwiiparamitha ze-HTTP. Kuvavanyo lwe-A/B, ungasebenzisa iiheader zeHTTP okanye iikuki ukujolisa kwicandelo elithile labasebenzisi. Oku kusebenza ngokukodwa kwimeko yezicelo ezingaphambili ezifuna ukubophelela kweseshoni kumncedisi (ubudlelwane beseshoni). Ulwazi oluthe kratya lunokufumaneka kuxwebhu lweFlagi.
Umbhali uvakalisa umbulelo , Injineli yeWeaveworks (kunye nomdali weFlegi), kuzo zonke ezi ndlela zokusasazwa ezimangalisayo.
PS evela kumguquleli
Funda nakwibhlog yethu:
- «";
- «";
- «";
- «».
umthombo: www.habr.com
