เจ เจธเฉเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจตเจฟเฉฑเจ เจเฉเจจเจฐเฉ เจคเฉเจจเจพเจคเฉ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจ เจคเฉ เจตเจฐเจคเจฃ เจฒเจ เจเจฟเจเจฒเฉเจฌ เจธเฉเจเจ เจ เจคเฉ เจฎเฉเจจเฉเจ เจฒ เจเจฟเจเฉเจชเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉเฅค
เจเจธ เจฒเฉเฉ เจฆเฉ เจฒเฉเจ:
- (เจเจน เจฒเฉเจ)
ArgoCI เจตเจฐเจค เจเฉ เจเฉเจจเจฐเฉ เจคเฉเจจเจพเจคเฉ - เจเจธเจเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจเฉเจจเจฐเฉ เจคเฉเจจเจพเจคเฉ
- เจเฉเจจเจเจฟเฉฐเจธ-เจเจเจธ เจเจธเจเฉเจ เจซเจฒเฉเจเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจเฉเจจเจฐเฉ เจคเฉเจจเจพเจคเฉ
เจ เจธเฉเจ เจเฉเจจเจฐเฉ เจคเฉเจจเจพเจคเฉ เจจเฉเฉฐ GitOps เจฆเฉเจเจฐเจพ เจนเฉฑเจฅเฉเจ เจเจฐเจพเจเจเฉ เจ เจคเฉ เจฎเฉเฉฑเจ Kubernetes เจธเจฐเฉเจคเจพเจ เจจเฉเฉฐ เจฌเจฃเจพเจเจฃ/เจธเฉฐเจธเจผเฉเจงเจฟเจค เจเจฐเจพเจเจเฉเฅค เจเจน เจฒเฉเจ เจฎเฉเฉฑเจ เจคเฉเจฐ 'เจคเฉ เจเจพเจฃ-เจชเจเจพเจฃ เจฒเจ เจคเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจเฉเจจเจฐเฉ เจตเจฟเฉฑเจ เจคเฉเจจเจพเจคเฉ เจเจฟเจตเฉเจ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเฉ, เจเจฟเจเจเจเจฟ เจเจเฉเจฎเฉเจธเจผเจจ เจฆเฉ เจตเจงเฉเจฐเฉ เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ เจขเฉฐเจ เจนเจจ, เจเจฟเจจเฉเจนเจพเจ เจฌเจพเจฐเฉ เจ เจธเฉเจ เจ เจเจฒเฉ เจฒเฉเจเจพเจ เจตเจฟเฉฑเจ เจตเจฟเจเจพเจฐ เจเจฐเจพเจเจเฉเฅค
เจเฉเจจเจฐเฉ เจคเฉเจจเจพเจคเฉ
เจเฉเจจเจฐเฉ เจฐเจฃเจจเฉเจคเฉ เจฆเฉ เจจเจพเจฒ, เจ เฉฑเจชเจกเฉเจ เจชเจนเจฟเจฒเจพเจ เจธเจฟเจฐเจซเจผ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฆเฉ เจเฉฑเจ เจเจช เจธเจฎเฉเจน 'เจคเฉ เจฒเจพเจเฉ เจนเฉเฉฐเจฆเฉ เจนเจจเฅค เจจเจฟเจเจฐเจพเจจเฉ, เจฒเฉเจ เจกเฉเจเจพ, เจฎเฉเจจเฉเจ เจฒ เจเฉเจธเจเจฟเฉฐเจ, เจเจพเจ เจนเฉเจฐ เจซเฉเจกเจฌเฉเจ เจเฉเจจเจฒเจพเจ เจฆเฉเจเจฐเจพ, เจฐเฉเจฒเฉเจเจผ เจจเฉเฉฐ เจธเจพเจฐเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฒเจ เจเจพเจฐเฉ เจเฉเจคเฉ เจเจพเจฃ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเฉเจธเจ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค
เจเฉเจฌเจฐเจจเฉเจเจธ เจคเฉเจจเจพเจคเฉ (เจฐเฉเจฒเจฟเฉฐเจ เจ เฉฑเจชเจกเฉเจ)
เจเฉเจฌเจฐเจจเฉเจเจธ เจกเจฟเจชเจฒเจพเจเจฎเฉเจเจ เจฒเจ เจกเจฟเจซเฉเจฒเจ เจฐเจฃเจจเฉเจคเฉ เจฐเฉเจฒเจฟเฉฐเจ-เจ เจชเจกเฉเจ เจนเฉ, เจเจฟเฉฑเจฅเฉ เจเจฟเฉฑเจคเจฐเจพเจ เจฆเฉ เจจเจตเฉเจ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจจเจฟเจธเจผเจเจฟเจค เจเจฟเจฃเจคเฉ เจตเจฟเฉฑเจ เจชเฉเจก เจฒเจพเจเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจเฅค เจเฉ เจเจน เจฌเจฟเจจเจพเจ เจเจฟเจธเฉ เจธเจฎเฉฑเจธเจฟเจ เจฆเฉ เจฌเจฃเจพเจ เจเจ เจธเจจ, เจคเจพเจ เจเจฟเฉฑเจคเจฐเจพเจ เจฆเฉ เจชเฉเจฐเจพเจฃเฉ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจตเจพเจฒเฉ เจชเฉเจกเจพเจ เจจเฉเฉฐ เจเจคเจฎ เจเจฐ เจฆเจฟเฉฑเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจ เจคเฉ เจธเจฎเจพเจจเจพเจเจคเจฐ เจตเจฟเฉฑเจ เจจเจตเฉเจ เจชเฉเจก เจฌเจฃเจพเจ เจเจพเจเจฆเฉ เจนเจจเฅค
GitOps
เจ เจธเฉเจ เจเจธ เจเจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจ GitOps เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ เจเจฟเจเจเจเจฟ เจ เจธเฉเจ:
- เจธเฉฑเจ เจฆเฉ เจเฉฑเจ เจธเจฟเฉฐเจเจฒ เจธเจฐเฉเจค เจตเจเฉเจ เจเจฟเฉฑเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ
- เจ เจธเฉเจ เจฌเจฟเจฒเจก เจ เจคเฉ เจกเจฟเจชเจฒเจพเจเจฎเฉเจเจ เจฒเจ เจเจฟเฉฑเจ เจเจชเจฐเฉเจธเจผเจจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ (เจเจฟเจ เจเฉเจ/เจฎเจฐเจ เจคเฉเจ เจเจฒเจพเจตเจพ เจเจฟเจธเฉ เจนเฉเจฐ เจเจฎเจพเจเจก เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ)
เจเจฆเจพเจนเจฐเจจ:
เจเจ เจเฉฑเจ เจเฉฐเจเจพ เจ เจญเจฟเจเจธ เจเจฐเฉเจ - เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเฉเจก เจฒเจ เจเฉฑเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจ เจคเฉ เจเฉฑเจ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจฒเจเฅค
เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ
เจเจน เจเฉฑเจ เจฌเจนเฉเจค เจนเฉ เจธเจงเจพเจฐเจจ Python+Flask API เจนเฉ เจเฉ JSON เจตเจเฉเจ เจเจตเจพเจฌ เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค เจ เจธเฉเจ GitlabCI เจฐเจพเจนเฉเจ เจชเฉเจเฉเจ เจฌเจฃเจพเจตเจพเจเจเฉ เจ เจคเฉ เจจเจคเฉเจเฉ เจจเฉเฉฐ Gitlab เจฐเจเจฟเจธเจเจฐเฉ เจตเจฟเฉฑเจ เจญเฉเจเจพเจเจเฉเฅค เจฐเจเจฟเจธเจเจฐเฉ เจตเจฟเฉฑเจ เจธเจพเจกเฉ เจเฉเจฒ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจฐเฉเจฒเฉเจเจผ เจธเฉฐเจธเจเจฐเจฃ เจนเจจ:
wuestkamp/k8s-deployment-example-app:v1
wuestkamp/k8s-deployment-example-app:v2
เจเจนเจจเจพเจ เจตเจฟเจเจเจพเจฐ เจธเจฟเจฐเจซ เจซเจฐเจ เจตเจพเจชเจธ เจเฉเจคเฉ JSON เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจคเจฌเจฆเฉเจฒเฉ เจนเฉเฅค เจ เจธเฉเจ เจเจธ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฟเฉฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ เจธเจเฉ เจเจธเจพเจจเฉ เจจเจพเจฒ เจเจฒเจชเจจเจพ เจเจฐเจจ เจฒเจ เจเจฐเจฆเฉ เจนเจพเจ เจเจฟ เจ เจธเฉเจ เจเจฟเจธ เจธเฉฐเจธเจเจฐเจฃ เจจเจพเจฒ เจธเฉฐเจเจพเจฐ เจเจฐ เจฐเจนเฉ เจนเจพเจเฅค
เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเจพ เจญเฉฐเจกเจพเจฐ
เจเจธ เจเจฐเจจเจฟเจช เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจเจฟเจเจฒเจฌเจธเฉเจเจ เจฆเฉเจเจฐเจพ เจเฉเจฌเจฐเจจเฉเจเจธ เจคเฉฑเจ เจคเจพเจเจจเจพเจค เจเจฐเจพเจเจเฉ, .gitlab-ci.yml
เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเฉฑเจธเจฆเจพ เจนเฉ:
image: traherom/kustomize-docker
before_script:
- printenv
- kubectl version
stages:
- deploy
deploy test:
stage: deploy
before_script:
- echo $KUBECONFIG
script:
- kubectl get all
- kubectl apply -f i/k8s
only:
- master
เจเจธเจจเฉเฉฐ เจเจชเจฃเฉ เจเจช เจเจฒเจพเจเจฃ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจเจฒเฉฑเจธเจเจฐ เจฆเฉ เจฒเฉเฉ เจชเจตเฉเจเฉ, เจคเฉเจธเฉเจ Gcloud เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ:
gcloud container clusters create canary --num-nodes 3 --zone europe-west3-b
gcloud compute firewall-rules create incoming-80 --allow tcp:80
เจคเฉเจนเจพเจจเฉเฉฐ เจซเฉเจฐเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ KUBECONFIG
GitlabCI เจตเจฟเฉฑเจ, เจเจฟเจธ เจตเจฟเฉฑเจ เจชเจนเฉเฉฐเจ เจฒเจ เจธเฉฐเจฐเจเจจเจพ เจธเจผเจพเจฎเจฒ เจนเฉเจตเฉเจเฉ kubectl
เจคเฉเจนเจพเจกเฉ เจเจฒเฉฑเจธเจเจฐ เจจเฉเฉฐ.
เจคเฉเจธเฉเจ เจเจธ เจฌเจพเจฐเฉ เจชเฉเฉเจน เจธเจเจฆเฉ เจนเฉ เจเจฟ เจเฉฑเจ เจเจฒเฉฑเจธเจเจฐ (Gcloud) เจฒเจ เจชเฉเจฐเจฎเจพเจฃ เจชเฉฑเจคเจฐ เจเจฟเจตเฉเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจนเฉ
เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเจพ Yaml
เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเจพ เจญเฉฐเจกเจพเจฐ เจตเจฟเฉฑเจ เจธเจพเจกเฉ เจเฉเจฒ เจธเฉเจตเจพ เจนเฉ:
apiVersion: v1
kind: Service
metadata:
labels:
id: app
name: app
spec:
ports:
- port: 80
protocol: TCP
targetPort: 5000
selector:
id: app
type: LoadBalancer
เจ
เจคเฉ เจตเจฟเฉฑเจ เจคเจพเจเจจเจพเจคเฉ deploy.yaml
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
spec:
replicas: 10
selector:
matchLabels:
id: app
type: main
template:
metadata:
labels:
id: app
type: main
spec:
containers:
- image: registry.gitlab.com/wuestkamp/k8s-deployment-example-app:v1
name: app
resources:
limits:
cpu: 100m
memory: 100Mi
เจ
เจคเฉ เจตเจฟเฉฑเจ เจเฉฑเจ เจนเฉเจฐ เจคเฉเจจเจพเจคเฉ deploy-canary.yaml
:
kind: Deployment
metadata:
name: app-canary
spec:
replicas: 0
selector:
matchLabels:
id: app
type: canary
template:
metadata:
labels:
id: app
type: canary
spec:
containers:
- image: registry.gitlab.com/wuestkamp/k8s-deployment-example-app:v2
name: app
resources:
limits:
cpu: 100m
memory: 100Mi
เจจเฉเจ เจเจฐเฉ เจเจฟ เจเจช-เจกเจฟเจชเจฒเจพเจ เจตเจฟเฉฑเจ เจ เจเฉ เจคเฉฑเจ เจเฉเจ เจชเฉเจฐเจคเฉเจเฉเจฐเจฟเจคเฉ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจจเจนเฉเจ เจนเฉเฅค
เจธเจผเฉเจฐเฉเจเจคเฉ เจคเฉเจจเจพเจคเฉ เจเจฐ เจฐเจฟเจนเจพ เจนเฉ
เจธเจผเฉเจฐเฉเจเจคเฉ เจคเฉเจจเจพเจคเฉ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฒเจ, เจคเฉเจธเฉเจ เจฎเจพเจธเจเจฐ เจฌเฉเจฐเจพเจเจ 'เจคเฉ เจนเฉฑเจฅเฉเจ GitlabCI เจชเจพเจเจชเจฒเจพเจเจจ เจธเจผเฉเจฐเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจเจธ เจคเฉเจ เจฌเจพเจฆ kubectl
เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจจเฉเฉฐ เจเจเจเจชเฉเฉฑเจ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ:
เจ
เจธเฉเจ เจฆเฉเจเจฆเฉ เจนเจพเจ app
10 เจชเฉเจฐเจคเฉเจเฉเจฐเจฟเจคเฉเจเจ เจฆเฉ เจจเจพเจฒ เจคเฉเจจเจพเจคเฉ เจ
เจคเฉ 0 เจจเจพเจฒ เจเจช-เจเฉเจจเจฐเฉเฅค เจเฉฑเจฅเฉ เจเฉฑเจ เจฒเฉเจกเจฌเฉเจฒเฉเจเจธเจฐ เจตเฉ เจนเฉ เจเจฟเจธ เจคเฉเจ เจ
เจธเฉเจ เจเจเจธเฉเจธ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ curl
เจฌเจพเจนเจฐเฉ IP เจฆเฉเจเจฐเจพ:
while true; do curl -s 35.198.149.232 | grep label; sleep 0.1; done
เจ เจธเฉเจ เจฆเฉเจเจฆเฉ เจนเจพเจ เจเจฟ เจธเจพเจกเฉ เจเฉเจธเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจธเจฟเจฐเจซเจผ "v1" เจตเจพเจชเจธ เจเจฐเจฆเฉ เจนเฉเฅค
เจเฉเจจเจฐเฉ เจคเฉเจจเจพเจคเฉ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจเจพ
เจเจฆเจฎ 1: เจเฉเจ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฒเจ เจเฉฑเจ เจจเจตเจพเจ เจธเฉฐเจธเจเจฐเจฃ เจเจพเจฐเฉ เจเจฐเฉ
เจ เจธเฉเจ deploy-canary.yaml เจซเจพเจเจฒ เจ เจคเฉ เจจเจตเฉเจ เจธเฉฐเจธเจเจฐเจฃ เจเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจ เจชเฉเจฐเจคเฉเจเฉเจฐเจฟเจคเฉเจเจ เจฆเฉ เจธเฉฐเจเจฟเจ เจจเฉเฉฐ 1 เจคเฉ เจธเฉเฉฑเจ เจเฉเจคเจพ เจนเฉ:
kind: Deployment
metadata:
name: app-canary
spec:
replicas: 1
selector:
matchLabels:
id: app
type: canary
template:
metadata:
labels:
id: app
type: canary
spec:
containers:
- image: registry.gitlab.com/wuestkamp/k8s-deployment-example-app:v2
name: app
resources:
limits:
cpu: 100m
memory: 100Mi
เจซเจพเจเจฒ เจตเจฟเฉฑเจ deploy.yaml
เจ
เจธเฉเจ เจชเฉเจฐเจคเฉเจเฉเจฐเจฟเจคเฉเจเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจจเฉเฉฐ 9 เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเจพ เจนเฉ:
kind: Deployment
metadata:
name: app
spec:
replicas: 9
selector:
matchLabels:
id: app
...
เจ เจธเฉเจ เจเจนเจจเจพเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจจเฉเฉฐ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจตเจฟเฉฑเจ เจงเฉฑเจเจฆเฉ เจนเจพเจ เจเจฟเฉฑเจฅเฉเจ เจคเฉเจจเจพเจคเฉ เจธเจผเฉเจฐเฉ เจนเฉเจตเฉเจเฉ (GitlabCI เจฐเจพเจนเฉเจ) เจ เจคเฉ เจจเจคเฉเจเฉ เจตเจเฉเจ เจตเฉเจเฉ:
เจธเจพเจกเฉ เจธเฉเจตเจพ เจฆเฉเจตเจพเจ เจคเฉเจจเจพเจคเฉเจเจ เจตเฉฑเจฒ เจเจธเจผเจพเจฐเจพ เจเจฐเฉเจเฉ, เจเจฟเจเจเจเจฟ เจฆเฉเจตเจพเจ เจเฉเจฒ เจเจช เจเฉเจฃเจเจพเจฐ เจนเฉเฅค เจเฉเจฌเจฐเจจเฉเจเจธ เจฆเฉ เจกเจฟเจซเฉเจฒเจ เจฐเฉเจเจกเจฎเจพเจเจเจผเฉเจธเจผเจจ เจฆเฉ เจเจพเจฐเจจ, เจธเจพเจจเฉเฉฐ ~10% เจฌเฉเจจเจคเฉเจเจ เจฒเจ เจตเฉฑเจ-เจตเฉฑเจ เจเจตเจพเจฌ เจฆเฉเจเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเจจ:
เจธเจพเจกเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจฎเฉเจเฉเจฆเจพ เจธเจฅเจฟเจคเฉ (GitOps, Git เจคเฉเจ เจเฉฑเจ เจธเจฟเฉฐเจเจฒ เจธเจฐเฉเจค เจตเจเฉเจ เจฒเจฟเจ เจเจฟเจ เจนเฉ) เจธเจฐเจเจฐเจฎ เจชเฉเจฐเจคเฉเจเฉเจฐเจฟเจคเฉเจเจ เจฆเฉ เจจเจพเจฒ เจฆเฉ เจคเฉเจจเจพเจคเฉเจเจ เจฆเฉ เจฎเฉเจเฉเจฆเจเฉ เจนเฉ, เจนเจฐเฉเจ เจธเฉฐเจธเจเจฐเจฃ เจฒเจ เจเฉฑเจเฅค
~ 10% เจเจชเจญเฉเจเจคเจพ เจเฉฑเจ เจจเจตเฉเจ เจธเฉฐเจธเจเจฐเจฃ เจคเฉเจ เจเจพเจฃเฉ เจนเฉ เจเจพเจเจฆเฉ เจนเจจ เจ เจคเฉ เจ เจฃเจเจพเจฃเฉ เจตเจฟเฉฑเจ เจเจธเจฆเฉ เจเจพเจเจ เจเจฐเจฆเฉ เจนเจจเฅค เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจฆเจพ เจชเจคเจพ เจฒเจเจพเจเจฃ เจฒเจ เจฒเฉเจเจธ เจ เจคเฉ เจจเจฟเจเจฐเจพเจจเฉ เจกเฉเจเจพ เจตเจฟเฉฑเจ เจเจฒเจคเฉเจเจ เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจฆเจพ เจนเฉเจฃ เจธเจฎเจพเจ เจนเฉเฅค
เจเจฆเจฎ 2: เจธเจพเจฐเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฒเจ เจจเจตเจพเจ เจธเฉฐเจธเจเจฐเจฃ เจเจพเจฐเฉ เจเจฐเฉ
เจ
เจธเฉเจ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ เจนเฉ เจเจฟ เจธเจญ เจเฉเจ เจ เฉเจ เจนเฉ เจเจฟเจ เจนเฉ เจ
เจคเฉ เจนเฉเจฃ เจธเจพเจจเฉเฉฐ เจจเจตเฉเจ เจธเฉฐเจธเจเจฐเจฃ เจจเฉเฉฐ เจธเจพเจฐเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฒเจ เจฐเฉเจฒ เจเจเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจ
เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ เจ
เจธเฉเจ เจฌเจธ เจ
เฉฑเจชเจกเฉเจ เจเจฐเจฆเฉ เจนเจพเจ deploy.yaml
เจเจฟเฉฑเจคเจฐ เจฆเจพ เจจเจตเจพเจ เจธเฉฐเจธเจเจฐเจฃ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจเจพ เจ
เจคเฉ เจชเฉเจฐเจคเฉเจเฉเจฐเจฟเจคเฉเจเจ เจฆเฉ เจเจฟเจฃเจคเฉ 10 เจฆเฉ เจฌเจฐเจพเจฌเจฐ เจนเฉ deploy-canary.yaml
เจ
เจธเฉเจ เจชเฉเจฐเจคเฉเจเฉเจฐเจฟเจคเฉเจเจ เจฆเฉ เจธเฉฐเจเจฟเจ เจจเฉเฉฐ เจตเจพเจชเจธ 0 'เจคเฉ เจธเฉเฉฑเจ เจเจฐเจฆเฉ เจนเจพเจเฅค เจคเฉเจจเจพเจคเฉ เจคเฉเจ เจฌเจพเจ
เจฆ, เจจเจคเฉเจเจพ เจเจธ เจคเจฐเฉเจนเจพเจ เจนเฉเจตเฉเจเจพ:
เจธเฉฐเจเฉเจช เจตเจฟเฉฑเจ
เจฎเฉเจฐเฉ เจฒเจ, เจกเจฟเจชเจฒเจพเจเจฎเฉเจเจ เจจเฉเฉฐ เจเจธ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจเจฒเจพเจเจฃเจพ เจเจน เจธเจฎเจเจฃ เจตเจฟเฉฑเจ เจฎเจฆเจฆ เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจเจธเจจเฉเฉฐ k8s เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจฟเฉฐเจจเฉ เจเจธเจพเจจเฉ เจจเจพเจฒ เจธเฉฐเจฐเจเจฟเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเจฟเจเจเจเจฟ เจเฉเจฌเจฐเจจเฉเจเจธ เจคเฉเจนเจพเจจเฉเฉฐ API เจฐเจพเจนเฉเจ เจนเจฐ เจเฉเจเจผ เจจเฉเฉฐ เจ เฉฑเจชเจกเฉเจ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ, เจเจน เจเจฆเจฎ เจธเจเฉเจฐเจฟเจชเจเจพเจ เจฐเจพเจนเฉเจ เจธเจตเฉเจเจฒเจฟเจค เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจเฅค
เจเจ เจนเฉเจฐ เจเฉเจเจผ เจเจฟเจธ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ เจเจน เจนเฉ เจเฉเจธเจเจฐ เจเจเจเจฐเฉ เจชเฉเจเจเฉฐเจ (เจฒเฉเจกเจฌเฉเจฒเฉเจเจธเจฐ เจเจพเจ เจเฉฐเจเจฐเฉเจธ เจฐเจพเจนเฉเจ) เจเจฟเจธ เจฐเจพเจนเฉเจ เจธเจฟเจฐเจซ เจจเจตเฉเจ เจธเฉฐเจธเจเจฐเจฃ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉเฅค เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจฎเฉเจจเฉเจ เจฒ เจฌเฉเจฐเจพเจเจเจผเจฟเฉฐเจ เจฒเจ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉเฅค
เจญเจตเจฟเฉฑเจ เจฆเฉ เจฒเฉเจเจพเจ เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจนเฉเจฐ เจธเจตเฉเจเจฒเจฟเจค เจนเฉฑเจฒเจพเจ เจฆเฉ เจเจพเจเจ เจเจฐเจพเจเจเฉ เจเฉ เจธเจพเจกเฉ เจฆเฉเจเจฐเจพ เจเฉเจคเฉ เจเจ เจเจผเจฟเจเจฆเจพเจคเจฐ เจเฉฐเจฎเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจฆเฉ เจนเจจเฅค
เจธเจพเจกเฉ เจฌเจฒเฉเจ 'เจคเฉ เจนเฉเจฐ เจฒเฉเจ เจตเฉ เจชเฉเฉเจนเฉ:
เจ เจงเจฟเจเจพเจฐ เจฆเฉ เจจเจพเจฒ เจเจฒเจฟเจเจนเจพเจเจธ เจคเฉเจ เจฌเจฟเจจเจพเจ เจ เจงเจฟเจเจพเจฐ เจฆเฉ เจเจฒเจฟเฉฑเจเจนเจพเจเจธ เจตเจฟเฉฑเจ เจฎเจพเจเจเฉเจฐเฉเจธเจผเจจ เจเฉ เจนเฉเจเจ? Nginx เจฒเจ เจกเจพเจเจจเจพเจฎเจฟเจ เจฎเฉเจกเฉเจเจฒ เจฌเจฃเจพเจเจฃเจพ nxs-build-tools เจจเฉเฉฐ เจ เฉฑเจชเจกเฉเจ เจเจฐเฉ - deb เจ เจคเฉ rpm เจชเฉเจเฉเจ เจฌเจฃเจพเจเจฃ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจนเจพเจเจ เจนเจพเจธเจผเฉเจเฉเจฐเจช เจเฉเจเจธเจฒ เจฆเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจ เจงเจฟเจเจพเจฐ เจฆเฉ เจเจพเจฃ-เจชเจเจพเจฃ Csync2 เจเจชเจฏเฉเจเจคเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจธเจฎเฉเจ เจธเจพเจจเฉเฉฐ เจเฉ เจธเจพเจนเจฎเจฃเจพ เจเจฐเจจเจพ เจชเจฟเจ เจฐเฉเฉฑเจกเจฎเจพเจเจจ เจฒเจ เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจฌเฉเจ. เจเจชเจฃเฉ เจ เจคเฉ เจฆเฉเจเจฟเจเจ เจฒเจ เจเฉเจตเจจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจธเจฐเจฒ เจฌเจฃเจพเจเจ เจเจพเจตเฉ
เจธเจฐเฉเจค: www.habr.com