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

  • 相关阅读:
    SQL Select Case
    Fxcop:Globlization warning/全球化警告
    How to get free(available) physical memory/获取可用的内存
    CA2000: Dispose objects before losing scope/在退出作用域前Dispose object
    并行编译Parallel Building
    VS2010 WebInstall/web安装
    欧洲天空访问
    .NET Framework Client Profile/.net framework 客户端配置
    新书推荐:Practical Code Generation in .NET: Covering Visual Studio 2005, 2008, and 2010
    Disable floppy driver(禁用软盘)
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/15184783.html
Copyright © 2011-2022 走看看