Docker Kubernetes 容器更新与回滚

环境:

  • 系统:Centos 7.4 x64
  • Docker版本:18.09.0
  • Kubernetes版本:v1.8
  • 管理节点:192.168.1.79
  • 工作节点:192.168.1.78
  • 工作节点:192.168.1.77

创建环境:

  • 1、Deployment名称:nginx-deployment
  • 2、pods副本数为:3 
  • 3、image镜像:nginx1.9

更新升级

方案一:管理节点:滚动升级镜像。

  1. kubectl set image deployment nginx-deployment nginx=nginx:1.11
  1. kubectl set image 资源类型/资源名称 容器名称=镜像版本

命令注解

方案二:管理节点:修改原yaml配置文件重新加载完成滚动升级

  1. kubectl apply -f nginx-deployment.yaml

管理节点:查看升级情况

  1. 命令:kubectl describe deployment nginx-deployment
  2.  
  3. # 镜像已更新
  4. Image: nginx:1.11
  5. Type Reason Age From Message
  6. ---- ------ ---- ---- -------
  7. # 扩容版本
  8. Normal ScalingReplicaSet 24m deployment-controller Scaled up replica set nginx-deployment-845cfc7fb9 to 3
  9. Normal ScalingReplicaSet 49s deployment-controller Scaled up replica set nginx-deployment-7ff5df4cfb to 1
  10. # 缩容版本
  11. Normal ScalingReplicaSet 34s deployment-controller Scaled down replica set nginx-deployment-845cfc7fb9 to 2
  12. # 扩容版本
  13. Normal ScalingReplicaSet 34s deployment-controller Scaled up replica set nginx-deployment-7ff5df4cfb to 2
  14. # 缩容版本
  15. Normal ScalingReplicaSet 18s deployment-controller Scaled down replica set nginx-deployment-845cfc7fb9 to 1
  16. # 扩容版本
  17. Normal ScalingReplicaSet 18s deployment-controller Scaled up replica set nginx-deployment-7ff5df4cfb to 3
  18. # 缩容版本
  19. Normal ScalingReplicaSet 15s deployment-controller Scaled down replica set nginx-deployment-845cfc7fb9 to 0

查看deployment镜像升级描述信息

  1. 命令:kubectl rollout status deployment/nginx-deployment
  2. Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
  3. Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
  4. Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
  5. Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
  6. Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
  7. Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
  8. Waiting for rollout to finish: 1 old replicas are pending termination...
  9. Waiting for rollout to finish: 1 old replicas are pending termination...
  10. deployment "nginx-deployment" successfully rolled out

实时观察发布状态:

  1. 命令:kubectl rollout history deployment/nginx-deployment
  2. deployments "nginx-deployment"
  3. REVISION CHANGE-CAUSE
  4. 1 <none>
  5. 2 <none>

查看deployment历史修订版本

  1. 命令:kubectl rollout history deployment/nginx-deployment --revision=1
  2.  
  3. deployments "nginx-deployment" with revision #
  4. Pod Template:
  5. Labels: app=nginx
  6. pod-template-hash=4017973965
  7. Containers:
  8. nginx:
  9. Image: nginx:1.10
  10. Port: 80/TCP
  11. Environment: <none>
  12. Mounts: <none>
  13. Volumes: <none>

查看指定历史修订版本


版本回滚

管理节点:回滚到上一个版本

  1. kubectl rollout undo deployment nginx-deployment
  1. kubectl rollout undo 资源类型 资源名称

命令注解

管理节点:指定版本回滚

  1. kubectl rollout undo deployment/nginx-deployment --to-revision=3
  1. kubectl rollout undo 资源类型 资源名称 --to-revision=版本号
  2.  
  3. 注:kubectl rollout history 资源类型 资源名称 查看的版本号。

命令注解

管理节点:查看回滚情况

  1. 命令:kubectl rollout history deployment/nginx-deployment
  2.  
  3. deployments "nginx-deployment"
  4. REVISION CHANGE-CAUSE
  5. 1 <none>
  6. 2 <none>
  7. 4 <none>
  8. 5 <none>
  9. 注:将还原版本覆盖,并生成新的版本号。

查看deployment历史修订版本

