通过定义 maxsurge 和 maxUnavailable 来实现滚动升级的速度,滚动升级中,可以使用 kubectl rollout pause 来实现暂停。
[root@hdss7-200 deployment]# vim /data/k8s-yaml/base_resource/deployment/nginx-v1.14.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deploy
namespace: app
spec:
replicas: 5
selector:
matchLabels:
app: nginx
release: stable
tier: slb
partition: website
strategy:
rollingUpdate:
# 以下两项,控制升级速度
maxSurge: 1
maxUnavailable: 0
template:
metadata:
labels:
app: nginx
release: stable
tier: slb
partition: website
# 修改版本
version: v1.14
spec:
containers:
- name: nginx-pod
# 修改镜像版本
image: harbor.od.com/public/nginx:v1.14
lifecycle:
postStart:
exec:
command:
- /bin/bash
- -c
- "echo 'health check ok!' > /usr/share/nginx/html/health.html"
readinessProbe:
initialDelaySeconds: 5
httpGet:
port: 80
path: /health.html
livenessProbe:
initialDelaySeconds: 10
periodSeconds: 5
httpGet:
port: 80
path: /health.html
[root@hdss7-21 ~]# kubectl apply --filename=http://k8s-yaml.od.com/base_resource/deployment/nginx-v1.14.yaml --record=true
[root@hdss7-21 ~]# kubectl get rs -n app -l tier=slb -L version # replicaset 数量增加
NAME DESIRED CURRENT READY AGE VERSION
nginx-deploy-5597c8b45 0 0 0 155m v1.12
nginx-deploy-6bd88df699 0 0 0 154m v1.13
nginx-deploy-7c5976dcd9 5 5 5 83s v1.14
[root@hdss7-21 ~]# kubectl rollout history deployment nginx-deploy -n app # 升级记录
REVISION CHANGE-CAUSE
1 kubectl apply --filename=http://k8s-yaml.od.com/base_resource/deployment/nginx-v1.12.yaml --record=true
2 kubectl apply --filename=http://k8s-yaml.od.com/base_resource/deployment/nginx-v1.13.yaml --record=true
3 kubectl apply --filename=http://k8s-yaml.od.com/base_resource/deployment/nginx-v1.14.yaml --record=true
[root@hdss7-21 ~]# kubectl get pod -n app -l partition=website -L version -w # 逐个滚动升级
NAME READY STATUS RESTARTS AGE VERSION
nginx-deploy-6bd88df699-242fr 1/1 Running 0 152m v1.13
nginx-deploy-6bd88df699-4kj8z 1/1 Running 0 152m v1.13
nginx-deploy-6bd88df699-8j85n 1/1 Running 0 152m v1.13
nginx-deploy-6bd88df699-8pmdg 1/1 Running 0 152m v1.13
nginx-deploy-6bd88df699-n7x6n 1/1 Running 0 152m v1.13
nginx-deploy-7c5976dcd9-ttlqx 0/1 Pending 0 0s v1.14
nginx-deploy-7c5976dcd9-ttlqx 0/1 Pending 0 0s v1.14
nginx-deploy-7c5976dcd9-ttlqx 0/1 ContainerCreating 0 0s v1.14
nginx-deploy-7c5976dcd9-ttlqx 0/1 Running 0 1s v1.14
nginx-deploy-7c5976dcd9-ttlqx 1/1 Running 0 9s v1.14
nginx-deploy-6bd88df699-8pmdg 1/1 Terminating 0 153m v1.13
......