K8s deployment
概念:deployment提供了一种更加简单的更新RC和Pod的机制,K8S版本1.2实现的,Deployment主要职责同样是为了保证pod的数量和健康,90%的功能与RC完全一样,可以看做新一代的RC。功能:Deployment集成了上线部署、滚动升级、创建副本、暂停上线任务,恢复上线任务,回滚到以前某一版本(成功/稳定)的Deployment等功能,在某种程度上,Depl...
概念:
deployment提供了一种更加简单的更新RC和Pod的机制,K8S版本1.2实现的,Deployment主要职责同样是为了保证pod的数量和健康,90%的功能与RC完全一样,可以看做新一代的RC。
功能:
Deployment集成了上线部署、滚动升级、创建副本、暂停上线任务,恢复上线任务,回滚到以前某一版本(成功/稳定)的Deployment等功能,在某种程度上,Deployment可以实现无人值守的上线。
RC全部功能:Deployment继承了RC全部功能。
事件和状态查看:可以查看Deployment的升级详细进度和状态。
回滚:当升级pod镜像或者相关参数时发现问题,可以使用回滚操作回滚到上一个稳定的版本或者指定的版本。
版本记录:每次对Deployment的操作,都能保存下来,给予后续可能的回滚使用。
暂停和启动:对于每一次升级,都能够随时暂停和启动。
多种升级方案:Recreate--删除所有已存在的pod,重新创建新的; RollingUpdate--滚动升级,逐步替换的策略,同时滚动升级时,支持更多的附加参数,例如设置最大不可用pod数量,最小升级间隔时间等等。
使用场景:
使用Deployment来启动(上线/部署)一个Pod或者RS
检查一个Deployment是否成功执行
更新Deployment来重新创建相应的Pods(例如,需要使用一个新的Image)
如果现有的Deployment不稳定,那么回滚到一个早期的稳定的Deployment版本
暂停或者恢复一个Deployment
常用命令:
创建
使用子命令create,创建Deployment
kubectl create -f test-dpm.yaml --record
注意--record参数,使用此参数将记录后续创建对象的操作,方便管理与问题追溯
查看部署状态
kubectl rolloutstatus deployment/lykops-dpm
kubectl describe deployment/lykops-dpm
升级
kubectl set image deployment/lykops-dpm lykops-dpm=app:v1
或者使用子命令edit,编辑spec.replicas/spec.template.spec.container.image字段,完成deployment的扩缩容与滚动升级(这要比子命令rolling-update速度快很多)
暂定升级
kubectl rolloutpause deployment/lykops-dpm
继续升级
kubectl rolloutresume deployment/lykops-dpm
回滚
kubectl rolloutundo deployment/lykops-dpm
查看deployments版本
kubectl rollouthistory deployments
回滚到指定版本
kubectl rolloutundo deployment/lykops-dpm --to-revision=2
更多推荐
所有评论(0)