Ro-innleachdan cleachdadh ann an Kubernetes: gluasad, ath-chruthachadh, gorm / uaine, canary, dorcha (deuchainn A / B)

Thoir an aire eadar-theangachadh: Tha an tar-shealladh seo bho Weaveworks a’ toirt a-steach na ro-innleachdan sgaoileadh tagraidh as mòr-chòrdte agus a ’sealltainn mar as urrainnear an fheadhainn as adhartaiche a chuir an gnìomh a’ cleachdadh gnìomhaiche Kubernetes Flagger. Tha e sgrìobhte ann an cànan sìmplidh agus tha diagraman lèirsinneach ann a leigeas le eadhon innleadairean ùra a’ chùis a thuigsinn.

Ro-innleachdan cleachdadh ann an Kubernetes: gluasad, ath-chruthachadh, gorm / uaine, canary, dorcha (deuchainn A / B)
Tha an diagram air a thoirt bho lèirmheas eile ro-innleachdan sgaoileadh air an dèanamh ann am Container Solutions

Is e aon de na dùbhlain as motha ann a bhith a’ leasachadh thagraidhean dùthchasach sgòthan an-diugh luathachadh cleachdadh. Ann an dòigh-obrach microservices, bidh luchd-leasachaidh mu thràth ag obair le agus a’ dealbhadh thagraidhean gu tur modular, a ’leigeil le diofar sgiobaidhean còd a sgrìobhadh aig an aon àm agus atharrachaidhean a dhèanamh air an tagradh.

Tha na buannachdan a leanas aig cleachdadh nas giorra agus nas trice:

  • Tha an ùine gu margaidh air a lughdachadh.
  • Bidh feartan ùra a’ ruighinn luchd-cleachdaidh nas luaithe.
  • Bidh fios air ais bho luchd-cleachdaidh a’ ruighinn an sgioba leasachaidh nas luaithe. Tha seo a’ ciallachadh gun urrainn don sgioba feartan a chur ris agus cùisean a chàradh nas luaithe.
  • Bidh misneachd luchd-leasachaidh ag àrdachadh: tha barrachd fheartan ann an leasachadh nas spòrsail a bhith ag obair leotha.


Ach mar a bhios tricead sgaoilidhean a’ dol am meud, tha na cothroman air droch bhuaidh a thoirt air earbsachd an tagraidh no eòlas neach-cleachdaidh a’ dol am meud cuideachd. Sin as coireach gu bheil e cudromach do sgiobaidhean gnìomhachd agus DevOps pròiseasan a thogail agus ro-innleachdan cleachdadh a riaghladh ann an dòigh a lughdaicheas cunnart don toradh agus don luchd-cleachdaidh. (Faodaidh tu barrachd ionnsachadh mu dheidhinn fèin-ghluasad loidhne-phìoban CI / CD an seo.)

Anns an dreuchd seo, bruidhnidh sinn air diofar ro-innleachdan cleachdadh ann an Kubernetes, a ’toirt a-steach cleachdadh leantainneach agus dòighean nas adhartaiche leithid sgaoileadh canary agus na h-atharrachaidhean aca.

Ro-innleachdan cleachdadh

Tha grunn sheòrsaichean de ro-innleachdan cleachdadh ann as urrainn dhut a chleachdadh a rèir an amas agad. Mar eisimpleir, is dòcha gum feum thu atharrachaidhean a dhèanamh air àrainneachd sònraichte airson tuilleadh dheuchainnean, no air fo-sheata de luchd-cleachdaidh / teachdaichean, no is dòcha gum feum thu beagan deuchainn cleachdaiche a dhèanamh mus dèan thu feart poblach.

Rolladh (cleachdadh mean air mhean, “rollach”)

Is e seo an ro-innleachd cleachdadh àbhaisteach ann an Kubernetes. Bidh e mean air mhean, aon às deidh aon, a’ dol an àite pods leis an t-seann dreach den tagradh le pods leis an dreach ùr - às aonais ùine downt cnuasachaidh.

Ro-innleachdan cleachdadh ann an Kubernetes: gluasad, ath-chruthachadh, gorm / uaine, canary, dorcha (deuchainn A / B)

Bidh Kubernetes a’ feitheamh gus am bi pods ùra deiseil airson obrachadh (a’ cumail sùil orra a’ cleachdadh deuchainnean ullachaidh), mus tòisich thu air na seann fheadhainn a roiligeadh suas. Ma thachras duilgheadas, faodar stad a chuir air an ùrachadh leantainneach seo gun stad a chuir air a’ bhuidheann gu lèir. Anns an fhaidhle YAML a’ toirt cunntas air an t-seòrsa cleachdadh, tha an ìomhaigh ùr a’ dol an àite an t-seann ìomhaigh:

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: 8080

