Amasu okusebenzisa e-Kubernetes: ukugoqa, dala kabusha, okuluhlaza okwesibhakabhaka/okuluhlaza, i-canary, emnyama (ukuhlolwa kwe-A/B)

Qaphela ukuhumusha: Lokhu kubuka konke okuvela ku-Weaveworks kwethula amasu okukhishwa kohlelo lokusebenza adume kakhulu futhi kukhombisa ukuthi lawo athuthuke kakhulu angasetshenziswa kanjani kusetshenziswa u-opharetha we-Kubernetes Flagger. Ibhalwe ngolimi olulula futhi iqukethe imidwebo ebonakalayo evumela ngisho nonjiniyela abasafufusa ukuthi baqonde udaba.

Amasu okusebenzisa e-Kubernetes: ukugoqa, dala kabusha, okuluhlaza okwesibhakabhaka/okuluhlaza, i-canary, emnyama (ukuhlolwa kwe-A/B)
Umdwebo uthathwe ku okunye ukubuyekeza amasu okukhipha enziwe ku-Container Solutions

Enye yezinselelo ezinkulu ekuthuthukiseni izinhlelo zokusebenza zomdabu zamafu namuhla ukusheshisa ukuthunyelwa. Ngendlela ye-microservices, abathuthukisi sebevele basebenza futhi futhi baklama izinhlelo zokusebenza eziyi-modular ngokuphelele, okuvumela amaqembu ahlukene ukuthi abhale kanyekanye ikhodi futhi enze izinguquko kuhlelo lokusebenza.

Ukuthunyelwa okufushane nokuvamile kunezinzuzo ezilandelayo:

  • Isikhathi sokumaketha sincishisiwe.
  • Izici ezintsha zifinyelela kubasebenzisi ngokushesha.
  • Impendulo yomsebenzisi ifinyelela ithimba lokuthuthukisa ngokushesha. Lokhu kusho ukuthi ithimba lingangeza izici futhi lilungise izinkinga ngokushesha okukhulu.
  • Isimilo sikanjiniyela siyakhula: izici eziningi ekuthuthukisweni zijabulisa kakhulu ukusebenza nazo.


Kodwa njengoba imvamisa yokukhishwa ikhula, amathuba okuba nomthelela omubi ekuthembekeni kohlelo lokusebenza noma ulwazi lomsebenzisi nawo anda. Kungakho kubalulekile ukuthi imisebenzi namathimba e-DevOps akhe izinqubo futhi aphathe amasu okuthunyelwa ngendlela enciphisa ubungozi kumkhiqizo nakubasebenzisi. (Ungafunda kabanzi mayelana ne-CI/CD pipeline automation lapha.)

Kulokhu okuthunyelwe, sizoxoxa ngamasu ahlukahlukene okuthunyelwa e-Kubernetes, okuhlanganisa ukuthunyelwa okuqengqelekayo nezindlela ezithuthuke kakhulu njengokukhishwa kwe-canary nokuhluka kwazo.

Amasu okusabalalisa

Kunezinhlobo eziningana ezahlukene zamasu okusebenzisa ongazisebenzisa kuye ngomgomo wakho. Isibonelo, ungase udinge ukwenza izinguquko endaweni ethile ukuze uphinde uhlole, noma kusethi yabasebenzisi/amaklayenti, noma kungase kudingeke wenze ukuhlola okulinganiselwe komsebenzisi ngaphambi kokwenza isici. umphakathi.

Rolling (kancane kancane, "rolling" ukuthunyelwa)

Leli isu elijwayelekile lokusebenzisa ku-Kubernetes. Kancane kancane, ngayinye ngayinye, ishintsha ama-pods ngenguqulo yakudala yohlelo lokusebenza ngama-pods ngenguqulo entsha - ngaphandle kokuphumula kweqoqo.

Amasu okusebenzisa e-Kubernetes: ukugoqa, dala kabusha, okuluhlaza okwesibhakabhaka/okuluhlaza, i-canary, emnyama (ukuhlolwa kwe-A/B)

U-Kubernetes ulinda kuze kube yilapho ama-pods amasha eselungele ukusebenza (ewahlola usebenzisa ukuhlolwa kokulungela), ngaphambi kokuba uqale ukugoqa ezindala. Uma inkinga yenzeka, lesi sibuyekezo singanqanyulwa ngaphandle kokumisa iqoqo lonke. Efayeleni le-YAML elichaza uhlobo lokuphakelwa, isithombe esisha singena esikhundleni sesithombe esidala:

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

