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

  • 相关阅读:
    Ubuntu16.04下安装搜狗输入法及实现中英文转换问题
    OLED的使用-4线SPI驱动
    maven的pom.xml多个仓库配置
    Eclipse快捷键大全
    ubuntu18安装docker
    运行docker大致流程
    docker常用命令
    使用webhooks进行代码的自动化部署
    springboot整合dubbo+zookeeper最新详细
    那些好用到手软的软件和网站
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/15184783.html
Copyright © 2020-2023  润新知