1、什么是deployment
Deployment是⼀种更⾼阶资源,⽤于部署应⽤程序并以声明的⽅
式升级应⽤,⽽不是通过ReplicationController或ReplicaSet进⾏部署,
它们都被认为是更底层的概念。
当创建⼀个Deployment时,ReplicaSet资源也会随之创建(最终会
有 更 多 的 资 源 被 创 建 )
2、replicationController 的滚动升级,roll-update
3、相关命令
4、创建一个deployment
查看状态
5、deployment的升级策略
Recreate 策略在删除旧的pod之后才开始创建新的pod。如果你的应
⽤程序不⽀持多个版本同时对外提供服务,需要在启动新版本之前完
全停⽤旧版本,那么需要使⽤这种策略。但是使⽤这种策略的话,会
导致应⽤程序出现短暂的不可⽤。
RollingUpdate 策略会渐进地删除旧的pod,与此同时创建新的
pod,使应⽤程序在整个升级过程中都处于可⽤状态,并确保其处理请
求的能⼒没有因为升级⽽有所影响。这就是Deployment默认使⽤的升
级策略。升级过程中pod数量可以在期望副本数的⼀定区间内浮动,并
且其上限和下限是可配置的。如果应⽤能够⽀持多个版本同时对外提
供服务,则推荐使⽤这个策略来升级应⽤。
6、deployment回滚升级
6.1 回滚到上一版
6.2 查看版本历史
6.3 发布历史版本
7、控制发布速率
滚动升级策略的maxSurge和maxUnavailable属性
maxUnavailable 这个属性,它表⽰最⼤不可⽤pod数量。
maxSurge 超出期望pod的数量
8、暂停与恢复
恢复
9、deployment暂停不可以pod
rollout status 命令显⽰只有⼀个新副本启动,之后滚动升级过程没
有再继续下去,因为新的pod⼀直处于不可⽤状态。即使变为就绪状态
之后,也⾄少需要保持10秒,才是真正可⽤的。在这之前滚动升级过
程将不再创建任何新的pod,因为当前maxUnavailable属性设置为0,所
以也不会删除任何原始的pod。