K8s deployment

概念:
    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

猜你喜欢

转载自blog.csdn.net/qq_42409788/article/details/88575646