Amapharamitha wokubuyekeza i-rollover angacaciswa kufayela le-manifest:

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

Dala kabusha

Kulolu hlobo olulula lokusatshalaliswa, ama-pods amadala abulawa ngesikhathi esisodwa futhi athathelwa indawo amasha:

Amasu okusebenzisa e-Kubernetes: ukugoqa, dala kabusha, okuluhlaza okwesibhakabhaka/okuluhlaza, i-canary, emnyama (ukuhlolwa kwe-A/B)

I-manifest ehambisanayo ibonakala kanje:

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

Okuluhlaza okwesibhakabhaka/Okuhlaza (okuluhlaza okwesibhakabhaka nokuluhlaza)

Isu lokusebenzisa okuluhlaza okwesibhakabhaka nokuluhlaza (ngezinye izikhathi okubuye kubizwe ngokuthi okubomvu/okumnyama) libandakanya ukusetshenziswa kanyekanye kwezinguqulo ezindala (eziluhlaza) nezintsha (eziluhlaza okwesibhakabhaka) zohlelo lokusebenza. Ngemva kokuthumela zombili izinguqulo, abasebenzisi abavamile banokufinyelela kweluhlaza okotshani, kuyilapho eluhlaza okwesibhakabhaka itholakalela ithimba le-QA ukuze lenze izivivinyo ngokuzenzakalelayo ngesevisi ehlukile noma ukudlulisela ngembobo okuqondile:

Amasu okusebenzisa e-Kubernetes: ukugoqa, dala kabusha, okuluhlaza okwesibhakabhaka/okuluhlaza, i-canary, emnyama (ukuhlolwa kwe-A/B)

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

Ngemuva kokuthi inguqulo eluhlaza okwesibhakabhaka (entsha) isihloliwe futhi nokukhululwa kwayo sekuvunyelwe, isevisi ishintshela kuyo, futhi inguqulo eluhlaza (endala) iyagoqwa:

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

I-Canary (ukuthunyelwa kwe-canary)

Ukukhishwa kwe-Canary kufana nokukhishwa okuluhlaza okwesibhakabhaka nokuluhlaza, kodwa kunokulawula okungcono nokusetshenziswa okuqhubekayo isinyathelo ngesinyathelo indlela. Lolu hlobo luhlanganisa amasu amaningana ahlukene, afaka ukuqaliswa β€œokuyimfihlo” nokuhlola kwe-A/B.

Leli su lisetshenziswa uma kunesidingo sokuzama ukusebenza okuthile okusha, ngokuvamile kungemuva lohlelo lokusebenza. Ingqikithi yendlela yokwenza amaseva amabili acishe afane: eyodwa isebenzela cishe bonke abasebenzisi, kanti enye, ngemisebenzi emisha, isebenzela iqembu elincane labasebenzisi, ngemuva kwalokho imiphumela yomsebenzi wabo iqhathaniswa. Uma yonke into ihamba ngaphandle kwamaphutha, inguqulo entsha ikhishwa kancane kancane kuyo yonke ingqalasizinda.

Nakuba leli su lingasetshenziswa kusetshenziswa i-Kubernetes kuphela, esikhundleni sama-pod amadala kufakwe amasha, kulula kakhulu futhi kulula kakhulu ukusebenzisa i-mesh yesevisi efana ne-Istio.

Isibonelo, ungase ube nama-manifest amabili ahlukene ku-Git: i-manifest evamile enomaka 0.1.0 kanye ne-canary manifest enomaka 0.2.0. Ngokushintsha izisindo ku-Istio virtual gateway manifest, ungakwazi ukulawula ukusatshalaliswa kwethrafikhi phakathi kwalokhu kukhishwa okubili:

Amasu okusebenzisa e-Kubernetes: ukugoqa, dala kabusha, okuluhlaza okwesibhakabhaka/okuluhlaza, i-canary, emnyama (ukuhlolwa kwe-A/B)

Ukuze uthole umhlahlandlela wesinyathelo ngesinyathelo ekusebenziseni ukuthunyelwa kwe-canary usebenzisa i-Istio, bheka I-GitOps Workflows nge-Istio. (Qaphela. transl.: Siphinde sahumusha izinto ezimayelana nokukhishwa kwe-canary ku-Istio lapha.)

Ukuthunyelwa kwe-Canary nge-Weaveworks Flagger

I-Weaveworks Flagger ikuvumela ukuthi uphathe kalula futhi ngempumelelo ukukhishwa kwe-canary.

