Canary Deployment e sebelisa Jenkins-X Istio Flagger
Re tla tsamaisa Canary ka letsoho ka GitOps le ho theha / ho fetola lisebelisoa tsa mantlha tsa Kubernetes. Sengoliloeng sena se reretsoe ho qala ka hore na ho tsamaisoa ho sebetsa joang Kubernetes Canary, kaha ho na le mekhoa e sebetsang haholoanyane ea ho iketsetsa, eo re tla e tšohla lihloohong tse latelang.
Ka leano la Canary, lintlafatso li qala ho sebelisoa ho sehlopha sa basebelisi feela. Ka ho beha leihlo, data ea log, tlhahlobo ea matsoho, kapa liteishene tse ling tsa maikutlo, tokollo e lekoa pele e lokolloa ho basebelisi bohle.
Tšebeliso ea Kubernetes (ntlafatso e ntseng e tsoela pele)
Leano la kamehla la Kubernetes Deployment ke ho ntlafatsa, moo palo e itseng ea li-pods e qalisoang ka mefuta e mecha ea litšoantšo. Haeba li bōpiloe ntle le mathata, li-pods tse nang le mefuta ea khale ea litšoantšo li felisoa, 'me li-pods tse ncha li bōptjoa ka tsela e tšoanang.
GitOps
Re sebelisa GitOps mohlaleng ona hobane re:
sebelisa Git e le mohloli o le mong oa 'nete
re sebelisa Git Operations bakeng sa ho aha le ho tsamaisa (ha ho na litaelo tse ling ntle le git tag/merge tse hlokahalang)
Mohlala:
Ha re itloaetse hantle - ho ba le polokelo e le 'ngoe ea khoutu ea kopo le e' ngoe bakeng sa meaho.
Sebaka sa polokelo
Ena ke Python + Flask API e bonolo haholo e khutlisetsang karabo joalo ka JSON. Re tla haha sephutheloana ka GitlabCI ebe re sutumelletsa sephetho ho Gitlab Registry. Ho registry re na le mefuta e 'meli e fapaneng ea tokollo:
wuestkamp/k8s-deployment-example-app:v1
wuestkamp/k8s-deployment-example-app:v2
Phapang e le 'ngoe feela lipakeng tsa bona ke phetoho ea faele ea JSON e khutlisitsoeng. Re sebelisa sesebelisoa sena ho bona habonolo kamoo ho ka khonehang hore na re buisana le mofuta ofe.
Sebaka sa polokelo ea meaho
Ho turnip ena re tla tsamaisa ka GitlabCI ho ea Kubernetes, .gitlab-ci.yml ke ka tsela e latelang:
Re sutumelletsa liphetoho tsena sebakeng sa polokelo eo thomello e tla qala ho eona (ka GitlabCI) 'me u bone ka lebaka leo:
Ts'ebeletso ea rona e tla supa lits'ebetso ka bobeli, kaha ka bobeli li na le khetho ea lisebelisoa. Ka lebaka la ts'ebetso ea kamehla ea Kubernetes, re lokela ho bona likarabo tse fapaneng bakeng sa ~ 10% ea likopo:
Boemo ba hajoale ba ts'ebeliso ea rona (GitOps, e nkiloeng ho Git joalo ka Mohloli o le Mong oa 'Nete) ke boteng ba li-deployments tse peli tse nang le likopi tse sebetsang, e le ngoe bakeng sa mofuta o mong le o mong.
~ 10% ea basebelisi ba tloaelane le mofuta o mocha ebe ba o leka ba sa rera. Joale ke nako ea ho hlahloba liphoso ho li-log le data ea ho beha leihlo ho fumana mathata.
Mohato oa 2: Lokolla mofuta o mocha ho basebelisi bohle
Re nkile qeto ea hore ntho e 'ngoe le e' ngoe e tsamaile hantle 'me joale re hloka ho hlahisa mofuta o mocha ho basebelisi bohle. Ho etsa sena re mpa re ntlafatsa deploy.yaml ho kenya mofuta o mocha oa setšoantšo le palo ea likopi tse lekanang le 10. In deploy-canary.yaml re beha palo ea likopi ho khutlela ho 0. Kamora ho romelloa, sephetho se tla ba ka tsela e latelang:
Ho akaretsa
Ho 'na, ho tsamaisa thepa ka letsoho ka tsela ena ho thusa ho utloisisa hore na e ka hlophisoa habonolo hakae ho sebelisa k8s. Kaha Kubernetes e u lumella ho ntlafatsa ntho e 'ngoe le e' ngoe ka API, mehato ena e ka etsoa ka mokhoa o ikemetseng ka mangolo.
Ntho e 'ngoe e lokelang ho kenngoa ts'ebetsong ke sebaka sa ho kena sa tester (LoadBalancer kapa ka Ingress) eo ka eona ho ka fumanoang phetolelo e ncha feela. E ka sebelisoa bakeng sa ho bala ka letsoho.
Lingoliloeng tse tlang, re tla sheba litharollo tse ling tse ikemetseng tse sebelisang boholo ba seo re se entseng.