Deployment是更高阶的pod管理器,不应该使用底层的ReplicationController和ReplicaSet,当然Deployment创建了ReplicaSet,ReplicaSet管理pod。
为什么引入DeployMent,它的优点
Deployment应用
- 创建deployment时增加 - -record(此选项会记录历史版本号,对于回退版本有很好的帮助)
Deployment升级策略
- RollingUpdate 滚动升级。 默认升级策略
- Recreate 删除所有旧pod后创建新pod
回滚升级
- kubectl rollout undo deployment test 回退到上一个版本
- kubectl rollout history deployment test 查看历史版本
- kubectl rollout undo deployment test - -to-revision=1 回退到指定版本
- 默认保留10个ReplicaSet,可通过revisionHistoryLimit做限制
- 默认10分钟不能完成滚动升级,视为失败,可以配置progressDeadlineSeconds设置deadline
暂停滚动升级/恢复滚动升级
- kubectl rollout pause deployment test
- kubectl rollout resume deployment test
通过暂停恢复可以完成金丝雀发布
