专栏首页阿林前端开发攻城狮Deployment回滚操作方法
原创

Deployment回滚操作方法

Deployment回滚

生产环境中可能由于一些原因,导致需要回滚操作,这个时候我们就可以使用Deployment回滚操作,这里我们还是以更新nginx镜像为案例:

  1. 将nginx镜像版本更新为Nginx:1.99,在镜像仓库中是不存在该镜像版本的;
kubectl set image deployment/nginx-deployment nginx=nginx:1.99
  1. 查看滚动更新的过程,我们会发现滚动更新被卡死了;
kubectl rollout status deployments nginx-deployment

  1. 查看Pod的状态,这个时候我们会发现镜像一直处于被拉取的状态;
kubectl get pods
  1. 为了解决该问题,这个时候我们需要进行回滚操作,我们可以通过kubectl rollout history查看Deployment的部署历史记录,通过kubectl rollout undo命令回滚到上一个部署版本,当然也可以指定版本回滚;
#查看Deployment的部署历史记录
kubectl rollout history deployment/nginx-deployment
#查看Deployment的指定版本部署情况
kubectl rollout history deployment/nginx-deployment --revision=3
#回滚到上一个版本
kubectl rollout undo deployment/nginx-deployment
#指定版本回滚
kubectl rollout undo deployment/nginx-deployment  --to-revision=2
  1. 查看整个回滚过程的事件信息,回滚的过程就是将新建的ReplicaSet缩容就可以了;
kubectl describe deployment/nginx-deployment
暂停和恢复Deployment

对于复杂的Deployment配置修改,为了避免频繁的触发Deployment的更新操作,可以先暂停Deployment的更新操作,然后进行配置修改,在恢复Deployment,一次性触发完整的更新操作。

  1. 通过kubectl rollout pause 命令暂停Deployment的更新操作;
kubectl rollout pause deployment/nginx-deployment
  1. 修改Deployment的镜像信息;
kubectl set image deployment/nginx-deployment nginx=nginx:1.18.0 
  1. 查看Deployment事件信息,我们会发现Deployment并没有更新操作;
kubectl describe deployment/nginx-deployment

  1. 通过kubectl rollout resume命令恢复Deployment的更新操作;
kubectl rollout resume deployment nginx-deployment
  1. 再次查看Deployment事件信息或者查看ReplicaSet信息,我们会发现Deployment开始更新操作;
#查看事件信息
kubectl describe deployment/nginx-deployment
#查看信息
kubectl get rs

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

关注作者,阅读全部精彩内容

我来说两句

0 条评论
登录 后参与评论

相关文章

  • kubernetes常用控制器之Deployment

    Deployment实现了Kubernetes项目中非常重要的功能: (1)、水平扩展 (2)、水平收缩

    极客运维圈
  • Git撤销&回滚操作

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    奋飛
  • Git撤销&回滚操作

    上述场景一,在未进行git push前的所有操作,都是在“本地仓库”中执行的。我们暂且将“本地仓库”的代码还原操作叫做“撤销”!

    奋飛
  • deployment controller 源码分析

    在前面的文章中已经分析过 kubernetes 中多个组件的源码了,本章会继续解读 kube-controller-manager 源码,kube-contro...

    田飞雨
  • deployment controller 源码分析

    在前面的文章中已经分析过 kubernetes 中多个组件的源码了,本章会继续解读 kube-controller-manager 源码,kube-contro...

    田飞雨
  • replicaset controller 源码分析

    在前面的文章中已经分析过 kubernetes 中多个组件的源码了,本章会继续解读 kube-controller-manager 源码,kube-contro...

    田飞雨
  • 022.掌握Pod-Pod升级和回滚

    若Pod是通过Deployment创建的,可以在运行时修改Deployment的Pod定义(spec.template)或镜像名称,并应用到Deployment...

    木二
  • 云原生技术之kubernetes学习笔记(8)---Deployment控制器

    Deployment是k8s中比较常用的控制器,它实现了k8s中一个重要的功能:Pod的水平扩展和水平收缩。

    AsiaYe
  • 「走进k8s」Kubernetes1.15.1的Deployment 的使用(22)

    多种升级方案:Recreate:删除所有已存在的pod,重新创建新的; RollingUpdate:滚动升级,逐步替换的策略,同时滚动升级时,支持更多的附加参数...

    IT架构圈
  • 深入玩转K8S之简单的业务弹性伸缩和滚动更新操作

    在实际应用场景中避免不了因为业务的压力而增加容器数量以及业务应用版本迭代更新,那么本篇文章我们来学习下简单的业务弹性伸缩、滚动更新操作,滚动操作的好处在于零停机...

    DevinGeng
  • K8s上的Go服务怎么扩容、发版更新、回滚、平滑重启?教你用Deployment全搞定!

    经过前面不少文章的铺垫,终于可以写这个大家都感兴趣的话题了,在前面两篇文章,我们讲了Kubernetes里的 Pod和 副本集ReplicaSet (RS) 这...

    KevinYan
  • k8s工作负载资源之deployment

    首先我们要理解:一个应用跑在k8s集群上了,那么这个应用就是一个工作负载(workloads)。

    公众号 容器云实践
  • 3.深入k8s:Deployment控制器

    Deployment可以做到很便捷的管理Pod,只需要在Deployment中描述一下希望的Pod状态时什么,包括定义Pod副本数、滚动升级和回滚应用、扩容和缩...

    luozhiyun
  • Deployment vs ReplicationController in Kubernetes

    此文主要选择了两个最常用的 controller : Deployment 和 ReplicationController ,从各自功能,优缺点方面进行对比,...

    腾讯云容器服务团队
  • kubernetes系列教程(十一)深入学习Deployment控制器

    前面的文章我们深入介绍了Pod的使用,包括Pod定义,Pod资源管理和服务质量,Pod健康检查,Pod存储管理,Pod调度,当Pod所在的node异常时,Pod...

    HappyLau谈云计算
  • ASP.NET Core on K8S深入学习(5)Rolling Update

    本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。

    Edison Zhou
  • Kubernetes源码解析之controller-manager deployment同步流程

    在K8s集群上可使用Kubectl命令以指定文件方式创建一个kind=Deployment的资源对象 $ kubectl create -f nginx.ya...

    你算哪块香橙夹心饼干
  • 浅入Kubernetes(12):Deployment 的升级、回滚

    打开 https://hub.docker.com/_/nginx 可以查询 nginx 的镜像版本,我们可以先选择一个旧一点的版本。

    痴者工良
  • Kubernetes--玩转Pod滚动更新123

    今天推荐一篇关于Kubernetes上服务滚动更新相关的配置选项的文章,文章列出了最常用的几个配置项,解释了他们是怎么影响调度器对服务进行滚动更新的,同时还带出...

    KevinYan

扫码关注云+社区

领取腾讯云代金券