Canary Deployment e sebelisa Jenkins-X Istio Flagger
Ho tsamaisoa ha Canary
Re tšepa hore u tla bala karolo ea pele, moo re hlalositseng ka bokhutšoanyane hore na li-deployments tsa Canary ke life le ho bontša mokhoa oa ho li kenya ts'ebetsong ka lisebelisoa tse tloaelehileng tsa Kubernetes.
Istio
'Me re nka hore ka ho bala sengoloa sena u se u ntse u tseba hore na Istio ke eng. Haeba ha ho joalo, joale u ka bala ka eona mona.
Kopo ea liteko
Pod ka 'ngoe e na le lijana tse peli: kopo ea rona le proxy ea istio.
Re tla sebelisa sesebelisoa se bonolo sa tlhahlobo se nang le li-pods tsa frontend-nginx le backend python. Nginx pod e tla fetisetsa kopo e 'ngoe le e' ngoe ho "backend pod" ebe e sebetsa joalo ka moemeli. Lintlha li ka fumanoa li-yamls tse latelang:
Haeba u batla ho latela mohlala oa ka le ho sebelisa sesebelisoa sena sa tlhahlobo ka bouena, bona porojeke balame.
Phepelo ea Pele
Ha re qala Deployment ea pele, re bona hore li-pods tsa kopo ea rona li na le lijana tse 2 feela, ke hore, Istio sidecar e sa tsoa kengoa ts'ebetsong:
Hape re bona Istio Gateway Loadbalancer sebakeng sa mabitso istio-system:
Ho hlahisa sephethephethe
Re tla sebelisa IP e latelang ho hlahisa sephethephethe se tla amoheloa ke li-pods tse ka pele ebe li fetisetsoa ho li-pods tse ka morao:
while true; do curl -s --resolve 'frontend.istio-test:80:35.242.202.152' frontend.istio-test; sleep 0.1; done
Re tla eketsa hape frontend.istio-test ho faele ea rona ea mabotho.
Sheba Mesh ka Kiali
Re kentse kopo ea tlhahlobo le Istio hammoho le Tracing, Grafana, Prometheus le Kiali (bona ka tlase bakeng sa lintlha). porojeke balame). Ka hona re ka sebelisa Kiali ka:
istioctl dashboard kiali # admin:admin
Kiali e bona sephethephethe sa hajoale ka Mesh
Joalokaha re bona, 100% ea sephethephethe se ea litšebeletsong tse ka pele, ebe ho li-pods tse ka pele tse nang le label v1, kaha re sebelisa proxy e bonolo ea nginx e khutlisetsang likopo ho tšebeletso ea backend, e leng eona e li khutlisetsang ho li-pods tsa backend. e nang le label v1.
Kiali e sebetsa hantle le Istio mme e fana ka tharollo ea ho fana ka lebokose la Mesh. E ntle feela.
Ho tsamaisoa ha Canary
Backend ea rona e se e na le li-deployments tse peli tsa k8, e 'ngoe bakeng sa v1 le e' ngoe bakeng sa v2. Joale re hloka feela ho bolella Istio ho fetisetsa liperesente tse itseng tsa likopo ho v2.
Mohato oa 1: 10%
Mme sohle seo re hlokang ho se etsa ke ho lokisa boima ba VirtualService ho istio.yaml:
Joale phepelo ea Canary e ka nkuoa e felletse mme sephethephethe sohle se fetisetsoa ho v2:
Ho hlahloba Canary ka letsoho
Ha re re joale re romella 2% ea likopo tsohle ho v10 backend. Ho thoe'ng haeba re batla ho leka v2 ka letsoho ho etsa bonnete ba hore ntho e 'ngoe le e' ngoe e sebetsa kamoo re lebeletseng kateng?
Re ka eketsa molao o ikhethileng o ipapisitseng le lihlooho tsa HTTP:
Joale ha re sebelisa curl re ka qobella kopo ea v2 ka ho romella hlooho:
Likopo tse se nang hlooho li ntse li tla tsamaisoa ke karo-karolelano ea 1/10:
Canary bakeng sa mefuta e 'meli e itšetlehileng ka eona
Joale re tla nahana ka khetho eo re nang le eona v2 bakeng sa li-frontend le backend. Bakeng sa bobeli, re boletse hore 10% ea sephethephethe se lokela ho ea ho v2:
Re bona hore frontend v1 le v2 ka bobeli sephethephethe sa pele ka karolelano ea 1/10 ho backend v1 le v2.
Ho thoe'ng haeba re ne re hloka ho fetisetsa sephethephethe ho tloha frontend-v2 feela ho backend-v2 hobane ha e lumellane le v1? Ho etsa sena, re tla beha karo-karolelano ea 1/10 bakeng sa frontend, e laolang hore na sephethephethe se fihla joang ho backend-v2 re sebelisa lipuisano. sourceLabels :
В karolo ea pele Re sebelitse Canary deployment ka letsoho, hape re sebelisa li-k8 tse peli. Moo re ile ra laola karo-karolelano ea likopo ka ho fetola palo ea likopi. Mokhoa ona oa sebetsa, empa o na le mefokolo e tebileng.
Istio e etsa hore ho khonehe ho tseba karo-karolelano ea likopo ho sa tsotelehe palo ea likopi. Sena se bolela, ka mohlala, hore re ka sebelisa HPAs (Horizontal Pod Autoscaler) 'me ha ho hlokahale hore re lokisoe ho ea ka boemo ba hona joale ba Canary deployment.
Phello
Istio e sebetsa hantle mme ho e sebelisa hammoho le Kiali ho etsa motsoako o matla haholo. E latelang lethathamong la ka la lithahasello ke ho kopanya Spinnaker le Istio bakeng sa automation le Canary analytics.