Ko te tuku Canary he huarahi tino whai hua ki te whakamatautau i nga waehere hou i runga i te waahanga o nga kaiwhakamahi. Ka tino whakaitihia te uta o nga waka ka raru pea i te wa e tukuna ana, na te mea ka puta noa i roto i tetahi waahanga motuhake. E whakatapua ana tenei tuhipoka me pehea te whakarite i taua tukunga ma te whakamahi i nga Kubernetes me te aunoatanga tuku. Ki ta matou whakaaro kei te mohio koe mo nga rauemi a Helm me Kubernetes.
E rua nga rauemi matua i roto i te tukunga canary ki Kubernetes: ko te ratonga ake me te taputapu tuku. Ko te tuku Canary e mahi ana ma te ratonga kotahi e mahi tahi ana me nga rauemi rereke e rua e mahi ana i nga waka whakahou. Ko tetahi o enei rauemi ka mahi me te putanga "canary", me te tuarua ka mahi me te putanga pumau. I roto i tenei ahuatanga, ka taea e taatau te whakarite i te maha o nga putanga canary hei whakaiti i te nui o nga waka e hiahiatia ana hei mahi. Mena, hei tauira, he pai ki a koe te whakamahi i a Yaml, ka penei te ahua ki Kubernetes:
kind: Deployment
metadata:
name: app-canary
labels:
app: app
spec:
replicas: 1
...
image: myapp:canary
---
kind: Deployment
metadata:
name: app
labels:
app: app
spec:
replicas: 5
...
image: myapp:stable
---
kind: Service
selector:
app: app # Selector will route traffic to both deployments.
He maamaa ake te whakaaro ki tenei whiringa ma te whakamahi i te kubectl, me roto
Aunoatanga o te tohatoha canary
Tuatahi, me hiahia he mahere mahere Helm, kei roto kee nga rauemi i korerohia i runga ake nei. Me penei te ahua:
~/charts/app
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ └── service.yaml
└── values.yaml
Ko te putake o te kaupapa Helm ko te whakahaeretanga o nga putanga maha. Ko te putanga pumau ko to maatau peka matua o te waehere kaupapa. Engari ma te Helm ka taea e matou te tuku i te tuku canary me o taatau waehere whakamatautau. Ko te mea nui ko te pupuri i nga whakawhitinga waka i waenga i te putanga pumau me te tuku canary. Ka whakahaerehia e matou enei mea katoa ma te whakamahi i tetahi kaiwhiringa motuhake:
selector:
app.kubernetes.io/name: myapp
Ma a maatau "canary" me nga rauemi tohatoha pumau ka tohu tenei tapanga ki nga waahanga. Mena kua whirihora tika nga mea katoa, na i te wa e horahia ana te putanga canary o to maatau mahere mahere Helm ka kite tatou ka tukuna nga waka ki nga waahanga hou kua tukuna. Ko te putanga pumau o tenei tono ka penei te ahua:
helm upgrade
--install myapp
--namespace default
--set app.name=myapp # Goes into app.kubernetes.io/name
--set app.version=v1 # Goes into app.kubernetes.io/version
--set image.tag=stable
--set replicaCount=5
Inaianei ka tirohia ta tatou tukunga kanari. Hei tuku i te putanga canary, me mahara tatou ki nga mea e rua. Me rereke te ingoa tuku kia kore ai e tukuna he whakahou ki te putanga pumau o naianei. Me rereke ano te putanga me te tohu kia taea ai e tatou te tuku i etahi atu waehere me te tautuhi i nga rereketanga ma nga tohu rauemi.
helm upgrade
--install myapp-canary
--namespace default
--set app.name=myapp # Goes into app.kubernetes.io/name
--set app.version=v2 # Goes into app.kubernetes.io/version
--set image.tag=canary
--set replicaCount=1
Heoi ano! Mena ka ping koe i te ratonga, ka kite koe ko te whakahōu canary e arai ana i nga waka i tetahi waahanga o te waa.
Mena kei te rapu koe mo nga taputapu miihini whakaurunga kei roto i te arorau kua whakaahuahia, katahi ka aro ki
Source: will.com