Cleachdadh Canary a 'cleachdadh Jenkins-X Istio Flagger
Cleachdadh Canary
Tha sinn an dòchas gun leugh thu a ’chiad phàirt, far an do mhìnich sinn gu h-aithghearr dè a th’ ann an cleachdadh Canary agus sheall sinn mar a bu chòir an cur an gnìomh a’ cleachdadh goireasan àbhaisteach Kubernetes.
Istio
Agus tha sinn a’ gabhail ris le bhith a’ leughadh an artaigil seo gu bheil fios agad mu thràth dè a th’ ann an Istio. Mura h-eil, faodaidh tu leughadh mu dheidhinn an seo.
Iarrtas airson deuchainnean
Tha dà shoitheach anns gach pod: an tagradh againn agus istio-proxy.
Cleachdaidh sinn tagradh deuchainn sìmplidh le pods python frontend-nginx agus backend. Bidh am pod nginx dìreach ag ath-stiùireadh gach iarrtas chun pod backend agus ag obair mar neach-ionaid. Gheibhear mion-fhiosrachadh anns na yamls a leanas:
Ma tha thu airson mo eisimpleir a leantainn agus an tagradh deuchainn seo a chleachdadh thu fhèin, faic leughadh pròiseact.
Cleachdadh Tòiseachaidh
Nuair a chuireas sinn a’ chiad cleachdadh air bhog, chì sinn nach eil ann am pods an tagraidh againn ach 2 shoitheach, is e sin, tha Istio sidecar dìreach ga chuir an gnìomh:
Agus chì sinn cuideachd Istio Gateway Loadbalancer anns an ainm-àite istio-system:
Gineadh trafaic
Cleachdaidh sinn an IP a leanas gus trafaic a ghineadh a gheibh na pods aghaidh agus a chuir air adhart gu na pods backend:
while true; do curl -s --resolve 'frontend.istio-test:80:35.242.202.152' frontend.istio-test; sleep 0.1; done
Cuiridh sinn cuideachd frontend.istio-test don fhaidhle aoigheachd againn.
Thoir sùil air mogal tro Kiali
Chuir sinn a-steach an tagradh deuchainn agus Istio còmhla ri Tracing, Grafana, Prometheus agus Kiali (faic gu h-ìosal airson mion-fhiosrachadh). leughadh pròiseact). Mar sin is urrainn dhuinn Kiali a chleachdadh tro:
istioctl dashboard kiali # admin:admin
Bidh Kiali a’ faicinn trafaic gnàthach tro Mesh
Mar a chì sinn, bidh 100% den trafaic a’ dol chun t-seirbheis aghaidh, an uairsin gu na pods aghaidh le leubail v1, leis gu bheil sinn a’ cleachdadh proxy nginx sìmplidh a bhios ag ath-stiùireadh iarrtasan chun t-seirbheis backend, a bhios e fhèin gan ath-stiùireadh gu na pods backend. le leubail v1.
Bidh Kiali ag obair gu math le Istio agus a’ toirt seachad fuasgladh tairgse bogsa mogal. Dìreach sgoinneil.
Cleachdadh Canary
Tha dà chleachdadh k8s air an backend againn mu thràth, aon airson v1 agus aon airson v2. A-nis chan fheum sinn ach innse do Istio ceudad sònraichte de dh’ iarrtasan a chuir air adhart gu v2.
Ceum 1: 10%
Agus chan eil againn ach a bhith ag atharrachadh cuideam an t-Seirbheis Mas-fhìor a-steach istio.yaml:
A-nis faodar beachdachadh air cleachdadh Canary coileanta agus thèid an trafaic gu lèir ath-stiùireadh gu v2:
Dèan deuchainn air Canary le làimh
Canaidh sinn gu bheil sinn a-nis a’ cur 2% de na h-iarrtasan uile gu backend v10. Dè ma tha sinn airson v2 a dhearbhadh le làimh gus dèanamh cinnteach gu bheil a h-uile càil ag obair mar a bha dùil againn?
Is urrainn dhuinn riaghailt maidsidh sònraichte a chuir ris stèidhichte air cinn HTTP:
A-nis a’ cleachdadh curl is urrainn dhuinn iarrtas v2 a sparradh le bhith a’ cur a’ chinn:
Bidh iarrtasan gun cheann-cinn fhathast air an stiùireadh leis a’ cho-mheas 1/10:
Canary airson dà dhreach eisimeileach
A-nis beachdaichidh sinn air an roghainn far a bheil dreach v2 againn airson an dà chuid aghaidh agus backend. Airson gach cuid, shònraich sinn gum bu chòir 10% den trafaic a dhol gu v2:
Chì sinn gu bheil frontend v1 agus v2 an dà chuid trafaic air adhart aig co-mheas de 1/10 gu backend v1 agus v2.
Dè nam feumadh sinn trafaic a chuir air adhart bho frontend-v2 a-mhàin gu backend-v2 leis nach eil e co-chòrdail ri v1? Gus seo a dhèanamh, suidhichidh sinn co-mheas 1/10 airson an aghaidh, a bhios a’ cumail smachd air na bhios trafaic a’ faighinn chun backend-v2 a’ cleachdadh co-rèiteachadh sourceLabels :
В a ’chiad phàirt Rinn sinn cleachdadh Canary le làimh, cuideachd a’ cleachdadh dà chleachdadh k8s. An sin rinn sinn smachd air co-mheas nan iarrtasan le bhith ag atharrachadh an àireamh de mhac-samhail. Tha an dòigh-obrach seo ag obair, ach tha fìor eas-bhuannachdan ann.
Tha Istio ga dhèanamh comasach co-mheas nan iarrtasan a dhearbhadh ge bith dè an àireamh de mhac-samhail a th’ ann. Tha seo a’ ciallachadh, mar eisimpleir, gun urrainn dhuinn HPAn (Horizontal Pod Autoscalers) a chleachdadh agus nach fheum sinn a bhith air an rèiteachadh a rèir staid gnàthach cleachdadh Canary.
An toradh
Tha Istio ag obair gu math agus ga chleachdadh còmhla ri Kiali a’ dèanamh measgachadh fìor chumhachdach. An ath rud air an liosta ùidhean agam tha a bhith a’ cothlamadh Spinnaker le Istio airson fèin-ghluasad agus anailisean Canary.