ืคืจืืกื ืงื ืจืืช ืืื ืืจื ืืขืืื ืืืื ืืืืืง ืงืื ืืืฉ ืขื ืชืช-ืงืืืฆื ืฉื ืืฉืชืืฉืื. ืื ืืคืืืช ืืืืคื ืืฉืืขืืชื ืืช ืขืืืก ืืชืขืืืจื ืฉืืืื ืืืืืช ืืขืืืชื ืืืืื ืชืืืื ืืคืจืืกื, ืืืืืื ืฉืืื ืืชืจืืฉ ืจืง ืืชืื ืชืช-ืงืืืฆื ืกืคืฆืืคืืช. ืืขืจื ืื ืืืงืืฉืช ืืืฆื ืืืจืื ืคืจืืกื ืืื ืืืืฆืขืืช Kubernetes ืืืืืืืฆืื ืฉื ืคืจืืกื. ืื ื ืื ืืืื ืฉืืชื ืืืืข ืืฉืื ืขื ืืฉืืื Helm ื-Kubernetes.
ืคืจืืกื ืงื ืจืืช ืคืฉืืื ื-Kubernetes ืืืืืช ืฉื ื ืืฉืืืื ืืจืืืืื: ืืฉืืจืืช ืขืฆืื ืืืื ืืคืจืืกื. ืคืจืืกื ืงื ืจืืช ืคืืขืืช ืืืืฆืขืืช ืฉืืจืืช ืืืื ืืืงืืื ืืื ืืจืืงืฆืื ืขื ืฉื ื ืืฉืืืื ืฉืื ืื ืืืฉืจืชืื ืชืขืืืจืช ืขืืืื ืื. ืืื ืืืฉืืืื ืืืื ืืขืืื ืขื ืืืจืกื "ืงื ืจืืช", ืืืฉื ื ืืขืืื ืขื ืืืจืกื ืืืฆืืื. ืืืฆื ืื, ื ืืื ืืืืกืช ืืช ืืกืคืจ ืืืจืกืืืช ืืงื ืจืืืช ืขื ืื ืช ืืืคืืืช ืืช ืืืืช ืืชื ืืขื ืื ืืจืฉืช ืืฉืจืช. ืื, ืืืฉื, ืืชื ืืขืืืฃ ืืืฉืชืืฉ ื-Yaml, ืื ืื ืืืจืื ืื ื-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.
ืื ืืคืืื ืืืชืจ ืงื ืืืืืื ืืช ืืืคืฉืจืืช ืืื ืืืืฆืขืืช kubectl, ืืื ื
ืืืืืืฆืื ืฉื ืคืจืืกืช ืงื ืจืืช
ืงืืื ืื, ืื ืื ื ืฆืจืืืื ืืคืช ืชืจืฉืื Helm, ืฉืืืืืช ืืืจ ืืช ืืืฉืืืื ืฉืืืืจื ื ืขืืืื ืืืขืื. ืื ืืืืจ ืืืืจืืืช ืืขืจื ืื:
~/charts/app
โโโ Chart.yaml
โโโ README.md
โโโ templates
โ โโโ NOTES.txt
โ โโโ _helpers.tpl
โ โโโ deployment.yaml
โ โโโ service.yaml
โโโ values.yaml
ืืืกืืก ืฉื ืชืคืืกืช Helm ืืื ื ืืืื ืืจืกืืืช ืจืืืื ืืจืกืืืช. ืืืจืกื ืืืฆืืื ืืื ืืขื ืฃ ืืืฆืื ืืขืืงืจื ืฉืื ื ืืงืื ืืคืจืืืงื. ืืื ืขื Helm ืื ืื ื ืืืืืื ืืคืจืืก ืืจืกื ืงื ืจืืช ืขื ืืงืื ืื ืืกืืื ื ืฉืื ื. ืืขืืงืจ ืืฉืืืจ ืขื ืืืืืคื ืชื ืืขื ืืื ืืืจืกื ืืืฆืืื ืืืจืกื ืืงื ืจืืช. ืืช ืื ืื ื ื ืื ืืืืฆืขืืช ืืืจืจ ืืืืื:
selector:
app.kubernetes.io/name: myapp
ืืฉืืื ืืคืจืืกื ื"ืงื ืจืืื" ืืืืฆืืืื ืฉืื ื ืืฆืืื ื ืชืืืืช ืื ืขื ืืืืืืืื. ืื ืืื ืืืืืจ ืืืืื, ืื ืืืืื ืืคืจืืกื ืฉื ืืืจืกื ืืงื ืจืืช ืฉื ืืคืช ืชืจืฉืื ื-Helm ืฉืื ื, ื ืจืื ืฉืืชืขืืืจื ืชืืคื ื ืื ืืืืืืืื ืืืืฉืื ืฉื ืคืจืกื. ืืืจืกื ืืืฆืืื ืฉื ืคืงืืื ืื ืชืืจืื ืื:
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
ืขืืฉืื ืืืื ื ืืืืง ืืช ืืฉืืจืืจ ืืงื ืจื ืฉืื ื. ืืื ืืคืจืืก ืืช ืืืจืกื ืืงื ืจืืช, ืขืืื ื ืืืืืจ ืฉื ื ืืืจืื. ืฉื ืืืจืกื ืืืื ืืืืืช ืฉืื ื ืืื ืฉืื ื ืืฆืื ืขืืืื ืืืจืกื ืืืฆืืื ืื ืืืืืช. ืื ืืืจืกื ืืืชื ืืืืืื ืืืืืช ืฉืื ืื ืืื ืฉื ืืื ืืคืจืืก ืงืื ืืืจ ืืืืืืช ืืืืืื ืืคื ืชืื ืืฉืืืื.
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
ืื ืืื! ืื ืืชื ืคืื ื ืืฉืืจืืช, ืืชื ืืืื ืืจืืืช ืฉืืขืืืื ืืงื ืจื ืื ืชื ืชื ืืขื ืจืง ืืืง ืืืืื.
ืื ืืชื ืืืคืฉืื ืืื ืืืืืืฆืื ืฉื ืคืจืืกื ืืืืืืื ืืช ืืืืืืื ืืืชืืืจ, ืฉืืื ืื
ืืงืืจ: www.habr.com