I-Flager isebenza ngokuzenzakalelayo nabo. Isebenzisa i-Istio noma i-AWS App Mesh ukuze ihambise futhi ishintshe ithrafikhi, kanye namamethrikhi e-Prometheus ukuze ihlaziye imiphumela. Ngaphezu kwalokho, ukuhlaziya ukuthunyelwa kwe-canary kungangezwa ngama-webhooks ukwenza izivivinyo zokwamukela, ukuhlolwa komthwalo, kanye nanoma yiziphi ezinye izinhlobo zamasheke.

Ngokusekelwe ekusetshenzisweni kwe-Kubernetes futhi, uma kunesidingo, ukukala okuvundlile kwama-pods (HPA), i-Flagger idala amasethi ezinto (ukuthunyelwa kwe-Kubernetes, amasevisi e-ClusterIP kanye ne-Istio noma amasevisi we-App Mesh) ukuze ahlaziye futhi asebenzise ukuthunyelwa kwe-canary:

Amasu okusebenzisa e-Kubernetes: ukugoqa, dala kabusha, okuluhlaza okwesibhakabhaka/okuluhlaza, i-canary, emnyama (ukuhlolwa kwe-A/B)

Ukusebenzisa iluphu yokulawula (lawula iluphu),I-Flagger kancane kancane ishintsha ithrafikhi iye kuseva ye-canary, kuyilapho ngesikhathi esifanayo ikala amamethrikhi okusebenza angukhiye njengamaphesenti ezicelo eziphumelelayo ze-HTTP, isilinganiso sobude besikhathi sokucela, kanye nempilo ye-pod. Ngokusekelwe ekuhlaziyeni kwe-KPI (Key Performance Indicators), i-canary iyakhula noma iyawa futhi imiphumela yokuhlaziya ishicilelwa ku-Slack. Incazelo kanye nokuboniswa kwale nqubo kungatholakala endabeni Ukulethwa Okuqhubekayo Kwe-App Mesh.

Amasu okusebenzisa e-Kubernetes: ukugoqa, dala kabusha, okuluhlaza okwesibhakabhaka/okuluhlaza, i-canary, emnyama (ukuhlolwa kwe-A/B)

Ukufakwa okumnyama (okufihliwe) noma kwe-A/B

Ukuthunyelwa kwe-Stealth kungenye inguquko yesu le-canary (okuyinto, ngendlela, i-Flagger engasebenza nayo). Umehluko phakathi kwe-stealth kanye ne-canary deployments ukuthi ukuthunyelwa kwe-stealth kubhekana ne-frontend kune-backend njengokuthunyelwa kwe-canary.

Elinye igama lalokhu kusetshenziswa ukuhlola kwe-A/B. Esikhundleni sokwenza isici esisha sitholakale kubo bonke abasebenzisi, sinikezwa ingxenye elinganiselwe yabo. Ngokuvamile, laba basebenzisi abazi ukuthi bangabahloli abahamba phambili (yingakho igama elithi "ukukhishwa okuyimfihlo").

Ukusebenzisa amaswishi okusebenza (isici sokuguqula) namanye amathuluzi, ungakwazi ukuqapha indlela abasebenzisi abasebenzisana ngayo nesici esisha, noma ngabe basebenzisana naso, noma ukuthi bathola isixhumi esibonakalayo somsebenzisi esisha siyadida, kanye nezinye izinhlobo zamamethrikhi.

Amasu okusebenzisa e-Kubernetes: ukugoqa, dala kabusha, okuluhlaza okwesibhakabhaka/okuluhlaza, i-canary, emnyama (ukuhlolwa kwe-A/B)

Umaka kanye nokuthunyelwa kwe-A/B

Ngokungeziwe emzileni osuselwe esisindweni, i-Flagger ingaphinda ihambise ithrafikhi kuseva ye-canary ngokusekelwe kumapharamitha e-HTTP. Ekuhloleni kwe-A/B, ungasebenzisa izihloko ze-HTTP noma amakhukhi ukuze uqondise ingxenye ethile yabasebenzisi. Lokhu kusebenza ikakhulukazi esimweni sezinhlelo zokusebenza ezingaphambili ezidinga ukubophezela kuseshini kuseva (ubudlelwano besikhathi). Ulwazi olwengeziwe lungatholakala kumadokhumenti e-Flager.

Umbhali uzwakalisa ukubonga Stefan Prodan, unjiniyela we-Weaveworks (kanye nomdali we-Flagger), kuwo wonke lawa maphethini wokupha amangalisayo.

I-PS evela kumhumushi

Funda futhi kubhulogi yethu:

Source: www.habr.com

Engeza amazwana