Gelida Canary iyadoo la adeegsanayo Jenkins-X Istio Flagger
Gelida Canary
Waxaan rajeyneynaa inaad akhrido qaybtii kowaad, halkaas oo aan si kooban u sharaxnay waxa Canary la geeyo oo aanu tusnay sida loo hirgeliyo iyada oo la adeegsanayo ilaha caadiga ah ee Kubernetes.
Istio
Oo waxaan u qaadanaynaa in akhrinta maqaalkan aad hore u garan waxa uu yahay Istio. Haddii kale, markaa waad ka akhrisan kartaa halkan.
Codsiga imtixaannada
Mid kastaa wuxuu ka kooban yahay laba weel: codsigayaga iyo istio-proxy.
Waxaan isticmaali doonaa codsi fudud oo tijaabo ah oo leh frontend-nginx iyo dhabarka dambe ee python pods. Booska nginx wuxuu si fudud u weeci doonaa codsi kasta pod-dambe wuxuuna u shaqayn doonaa sidii wakiil. Faahfaahinta waxaa laga heli karaa yamladaha soo socda:
Markaan bilowno Gelintii ugu horeysay, waxaan aragnaa in sanduuqyada codsigayagu ay leeyihiin 2 weel oo keliya, taas oo ah, Istio sidecar ayaa hadda la hirgeliyay:
Oo waxaan sidoo kale ku aragnaa Istio Gateway Loadbalancer ee goobta magaca istio-system:
Jiilka taraafikada
Waxaan u isticmaali doonaa IP-ga soo socda si aan u abuurno taraafikada ay heli doonaan galalka hore ee loo sii gudbiyo gadaasha dambe:
while true; do curl -s --resolve 'frontend.istio-test:80:35.242.202.152' frontend.istio-test; sleep 0.1; done
Waxaan sidoo kale ku dari doonaa frontend.istio-test ku dir faylka martidayada.
Ka eeg Mesh iyada oo loo marayo Kiali
Waxaan rakibnay arjiga tijaabada iyo Istio oo ay la socdaan Baafinta, Grafana, Prometheus iyo Kiali (hoos ka eeg faahfaahinta). akhrinta mashruuca). Sidaa darteed waxaan u adeegsan karnaa Kiali:
istioctl dashboard kiali # admin:admin
Kiali wuxuu sawiraa taraafikada hadda dhex mara Mesh
Sida aan arki karno, 100% taraafikada waxay aadaa adeega hore, ka dibna waxay u socotaa geesaha hore ee leh sumadda v1, maadaama aan isticmaaleyno nginx proxy fudud oo u weeciya codsiyada adeega dhabarka, taas oo markaa u weecinaysa dhabarka dambe. oo leh sumad v1.
Hadda geynta Canary waxaa loo qaddarin karaa inay dhammaatay oo dhammaan taraafikada waxaa loo weeciyey v2:
Ku tijaabi Canary gacanta
Aynu nidhaahno hadda waxaan u dirnay 2% dhammaan codsiyada v10 dhabarka dambe. Maxaa dhacaya haddii aan rabno inaan gacanta ku tijaabino v2 si aan u hubinno in wax walba ay u shaqeeyaan sidii aan fileyno?
Waxaan ku dari karnaa xeer gaar ah oo u dhigma oo ku saleysan madax HTTP:
Hadda waxaan tixgelin doonaa ikhtiyaarka aan ku hayno nooca v2 ee hore iyo gadaalba. Labadaba, waxaanu cayimnay in 10% taraafikada ay tahay inay tagaan v2:
Waxaan aragnaa in v1 iyo v2 labadaba taraafikada hore marka loo eego 1/10 ilaa dhabarka v1 iyo v2.
Maxaa dhacaya haddii aan u baahanahay inaan u gudbino taraafikada hore-v2 kaliya ilaa dhabarka-v2 sababtoo ah kuma habboona v1? Si tan loo sameeyo, waxaanu dejin doonaa saamiga 1/10 ee hore, kaas oo xakameynaya waxa taraafikada u gala dhabarka-v2 iyadoo la adeegsanayo gorgortan sourceLabels :
Natiijo ahaan, waxaan helnaa waxa aan u baahanahay:
Kala duwanaanshaha habka Canary-ga buug-gacmeedka
Π qaybta koowaad Waxaanu ku samaynay geynta Canary si gacanta ah, anagoo adeegsanayna laba g8s. Halkaa waxaan ku xakameynay saamiga codsiyada anagoo bedelnay tirada nuqulada. Habkani wuu shaqeeyaa, laakiin wuxuu leeyahay cillado culus.
Istio waxay suurtogal ka dhigaysaa in la go'aamiyo saamiga codsiyada iyadoon loo eegin tirada nuqullada. Tani waxay ka dhigan tahay, tusaale ahaan, inaan isticmaali karno HPAs (Horizontal Pod Autoscalers) oo uma baahnid in lagu habeeyo iyadoo loo eegayo xaaladda hadda la geeyo Canary.
Natiijada
Istio si fiican buu u shaqeeyaa oo la wada isticmaalo Kiali waxay ka dhigaysaa isku-dar aad u xoog badan. Ku xiga liiskayga xiisaha ayaa isku darka Spinnaker iyo Istio ee automation-ka iyo falanqaynta Canary.