Te Whakatairanga Canary ma te whakamahi i a Jenkins-X Istio Flagger
Te Tukunga Canary
Ko te tumanako ka panui koe waahanga tuatahi, i whakamarama poto matou he aha nga whakatakotoranga Canary me te whakaatu me pehea te whakatinana ma te whakamahi i nga rauemi Kubernetes paerewa.
Istio
Na ka whakaaro matou ma te panui i tenei tuhinga kua mohio koe he aha a Istio. Mena kaore, ka taea e koe te panui mo taua mea konei.
Te tono mo nga whakamatautau
E rua nga ipu kei ia peera: to maatau tono me te istio-takawaenga.
Ka whakamahia e matou he tono whakamatautau ngawari me te frontend-nginx me te backend python pods. Ka tukuna noa e te nginx pod ia tono ki te tuara o muri ka mahi hei takawaenga. Ka kitea nga korero i roto i nga yamls e whai ake nei:
Mena kei te hiahia koe ki te whai i taku tauira ka whakamahi koe i tenei tono whakamatautau, tirohia panui kaupapa.
Tukunga Tuatahi
I te wa i whakarewahia e matou te Whakamahinga tuatahi, ka kite matou e 2 noa nga ipu o nga poti o ta matou tono, ara, kei te whakatinanahia a Istio sidecar:
A ka kite ano matou i a Istio Gateway Loadbalancer i te waahi ingoa istio-system:
Te whakatipu waka
Ka whakamahia e matou te IP e whai ake nei hei whakaputa waka ka riro mai i nga poti o mua ka tukuna atu ki nga poti o muri:
while true; do curl -s --resolve 'frontend.istio-test:80:35.242.202.152' frontend.istio-test; sleep 0.1; done
Ka tapiritia ano e matou frontend.istio-test ki to tatou kōnae ope.
Tirohia Mesh mā Kiali
I whakauruhia e matou te tono whakamatautau me te Istio me te Tracing, Grafana, Prometheus me Kiali (tirohia i raro mo nga taipitopito). panui kaupapa). Na reira ka taea e tatou te whakamahi i a Kiali ma:
istioctl dashboard kiali # admin:admin
Ka whakaatahia e Kiali nga waka o naianei ma te Mesh
Kei te kite tatou, 100% o nga waka ka haere ki te ratonga o mua, katahi ka haere ki nga pota o mua me te tapanga v1, na te mea kei te whakamahi matou i tetahi takawaenga nginx ngawari e huri ana i nga tono ki te ratonga tuara, ka huri ano ki nga pou o muri. me te tapanga v1.
He pai te mahi a Kiali ki a Istio me te whakarato i tetahi otinga whakaputa Mesh pouaka. He rawe noa.
Te Tukunga Canary
E rua nga whakatakotoranga k8 i to maatau tuara, kotahi mo te v1 me tetahi mo te v2. Inaianei me kii atu ki a Istio kia tukuna etahi paheketanga o nga tono ki v2.
Hipanga 1: 10%
Ko nga mea katoa e tika ana kia mahia ko te whakatika i te taumaha o te VirtualService i roto istio.yaml:
Inaianei ka taea te whakaaro kua oti te tuku Canary ka tukuna katoatia nga waka ki v2:
Te whakamatautau a te Canary
Me kii ka tukuna e matou te 2% o nga tono katoa ki te v10 o muri. He aha mena ka hiahia taatau ki te whakamatautau a-ringa i te v2 kia mohio kei te pai nga mea katoa e tumanakohia ana?
Ka taea e tatou te taapiri i tetahi ture taurite motuhake i runga i nga pane HTTP:
Ma te whakamahi i te curl ka taea e taatau te tono v2 ma te tuku i te pane:
Ko nga tono kaore he pane ka peia tonu e te 1/10 ōwehenga:
Canary mo nga putanga whakawhirinaki e rua
Inaianei ka whakaarohia e maatau te waahanga kei a maatau te putanga v2 mo te taha o mua me te tuara. Mo nga mea e rua, i tohua e matou ko te 10% o nga waka me haere ki v2:
Ka kite matou i te taha o mua v1 me te v2 e rua nga waka whakamua i te ōwehenga o te 1/10 ki te tuara v1 me te v2.
Ka aha mena ka hiahia matou ki te tuku waka mai i mua-v2 anake ki muri-v2 na te mea kaore i te hototahi ki te v1? Ki te mahi i tenei, ka whakatauhia e matou he tauwehenga 1/10 mo te pito o mua, e whakahaere ana i nga huarahi ka tae ki te tuara-v2 ma te whakamahi i te whiriwhiringa. sourceLabels :
Ko te mutunga, ka whiwhi tatou i nga mea e hiahiatia ana:
Nga rereke mai i te huarahi Canary a-ringa
В te waahanga tuatahi I mahia e matou te tukunga a Canary a-ringa, me te whakamahi ano i nga tukunga k8 e rua. I reira ka whakahaerehia e matou te owehenga o nga tono ma te whakarereke i te maha o nga tauira. Ka whai hua tenei huarahi, engari he raru nui.
Ka taea e Istio te whakatau i te ōwehenga o nga tono ahakoa te maha o nga tauira. Ko te tikanga tenei, hei tauira, ka taea e tatou te whakamahi i nga HPA (Horizontal Pod Autoscalers) me te kore e tika kia whirihorahia kia rite ki te ahua o te tuku Canary inaianei.
Ko te hua
He pai te mahi a Istio me te whakamahi tahi me Kiali mo te whakakotahitanga tino kaha. Panuku i runga i taku rarangi kaingākau ko te whakakotahi i a Spinnaker me Istio mo te aunoatanga me te tātaritanga Canary.