部署服务的时候我们希望服务的更新对用户是无感知的,deployment提供了很
好的服务。
滚动升级
1 2 3 4 5 6 7
| replicas: 2 minReadySeconds: 5 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 1
|
- minReadySeconds:
- Kubernetes在等待设置的时间后才进行升级
- 如果没有设置该值,Kubernetes会假设该容器启动起来后就提供服务了
- 如果没有设置该值,在某些极端情况下可能会造成服务服务正常运行
- maxSurge:
- 升级过程中最多可以比原先设置多出的POD数量
- 例如:maxSurage=1,replicas=5,则表示Kubernetes会先启动1一个新的Pod后才删掉一个旧的POD,整个升级过程中最多会有5+1个POD。
- maxUnavaible:
- 升级过程中最多有多少个POD处于无法提供服务的状态
- 当
maxSurge
不为0时,该值也不能为0
- 例如:maxUnavaible=1,则表示Kubernetes整个升级过程中最多会有1个POD处于无法服务的状态。
回滚
1
| kubectl rollout history deployment nginx-deploy
|
执行Deployment升级的时候最好带上record
参数,可以方便查看历史信息
1
| kubectl rollout history deployment nginx-deploy --revision=3
|
1
| kubectl rollout undo deployment nginx-deploy --to-revision=2
|
上一篇:kubeadm升级kubernetes到1.15.0版本
下一篇:weave scope可视化监控