Cleachdadh Canary a’ cleachdadh Jenkins-X Istio Flagger
Nì sinn cleachdadh Canary le làimh tro GitOps agus cruthaichidh sinn / atharraichidh sinn prìomh ghoireasan Kubernetes. Tha an artaigil seo gu sònraichte airson ro-ràdh le mar a tha cleachdadh ag obair ann an Kubernetes Canary, leis gu bheil dòighean fèin-ghluasaid nas èifeachdaiche ann, air am bi sinn a’ beachdachadh anns na h-artaigilean a leanas.
Leis an ro-innleachd Canary, tha ùrachaidhean air an cur an sàs an-toiseach gu dìreach fo-sheata de luchd-cleachdaidh. Tro sgrùdadh, dàta log, deuchainn làimhe, no seanalan fios air ais eile, thèid an sgaoileadh a dhearbhadh mus tèid a leigeil ma sgaoil don h-uile neach-cleachdaidh.
Cleachdadh Kubernetes (ùrachadh leantainneach)
Tha an ro-innleachd bunaiteach airson Kubernetes Deployment na ùrachadh leantainneach, far a bheil àireamh sònraichte de pods air an cur air bhog le dreachan ùra de na h-ìomhaighean. Nam biodh iad air an cruthachadh gun duilgheadasan, thèid pods le seann dreachan de dhealbhan a thoirt gu crìch, agus thèid pods ùra a chruthachadh ann an co-shìnte.
GitOps
Bidh sinn a’ cleachdadh GitOps san eisimpleir seo oir tha sinn:
cleachdadh Git mar aon thobar fìrinn
bidh sinn a’ cleachdadh Git Operations airson togail is cleachdadh (chan eil feum air òrdughan a bharrachd air git tag / merge)
Eisimpleir:
Gabhamaid deagh chleachdadh - aon stòr a bhith againn airson còd tagraidh agus aon airson bun-structar.
Stòr-dàta tagraidh
Is e seo API Python + Flask gu math sìmplidh a thilleas freagairt mar JSON. Togaidh sinn am pasgan tro GitlabCI agus putaidh sinn an toradh gu Clàr Gitlab. Anns a’ chlàr tha dà dhreach fuasglaidh eadar-dhealaichte againn:
wuestkamp/k8s-deployment-example-app:v1
wuestkamp/k8s-deployment-example-app:v2
Is e an aon eadar-dhealachadh eatarra an atharrachadh anns an fhaidhle JSON a chaidh a thilleadh. Bidh sinn a’ cleachdadh an aplacaid seo gus faicinn cho furasta sa ghabhas dè an dreach leis a bheil sinn a’ conaltradh.
Stòr-dàta bun-structair
Anns an snèapan seo bidh sinn a’ cleachdadh tro GitlabCI gu Kubernetes, .gitlab-ci.yml coltas mar seo:
Thoir an aire nach eil mac-samhail sam bith aig app-deploy fhathast.
A 'coileanadh a' chiad chleachdadh
Gus tòiseachadh air a’ chiad chleachdadh, faodaidh tu loidhne-phìoban GitlabCI a thòiseachadh le làimh air a’ phrìomh mheur. Às deidh sin kubectl bu chòir na leanas a chuir a-mach:
Chì sinn app cleachdadh le 10 mac-samhail agus app-canary le 0. Tha LoadBalancer ann cuideachd às am faigh sinn cothrom tro curl tro IP a-muigh:
while true; do curl -s 35.198.149.232 | grep label; sleep 0.1; done
Chì sinn nach till an tagradh deuchainn againn ach “v1”.
Cur an gnìomh cleachdadh Canary
Ceum 1: leig a-mach dreach ùr airson cuid de luchd-cleachdaidh
Shuidhich sinn an àireamh de mhac-samhail gu 1 anns an fhaidhle deploy-canary.yaml agus san ìomhaigh dreach ùr:
Bidh sinn a’ putadh na h-atharrachaidhean sin air an stòr às an tòisich an cleachdadh (tro GitlabCI) agus mar thoradh air an sin:
Bidh an t-Seirbheis againn a’ comharrachadh an dà chleachdadh, leis gu bheil an tagraiche app aig gach fear. Mar thoradh air thuaiream bunaiteach Kubernetes, bu chòir dhuinn diofar fhreagairtean fhaicinn airson ~ 10% de dh’ iarrtasan:
Is e suidheachadh làithreach an tagraidh againn (GitOps, air a thoirt bho Git mar Stòr Singilte Fìrinn) làthaireachd dà chleachdadh le mac-samhail gnìomhach, aon airson gach dreach.
~ Bidh 10% de luchd-cleachdaidh a’ fàs eòlach air dreach ùr agus a’ dèanamh deuchainn air gun fhiosta. A-nis tha an t-àm ann sgrùdadh a dhèanamh airson mearachdan anns na logaichean agus dàta sgrùdaidh gus duilgheadasan a lorg.
Ceum 2: Sgaoil an dreach ùr a h-uile neach-cleachdaidh
Cho-dhùin sinn gun deach a h-uile càil gu math agus a-nis feumaidh sinn an dreach ùr a chuir a-steach don h-uile neach-cleachdaidh. Gus seo a dhèanamh bidh sinn dìreach ag ùrachadh deploy.yaml stàladh dreach ùr den ìomhaigh agus an àireamh de ath-bhualaidhean co-ionann ri 10. Ann deploy-canary.yaml chuir sinn an àireamh de mhac-samhail air ais gu 0. Às deidh an cleachdadh, bidh an toradh mar a leanas:
A 'togail suas
Dhòmhsa, le bhith a’ cleachdadh an cleachdadh le làimh bidh an dòigh seo a’ cuideachadh le bhith a’ tuigsinn cho furasta ‘s as urrainn dha a rèiteachadh le bhith a’ cleachdadh k8s. Leis gu bheil Kubernetes a’ leigeil leat a h-uile càil ùrachadh tro API, faodar na ceumannan sin a dhèanamh fèin-ghluasadach tro sgriobtaichean.
Is e rud eile a dh’ fheumar a chuir an gnìomh àite inntrigidh deuchainniche (LoadBalancer no tro Ingress) tro nach fhaighear ach an dreach ùr. Faodar a chleachdadh airson brobhsadh làimhe.
Ann an artaigilean san àm ri teachd, bheir sinn sùil air fuasglaidhean fèin-ghluasadach eile a chuireas an gnìomh a’ mhòr-chuid de na rinn sinn.