zoukankan      html  css  js  c++  java
  • 回滚Deployment控制器下的应⽤发布

    若因各种原因导致滚动更新⽆法正常进⾏,如镜像⽂件获取失败、“⾦丝雀”遇险等,则应该将应⽤回滚到之前的版本,或者回滚到由⽤户指定的历史记录中的版本。
    Deployment控制器的回滚操作可使⽤“kubectl rollout undo”命令完成,例如,下⾯的命令可将myapp-deploy回滚⾄此前的版本:

    ~]$ kubectl rollout undo deployments myapp-deploy
    deployment.apps "myapp-deploy"
    

    等回滚完成后,验证myapp-deploy的ReplicaSet控制器对象是否已恢复到指定的历史版本以确保其回滚正常完成。在“kubectl rollout undo”命令上使⽤“--to-revision”选项指定revision号码即可回滚到历史特定版本,例如,假设myapp-deploy包含如下的revision历史记录:

    ~]$ kubectl rollout history deployments myapp-deploy
    deployments "myapp-deploy"
    REVISION CHANGE-CAUSE
    1 kubectl patch deployments myapp-deploy --patch={"spec": {"minReady-Seconds": 5}}
    2 kubectl patch deployments myapp-deploy --patch={"spec": {"strategy":{"rollingUpdate": {"maxSurge": 1, "maxUnavailable": 0}}}}
    3 kubectl set image deployments myapp-deploy myapp=ikubernetes/myapp:v3
    4 kubectl set image deployments myapp-deploy myapp=ikubernetes/myapp:v4
    

    若要回滚到号码为2的revision记录,则使⽤如下命令即可完成:

    ~]$ kubectl rollout undo deployments myapp-deploy --to-revision=2
    deployment.apps "myapp-deploy"
    

    回滚操作中,其revision记录中的信息会发⽣变动,回滚操作会被当作⼀次滚动更新追加进历史记录中,⽽被回滚的条⽬则会被删除。需要注意的是,如果此前的滚动更新过程处于“暂停”状态,那么回滚操作就需要先将Pod模板的版本改回到之前的版本,然后“继续”更新,否则,其将⼀直处于暂停状态⽽⽆法回滚。

  • 相关阅读:
    渚漪Day18——JavaWeb 09【JSP】
    渚漪Day17——JavaWeb 08【Session】
    渚漪Day16——JavaWeb 07【Cookie】
    渚漪Day15——JavaWeb 06【HTTPServletRequest】
    渚漪Day14——JavaWeb 05【HTTPServletResponse】
    Typora编写markdown 常用入门
    Vue 笔记
    ABCNN 学习笔记
    DSSM 学习笔记
    支持向量机 SVM 学习笔记
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/15184783.html
Copyright © 2011-2022 走看看