Kubernetes-เตฝ เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดเดเตเดเตพ Gitlab CI, เดฎเดพเดจเตเดตเตฝ GitOps เดเดจเตเดจเดฟเดต เดเดชเดฏเตเดเดฟเดเตเดเตเด.
เด เดชเดฐเดฎเตเดชเดฐเดฏเดฟเดฒเต เดฒเตเดเดจเดเตเดเตพ:
- (เด เดฒเตเดเดจเด)
ArgoCI เดเดชเดฏเตเดเดฟเดเตเดเต เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด - เดเดธเตเดคเดฟเดฏเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด
- Jenkins-X Istio Flagger เดเดชเดฏเตเดเดฟเดเตเดเตเดณเตเดณ เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด
GitOps เดตเดดเดฟ เดเดเตเดเตพ เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด เดธเตเดตเดฎเตเดงเดฏเดพ เดจเดฟเตผเดตเดนเดฟเดเตเดเตเดเดฏเตเด เดชเตเดฐเดงเดพเดจ เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเดฑเดตเดฟเดเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด/เดชเดฐเดฟเดทเตโเดเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด. เด เดฒเตเดเดจเด เดชเตเดฐเดพเดฅเดฎเดฟเดเดฎเดพเดฏเดฟ เดเดฎเตเดเดคเตเดคเดฟเดจเต เดตเตเดฃเตเดเดฟเดฏเตเดณเตเดณเดคเดพเดฃเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเดพเดจเดฑเดฟเดฏเดฟเตฝ เดตเดฟเดจเตเดฏเดพเดธเด เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต เดเดจเตเดจเดคเดฟเดจเตเดชเตเดชเด, เดเตเดเตเดคเตฝ เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฏ เดเดเตเดเตเดฎเตเดทเตป เดฐเตเดคเดฟเดเตพ เดเดณเตเดณเดคเดฟเดจเดพเตฝ, เด เดคเต เดเดเตเดเตพ เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฒเตเดเดจเดเตเดเดณเดฟเตฝ เดชเดฐเดฟเดเดฃเดฟเดเตเดเตเด.
เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด
เดเดพเดจเดฑเดฟ เดธเตเดเตเดฐเดพเดฑเตเดฑเดเดฟ เดเดชเดฏเตเดเดฟเดเตเดเต, เด เดชเตเดกเตเดฑเตเดฑเตเดเตพ เดเดฆเตเดฏเด เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเตเดเต เดเดฐเต เดเดชเดตเดฟเดญเดพเดเดคเตเดคเดฟเดจเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต. เดจเดฟเดฐเตเดเตเดทเดฃเด, เดฒเตเดเต เดกเดพเดฑเตเดฑ, เดฎเดพเดจเตเดตเตฝ เดเตเดธเตเดฑเตเดฑเดฟเดเดเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฎเดฑเตเดฑเต เดซเตเดกเตโเดฌเดพเดเตเดเต เดเดพเดจเดฒเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเดฟเดฒเตเดเต, เดเดฒเตเดฒเดพ เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพเดเตเดเตเด เดฑเดฟเดฒเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดฑเดฟเดฒเตเดธเต เดชเดฐเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเต.
เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดตเดฟเดจเตเดฏเดพเดธเด (เดฑเตเดณเดฟเดเดเต เด เดชเตโเดกเตเดฑเตเดฑเต)
Kubernetes เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเดณเตเดณ เดกเดฟเดซเตเตพเดเตเดเต เดคเดจเตเดคเตเดฐเด เดฑเตเดณเดฟเดเดเต-เด เดชเตโเดกเตเดฑเตเดฑเดพเดฃเต, เด เดตเดฟเดเต เดเดฟเดคเตเดฐเดเตเดเดณเตเดเต เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเตเดเตพเดเตเดเตเดชเตเดชเด เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดเดฃเตเดฃเด เดชเตเดกเตเดเตพ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต. เด เดต เดชเตเดฐเดถเตโเดจเดเตเดเดณเดฟเดฒเตเดฒเดพเดคเต เดธเตเดทเตโเดเดฟเดเตเดเดคเดพเดฃเตเดเตเดเดฟเตฝ, เดเดฟเดคเตเดฐเดเตเดเดณเตเดเต เดชเดดเดฏ เดชเดคเดฟเดชเตเดชเตเดเดณเตเดณเตเดณ เดชเตเดกเตเดเตพ เด เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เดชเตเดคเดฟเดฏ เดชเตเดกเตเดเตพ เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดธเตเดทเตโเดเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
GitOps
เด เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดเดเตเดเตพ GitOps เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต เดเดพเดฐเดฃเด เดเดเตเดเตพ:
- เดธเดคเตเดฏเดคเตเดคเดฟเดจเตเดฑเต เดเดฐเตเดฑเตเดฑ เดเดฑเดตเดฟเดเดฎเดพเดฏเดฟ Git เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต
- เดจเดฟเตผเดฎเตเดฎเดพเดฃเดคเตเดคเดฟเดจเตเด เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเดฎเดพเดฏเดฟ เดเดเตเดเตพ Git เดเดชเตเดชเดฑเตเดทเดจเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต (เดเดฟเดฑเตเดฑเต เดเดพเดเต/เดฒเดฏเดจเด เดเดดเดฟเดเตเดฏเตเดณเตเดณ เดเดฎเดพเตปเดกเตเดเตพ เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ)
เดเดฆเดพเดนเดฐเดฃเด:
เดจเดฎเตเดเตเดเต เดเดฐเต เดจเดฒเตเดฒ เดถเตเดฒเด เดเดเตเดเตเดเดพเด - เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเตเดกเดฟเดจเดพเดฏเดฟ เดเดฐเต เดถเตเดเดฐเดตเตเด เดเตปเดซเตเดฐเดพเดธเตเดเตเดฐเดเตเดเดฑเดฟเดจเดพเดฏเดฟ เดเดจเตเดจเต.
เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดถเตเดเดฐเด
เดเดคเต JSON เดเดฏเดฟ เดเดฐเต เดชเตเดฐเดคเดฟเดเดฐเดฃเด เดจเตฝเดเตเดจเตเดจ เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดเดฐเต Python+Flask API เดเดฃเต. เดเดเตเดเตพ GitlabCI เดตเดดเดฟ เดชเดพเดเตเดเตเดเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดเดฏเตเด เดซเดฒเด Gitlab เดฐเดเดฟเดธเตเดเตเดฐเดฟเดฏเดฟเดฒเตเดเตเดเต เดคเดณเตเดณเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด. เดฐเดเดฟเดธเตเดเตเดฐเดฟเดฏเดฟเตฝ เดเดเตเดเตพเดเตเดเต เดฐเดฃเตเดเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเดคเดฟเดชเตเดชเตเดเตพ เดเดฃเตเดเต:
wuestkamp/k8s-deployment-example-app:v1
wuestkamp/k8s-deployment-example-app:v2
เดคเดฟเดฐเดฟเดเต เดจเตฝเดเดฟเดฏ JSON เดซเดฏเดฒเดฟเดฒเต เดฎเดพเดฑเตเดฑเด เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด เดต เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเด. เดเดคเต เดชเดคเดฟเดชเตเดชเตเดฎเดพเดฏเดพเดฃเต เดเดเตเดเตพ เดเดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด เดจเดเดคเตเดคเตเดจเตเดจเดคเตเดจเตเดจเต เดเดดเดฟเดฏเตเดจเตเดจเดคเตเดฐ เดเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดฆเตเดถเตเดฏเดตเตฝเดเตเดเดฐเดฟเดเตเดเดพเตป เดเดเตเดเตพ เด เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต.
เดเตปเดซเตเดฐเดพเดธเตเดเตเดฐเดเตเดเตผ เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟ
เด เดเตเดฃเดฟเดชเตเดชเดฟเตฝ เดเดเตเดเตพ GitlabCI เดตเดดเดฟ เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเตเดเตเดเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเด, .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 เดตเดดเดฟ เดเดฒเตเดฒเดพเด เด เดชเตโเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเตป Kubernetes เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เด เดเดเตเดเดเตเดเตพ เดธเตโเดเตเดฐเดฟเดชเตโเดฑเตเดฑเตเดเดณเดฟเดฒเตเดเต เดเดเตเดเตเดฎเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด.
เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดฃเตเด เดฎเดฑเตเดฑเตเดฐเต เดเดพเดฐเตเดฏเด เดเดฐเต เดเตเดธเตเดฑเตเดฑเตผ เดเตปเดเตเดฐเดฟ เดชเตเดฏเดฟเดจเตเดฑเดพเดฃเต (LoadBalancer เด เดฒเตเดฒเตเดเตเดเดฟเตฝ Ingress เดตเดดเดฟ) เด เดคเดฟเดฒเตเดเต เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เดฎเดพเดคเตเดฐเดฎเต เดเดเตเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเต. เดเดคเต เดฎเดพเดจเตเดตเตฝ เดฌเตเดฐเตเดธเดฟเดเตเดเดฟเดจเต เดเดชเดฏเตเดเดฟเดเตเดเดพเด.
เดญเดพเดตเดฟเดฏเดฟเดฒเต เดฒเตเดเดจเดเตเดเดณเดฟเตฝ, เดเดเตเดเตพ เดเตเดฏเตเดค เดฎเดฟเดเตเด เดเดพเดฐเตเดฏเดเตเดเดณเตเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจ เดฎเดฑเตเดฑเต เดเดเตเดเตเดฎเตเดฑเตเดฑเดกเต เดธเตเดฒเตเดฏเตเดทเดจเตเดเตพ เดเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเด.
เดเดเตเดเดณเตเดเต เดฌเตเดฒเตเดเดฟเดฒเต เดฎเดฑเตเดฑเต เดฒเตเดเดจเดเตเดเดณเตเด เดตเดพเดฏเดฟเดเตเดเตเด:
ClickHouse-เตฝ เดจเดฟเดจเตเดจเต เด เดจเตเดฎเดคเดฟเดฏเดฟเดฒเตเดฒเดพเดคเต ClickHouse-เดฒเตเดเตเดเต เด เดจเตเดฎเดคเดฟเดฏเตเดเตเดฏเตเดณเตเดณ เดฎเตเดเตเดฐเตเดทเตป เดเดจเตเดคเดฟเดฒเตเดเตเดเต เดจเดฏเดฟเดเตเดเต? Nginx-เดจเดพเดฏเดฟ เดกเตเดจเดพเดฎเดฟเดเต เดฎเตเดกเตเดฏเตเดณเตเดเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเต nxs-build-tools เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด - deb, rpm เดชเดพเดเตเดเตเดเตเดเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดธเดนเดพเดฏเดฟ เดนเดพเดทเดฟเดเตเตผเดชเตเดชเต เดเตเตบเดธเดฒเดฟเดจเตเดฑเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเดคเดฑเตเดธเตเดทเดจเตเดฑเต เดเดฎเตเดเด Csync2 เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ เดจเดฎเตเดฎเตพ เด เดญเดฟเดฎเตเดเตเดเดฐเดฟเดเตเดเตเดฃเตเดเดฟ เดตเดจเตเดจ เดเดพเดฐเตเดฏเดเตเดเตพ Redmine-เดจเตเดณเตเดณ เดเตเดฒเดฟเดเตเดฐเดพเด เดฌเตเดเตเดเต. เดจเดฟเดเตเดเตพเดเตเดเตเด เดฎเดฑเตเดฑเตเดณเตเดณเดตเตผเดเตเดเตเดฎเดพเดฏเดฟ เดเตเดตเดฟเดคเด เดเดเตเดเดจเต เดฒเดณเดฟเดคเดฎเดพเดเตเดเดพเด
เด เดตเดฒเดเดฌเด: www.habr.com