Rolling Update - 每天5分钟玩转 Docker 容器技术(140)
滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新。滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性。
下面我们部署三副本应用,初始镜像为 httpd:2.2.31,然后将其更新到 httpd:2.2.32。
httpd:2.2.31 的配置文件如下:

通过 kubectl apply 部署。

部署过程如下:
创建 Deployment
httpd创建 ReplicaSet
httpd-551879778创建三个 Pod
当前镜像为
httpd:2.2.31
将配置文件中 httpd:2.2.31 替换为 httpd:2.2.32,再次执行 kubectl apply。

我们发现了如下变化:
Deployment
httpd的镜像更新为httpd:2.2.32新创建了 ReplicaSet
httpd-1276601241,镜像为httpd:2.2.32,并且管理了三个新的 Pod。之前的 ReplicaSet
httpd-551879778里面已经没有任何 Pod。
结论是:ReplicaSet httpd-551879778 的三个 httpd:2.2.31 Pod 已经被 ReplicaSet httpd-1276601241 的三个 httpd:2.2.32 Pod 替换了。
具体过程可以通过 kubectl describe deployment httpd 查看。

每次只更新替换一个 Pod:
ReplicaSet
httpd-1276601241增加一个 Pod,总数为 1。ReplicaSet
httpd-551879778减少一个 Pod,总数为 2。ReplicaSet
httpd-1276601241增加一个 Pod,总数为 2。ReplicaSet
httpd-551879778减少一个 Pod,总数为 1。ReplicaSet
httpd-1276601241增加一个 Pod,总数为 3。ReplicaSet
httpd-551879778减少一个 Pod,总数为 0。
每次替换的 Pod 数量是可以定制的。Kubernetes 提供了两个参数 maxSurge 和 maxUnavailable 来精细控制 Pod 的替换数量,我们将在后面结合 Health Check 特性一起讨论。
下一节我们讨论如何回滚。
书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html

Rolling Update - 每天5分钟玩转 Docker 容器技术(140)的更多相关文章
- 在 Rolling Update 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(146)
上一节讨论了 Health Check 在 Scale Up 中的应用,Health Check 另一个重要的应用场景是 Rolling Update.试想一下下面的情况: 现有一个正常运行的多副本应 ...
- Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)
微服务架构的应用由若干 service 组成.比如有运行 httpd 的 web 前端,有提供缓存的 memcached,有存放数据的 mysql,每一层都是 swarm 的一个 service,每个 ...
- 外网如何访问 Service?- 每天5分钟玩转 Docker 容器技术(139)
除了 Cluster 内部可以访问 Service,很多情况我们也希望应用的 Service 能够暴露给 Cluster 外部.Kubernetes 提供了多种类型的 Service,默认是 Clus ...
- 在 Scale Up 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(145)
对于多副本应用,当执行 Scale Up 操作时,新副本会作为 backend 被添加到 Service 的负责均衡中,与已有副本一起处理客户的请求.考虑到应用启动通常都需要一个准备阶段,比如加载缓存 ...
- Kubernetes Dashboard - 每天5分钟玩转 Docker 容器技术(173)
前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的.为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 ...
- 如何实现 Service 伸缩?- 每天5分钟玩转 Docker 容器技术(97)
上一节部署了只有一个副本的 Service,不过对于 web 服务,我们通常会运行多个实例.这样可以负载均衡,同时也能提供高可用. swarm 要实现这个目标非常简单,增加 service 的副本数就 ...
- 如何访问 Service?- 每天5分钟玩转 Docker 容器技术(99)
前面我们已经学习了如何部署 service,也验证了 swarm 的 failover 特性.不过截止到现在,有一个重要问题还没有涉及:如何访问 service?这就是本节要讨论的问题. 为了便于分析 ...
- 如何滚动更新 Service?- 每天5分钟玩转 Docker 容器技术(102)
在前面的实验中,我们部署了多个副本的服务,本节将讨论如何滚动更新每一个副本. 滚动更新降低了应用更新的风险,如果某个副本更新失败,整个更新将暂停,其他副本则可以继续提供服务.同时,在更新的过程中,总是 ...
- 验证 Swarm 数据持久性 - 每天5分钟玩转 Docker 容器技术(104)
上一节我们成功将 Rex-Ray Volume 挂载到了 Service.本节验证 Failover 时,数据不会丢失. Scale Up 增加一个副本: docker service update ...
随机推荐
- 小甲鱼OD学习第3讲
这次我们的任务是破解这个过期的软件,效果如图所示 我们通过阅读代码,知道这个程序的执行流程如图中注释所示 观看下图注释所示 这是失败的提示代码 这是成功的提示代码 最后我们可以得出结论,成功破解软件的 ...
- 听说你开发.NET还在用VS,小哥哥给你推荐全平台的Rider
本文地址:http://www.cnblogs.com/likeli/p/8461010.html 前言 .NET平台的开发一直都只能使用Visual Studio来开发,自从dotnet core ...
- HTTPS的原理解析
http://www.cnblogs.com/alisecurity/p/5939336.html 外加文档
- github上fork了别人的项目后,再同步更新别人的提交
我从github网站和用Git命令两种方式说一下. github网站上操作 打开自己的仓库,进入code下面. 点击new pull request创建. 选择base fork 选择head fo ...
- css去除ios文本框默认圆角
css去除ios文本框默认圆角 input, textarea {-webkit-appearance: none;}
- 【国家集训队2010】小Z的袜子[莫队算法]
[莫队算法][国家集训队2010]小Z的袜子 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程, ...
- angularjs ng-csv 异步下载
相信之前我们 前端下载csv的时候 都是通过后台代码 生成文件,然后发送给前台 文件路径来进行下载,下面介绍一下angular1 ng-csv下载 csv数据(这种不通过后台代码来实现的前台下载) 参 ...
- 机器学习03:K近邻算法
本文来自同步博客. P.S. 不知道怎么显示数学公式以及排版文章.所以如果觉得文章下面格式乱的话请自行跳转到上述链接.后续我将不再对数学公式进行截图,毕竟行内公式截图的话排版会很乱.看原博客地址会有更 ...
- java12 - 正则表达式
正则表达式简介 常用搭配说明: ^a 表示这个位置只能是字母 a [1,2,3,4] 表示这个位置只能在 1,2,3,4 中取一个 [[a-z][A-Z]] 表示可以任意大小写字母 ([a-z]{1, ...
- python 垃圾回收机制的思考
一.前言 Python 是一门高级语言,使用起来类似于自然语言,开发的时候自然十分方便快捷,原因是Python在背后为我们默默做了很多事情,其中一件就是垃圾回收,来解决内存管理,内存泄漏的问题. 内存 ...