更新
kubectlapply -f demo.yaml --record
回滚
kubectl apply每次更新应用时,Kubernetes都会记录下当前的配置,保存为一个revision(版次),这样就可以回滚到某个特定revision。
kubectl apply -f demo.yaml --record
–record的作用是将当前命令记录到revision记录中,这样我们就可以知道每个revison对应的是哪个配置文件了
通过kubectl rollout history deployment demo
查看revison历史记录.
如果要回滚到某个版本,比如 revision 1,可以执行命令kubectl rollout undo deployment demo --to-revision=1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: zzz
spec:
revisionHistoryLimit: 10 ①
strategy: ②
rollingUpdate:
maxSurge: 35%
maxUnavailable: 35%
replicas: 7
template:
metadata:
labels:
app: web_server
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
nodeSelector:
disktype: ssd
①Kubernetes只会保留最近的几个revision,以便回滚
②maxSurge控制滚动更新过程中副本总数超过DESIRED的上限,maxUnavailable不可用的副本相占DESIRED的最大比例(滚动升级失败)