Faodar na paramadairean ùrachadh rollaidh a shònrachadh anns an fhaidhle follaiseach:

spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
       maxSurge: 25%
       maxUnavailable: 25%  
  template:
  ...

Ath-chruthachadh

Anns an t-seòrsa cleachdadh as sìmplidh seo, thèid seann pods a mharbhadh aig an aon àm agus feadhainn ùra a chur nan àite:

Ro-innleachdan cleachdadh ann an Kubernetes: gluasad, ath-chruthachadh, gorm / uaine, canary, dorcha (deuchainn A / B)

Tha an taisbeanadh co-fhreagarrach a 'coimhead rudeigin mar seo:

spec:
  replicas: 3
  strategy:
    type: Recreate
  template:
  ...

Gorm / Uaine (cleachdadh gorm-uaine)

Tha an ro-innleachd cleachdadh gorm-uaine (ris an canar uaireannan dearg/dubh) a’ toirt a-steach cleachdadh aig an aon àm de na seann dreachan (uaine) agus dreachan ùra (gorm) den tagradh. Às deidh dhaibh an dà dhreach a phostadh, tha cothrom aig luchd-cleachdaidh cunbhalach air an fhear uaine, fhad ‘s a tha am fear gorm ri fhaighinn airson an sgioba QA gus deuchainnean a dhèanamh fèin-ghluasadach tro sheirbheis air leth no air adhart port dìreach:

Ro-innleachdan cleachdadh ann an Kubernetes: gluasad, ath-chruthachadh, gorm / uaine, canary, dorcha (deuchainn A / B)

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: awesomeapp-02
spec:
  template:
    metadata:
      labels:
        app: awesomeapp
        version: "02"

Às deidh an dreach gorm (ùr) a bhith air a dhearbhadh agus a leigeil ma sgaoil air aontachadh, bidh an t-seirbheis ag atharrachadh thuige, agus tha an dreach uaine (seann) air a phasgadh:

apiVersion: v1
kind: Service
metadata:
  name: awesomeapp
spec:
  selector:
    app: awesomeapp
    version: "02"
...

Canary (cleachdadh canary)

Tha sgaoileadh canary coltach ri sgaoileadh gorm-uaine, ach tha smachd agus cleachdadh nas fheàrr aca adhartach dòigh-obrach ceum air cheum. Tha an seòrsa seo a’ toirt a-steach grunn ro-innleachdan eadar-dhealaichte, a’ gabhail a-steach cur air bhog “stealth” agus deuchainn A/B.

Tha an ro-innleachd seo air a chleachdadh nuair a tha feum air gnìomhachd ùr fheuchainn, mar as trice air cùl an tagraidh. Is e brìgh an dòigh-obrach dà sheirbheisiche cha mhòr co-ionann a chruthachadh: tha aon a ’frithealadh cha mhòr a h-uile neach-cleachdaidh, agus am fear eile, le gnìomhan ùra, a’ frithealadh dìreach fo-bhuidheann beag de luchd-cleachdaidh, às deidh sin bidh toraidhean an cuid obrach air an coimeas. Ma thèid a h-uile càil às aonais mhearachdan, thèid an dreach ùr a sgaoileadh mean air mhean chun bhun-structair gu lèir.

Ged a ghabhas an ro-innleachd seo a chuir an gnìomh a-mhàin le bhith a ’cleachdadh Kubernetes, a’ cur feadhainn ùra an àite seann pods, tha e tòrr nas goireasaiche agus nas sìmplidh mogal seirbheis mar Istio a chleachdadh.

Mar eisimpleir, is dòcha gu bheil dà thaisbeanadh eadar-dhealaichte agad ann an Git: foillseachadh cunbhalach leis an taga 0.1.0 agus canary a’ nochdadh leis an taga 0.2.0. Le bhith ag atharrachadh na cuideaman ann am foillseachadh geata brìgheil Istio, faodaidh tu smachd a chumail air cuairteachadh trafaic eadar an dà chleachdadh seo:

Ro-innleachdan cleachdadh ann an Kubernetes: gluasad, ath-chruthachadh, gorm / uaine, canary, dorcha (deuchainn A / B)

Airson stiùireadh ceum air cheum air cur an gnìomh cleachdadh canary a’ cleachdadh Istio, faic Sruth-obrach GitOps le Istio. (Thoir an aire. eadar-theangachadh.: Dh’eadar-theangaich sinn cuideachd stuth mu sgaoileadh canary gu Istio an seo.)

Cleachdaidhean Canary le Weaveworks Flagger

