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模板的版本改回到之前的版本,然后“继续”更新,否则,其将⼀直处于暂停状态⽽⽆法回滚。

  • 相关阅读:
    教师不能太过于追求技巧
    两个有意思的数学谜题
    终于有博客啦
    215665645555
    Python 正则表达式之 sub 和 subn函数的使用
    python中可变数据类型和不可变数据类型
    python面试题手动总结答案锦集
    如何优雅的使用python中的代码注释
    使用win32com操作woord的方法记录
    redis问题:redis-server.exe双击闪退 win10系统
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/15184783.html
Copyright © 2011-2022 走看看