Docker Kubernetes 容器更新与回滚的更多相关文章

  1. Kubernetes:更新与回滚

    Blog:博客园 个人 除了创建,Deployment 提供的另一个重要的功能就是更新应用,这是一个比创建复杂很多的过程.想象一下在日常交付中,在线升级是一个很常见的需求,同时应该尽量保证不能因为升级 ...

  2. Docker Swarm(八)滚动更新、回滚服务

    滚动更新.回滚服务 默认情况下, swarm一次只更新一个副本,并且两个副本之间没有等待时间,我们可以通过: # 定义并行更新的副本数量--update-parallelism# 定义滚动更新的时间间 ...

  3. Docker Swarm 服务版本更新与回滚

    Docker Swarm 服务版本更新 环境: 系统:Centos 7.4 x64 应用版本:Docker 18.09.0 管理节点:192.168.1.79 工作节点:192.168.1.78 工作 ...

  4. Docker Kubernetes 容器扩容与缩容

    Docker Kubernetes 容器扩容与缩容 环境: 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 管理节点:192.168.1.79 ...

  5. Docker Kubernetes 容器重启策略

    Docker Kubernetes 容器重启策略 当容器被创建时,容器会根据重启策略来进行容器重启. 支持三种策略: Always:当容器终止退出后,总是重启容器,默认策略. OnFailure:当容 ...

  6. deployment控制pod进行滚动更新以及回滚

    更新pod镜像两种方式: 方式一:kubectl set image deployment/${deployment name} ${container name}=${image} 例: kubec ...

  7. kubernetes deployment升级和回滚

    a.创建deployment pod kubectl run mynginx --image=docker.io/nginx: --record 准备svc文件 apiVersion: v1 kind ...

  8. 【linux】【jenkins】jenkins构建、mvn或者npm打包、docker运行、失败自动回滚脚本

    小白对jenkins运维的使用有点简单的想法,这里开个记录贴记录下. 由于未找到jenkins构建失败后执行其他脚本的插件,也暂时没有使用其他运维工具.所以想自己写一个shell脚本,一是方便其他人使 ...

  9. linux运维、架构之路-K8s滚动更新及回滚

    一.滚动更新        应用程序一次只更新一小部分副本,更新成功后,再更新更多的副本,最终完成所有副本的更新. 滚动更新的优点:零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 1. ...

随机推荐

  1. postgresql免密码登录

    https://www.postgresql.org/docs/8.3/static/libpq-pgpass.html vi ~/.pgpass 输入以下内容 hostname:port:datab ...

  2. Nest.js 拦截器

    Docs: https://docs.nestjs.com/interceptors 该对象包含从路由处理程序返回的值 在方法执行之前/之后绑定额外的逻辑 转换函数返回的结果 转换从函数抛出的异常 / ...

  3. nvm的安装

    安装前可先卸载原来的node, npm, 安装成功后,可用nvm装node 一.用nvm-noinstall.zip安装 1.nvm-windows 下载 https://github.com/cor ...

  4. ASP.NET页面使用JQuery EasyUI生成Dialog后台取值为空

    原因: JQuery EasyUI生成Dialog后原来的文档结构发生了变化,原本在form里的内容被移动form外面,提交到后台后就没有办法取值了. 解决办法: 在生成Dialog后将它append ...

  5. Android基础总结+SQlite数据库【申明:来源于网络】

    Android基础总结+SQlite数据库[申明:来源于网络] 基础总结篇之一:Activity生命周期:http://blog.csdn.net/liuhe688/article/details/6 ...

  6. springboot+mybatis+druid数据库连接池

    参考博客https://blog.csdn.net/liuxiao723846/article/details/80456025 1.先在pom.xml中引入druid依赖包 <!-- 连接池 ...

  7. ASP.NET Core 集成测试中通过 Serilog 向控制台输出日志

    日志是程序员的雷达,不仅在生产环境中需要,在集成测试环境中也需要,可以在持续集成失败后帮助定位问题.与生产环境不同,在集成测试环境中使用控制台输出日志更方便,这样可以通过持续集成 runner 执行 ...

  8. servlet 执行顺序

    public class TestServelt { public static void main(String[] args) { ChildServlet childServlet = new ...

  9. idea实用插件

    代码规范检测插件: Alibaba Java Coding GuideLines使用@data插件lombok数据库mapper插件mybatisX前端运行vue的插件,装起了后在Terminal上运 ...

  10. NodeJS笔记(二)- 修改模块默认保存路径

    参考:nodejs prefix(全局)和cache(缓存)windows下设置 假设nodejs根目录为“D:\nodejs” 如下所示,新建“node_cache”文件夹用来存放全局缓存 该路径下 ...