Flagger weaveworks a’ leigeil leat sgaoileadh canary a riaghladh gu furasta agus gu h-èifeachdach.

Bidh Flagger gu fèin-ghluasadach ag obair còmhla riutha. Bidh e a’ cleachdadh Istio no AWS App Mesh gus trafaic a shlighe agus atharrachadh, agus metrics Prometheus gus na toraidhean a sgrùdadh. A bharrachd air an sin, faodar cur ris a’ mhion-sgrùdadh air cleachdadh canary le bileagan-lìn gus deuchainnean gabhail, deuchainnean luchdan, agus seòrsa sam bith eile de sgrùdaidhean a dhèanamh.

Stèidhichte air cleachdadh Kubernetes agus, ma tha sin riatanach, sgèileadh pods gu còmhnard (HPA), bidh Flagger a’ cruthachadh sheataichean de nithean (cleachdadh Kubernetes, seirbheisean ClusterIP agus seirbheisean brìgheil Istio no App Mesh) gus cleachdadh canary a mhion-sgrùdadh agus a bhuileachadh:

Ro-innleachdan cleachdadh ann an Kubernetes: gluasad, ath-chruthachadh, gorm / uaine, canary, dorcha (deuchainn A / B)

Cur an gnìomh an lùb smachd (lùb smachd), Mean air mhean bidh Flagger ag atharrachadh trafaic chun t-seirbheisiche canary, agus aig an aon àm a’ tomhas prìomh mheatairean coileanaidh leithid an àireamh sa cheud de dh’ iarrtasan HTTP soirbheachail, fad cuibheasach iarrtas, agus slàinte pod. Stèidhichte air mion-sgrùdadh KPI (Prìomh Chomharran Coileanaidh), bidh an canary a’ fàs no a’ tuiteam às a chèile agus tha toraidhean an sgrùdaidh air am foillseachadh ann an Slack. Gheibhear tuairisgeul agus taisbeanadh den phròiseas seo anns an stuth Lìbhrigeadh adhartach airson App Mesh.

Ro-innleachdan cleachdadh ann an Kubernetes: gluasad, ath-chruthachadh, gorm / uaine, canary, dorcha (deuchainn A / B)

Cleachdaidhean dorcha (falaichte) no A/B

Tha cleachdadh stealth na atharrachadh eile air an ro-innleachd canary (leis an t-slighe, faodaidh Flagger obrachadh leis cuideachd). Is e an eadar-dhealachadh eadar cleachdadh stealth agus canary gu bheil cleachdadh stealth a’ dèiligeadh ris an aghaidh seach an backend mar cleachdadh canary.

Is e ainm eile airson nan cleachdadh sin deuchainn A/B. An àite am feart ùr a thoirt don h-uile neach-cleachdaidh, chan eil e air a thabhann ach do chuibhreann cuibhrichte dhiubh. Mar as trice, chan eil an luchd-cleachdaidh sin mothachail gu bheil iad nan luchd-dearbhaidh adhartach (mar sin am facal “cleachdadh stealth”).

A’ cleachdadh suidsichean comas-gnìomh (Toggle feart) agus innealan eile, faodaidh tu sùil a chumail air mar a bhios luchd-cleachdaidh ag eadar-obrachadh leis an fheart ùr, ge bith a bheil iad an sàs ann, no a bheil an eadar-aghaidh cleachdaiche ùr troimh-a-chèile, agus seòrsachan meatrach eile.

Ro-innleachdan cleachdadh ann an Kubernetes: gluasad, ath-chruthachadh, gorm / uaine, canary, dorcha (deuchainn A / B)

Cleachdadh Flagger agus A/B

A bharrachd air slighe stèidhichte air cuideam, faodaidh Flagger cuideachd trafaic a stiùireadh chun t-seirbheisiche canary stèidhichte air paramadairean HTTP. Ann an deuchainn A/B, faodaidh tu bannan-cinn no briosgaidean HTTP a chleachdadh gus cuimseachadh air roinn sònraichte de luchd-cleachdaidh. Tha seo gu sònraichte èifeachdach a thaobh tagraidhean aghaidh a dh’ fheumas ceangal seisean ris an fhrithealaiche (dàimh seisean). Gheibhear tuilleadh fiosrachaidh anns na sgrìobhainnean Flagger.

Tha an t-ùghdar a’ toirt taing Stefan Prodan, Einnseanair Weaveworks (agus neach-cruthachaidh Flagger), airson na pàtrain cleachdaidh iongantach sin uile.

PS bhon eadar-theangair

Leugh cuideachd air ar blog:

Source: www.habr.com

Cuir beachd ann