Rolling Update【转】
滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新。滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性。
下面我们部署三副本应用,初始镜像为 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 特性一起讨论。
下一节我们讨论如何回滚。
Rolling Update【转】的更多相关文章
- 在 Rolling Update 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(146)
上一节讨论了 Health Check 在 Scale Up 中的应用,Health Check 另一个重要的应用场景是 Rolling Update.试想一下下面的情况: 现有一个正常运行的多副本应 ...
- ASP.NET Core on K8S深入学习(5)Rolling Update
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.什么是Rolling Update? 为了服务升级过程中提供可持续的不中断 ...
- 在 Rolling Update 中使用 Health Check【转】
上一节讨论了 Health Check 在 Scale Up 中的应用,Health Check 另一个重要的应用场景是 Rolling Update.试想一下下面的情况: 现有一个正常运行的多副本应 ...
- 使用 kubectl 执行 Rolling Update(滚动更新)
Rolling Update滚动更新 通过使用新版本的 Pod 逐步替代旧版本的 Pod 来实现 Deployment 的更新,从而实现零停机.新的 Pod 将在具有可用资源的 Node(节点)上进行 ...
- Rolling Update - 每天5分钟玩转 Docker 容器技术(140)
滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新.滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 下面我们部署三副本应用,初始镜 ...
- 第七章 Rolling update
7.1 实践 apiVersion: apps/v1beta1 kind: Deployment metadata: name: httpd spec: replicas: 3 template: m ...
- k8s的Rolling Update(滚动更新应用)
滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新.滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 下面我们部署三副本应用: 初始 ...
- java8 JDK8 元空间
一. JDK8 元空间概念 二. PermGen vs. Metaspace 运行时的比较 一. JDK8 元空间概念 很多开发者都在其系统中见过“java.lang.OutO ...
- k8s google sample - guestbook
Redis读写分离作为存储 PHP网页作为前端 github地址 https://github.com/kubernetes/kubernetes/blob/release-1.1/examples/ ...
随机推荐
- vs code插件大全
一.HTML Snippets 超级使用且初级的H5代码片段以及提示 二.HTML CSS Support 让HTML标签上写class智能提示当前项目所支持的样式 三.Debugger for C ...
- main函数递归
以前听说main()不能递归?于是在CentOS7上使用gcc-8.1.0测试了一下,发现可行: #include <stdio.h> int x = 5; int main(int ar ...
- text-align:justify 失效问题。
text-align:justify 失效问题. <div class="fmlist_left"> <p> <span> 品名 <i c ...
- jquery 判定checkbox是否选中
CheckBox 判定是否选中 使用 attr('checked')来做判别是不行的,除非所有的选中取消都是使用这个属性来处理. 正确的做法是使用 .prop('checked') 来判定.
- 使用python实现离散时间傅里叶变换
以下内容引用链接:https://blog.csdn.net/baidu_37352210/article/details/79596633 (注意:通过如下内容可知,将序列信号进行傅里叶变换后,得到 ...
- linux关闭进程
查看端口对应的pid lsof -i:8888 若要关闭使用这个端口的程序,使用kill + 对应的pid kill -9 PID号
- 使用KVO键值监听
本文章从五个方面介绍KVO(Key-Value-Observer)键值观察者: (1)功能介绍 (2)使用步骤 (3)应用场景 (4)原理理解 (5)相关的面试题 一 功能介绍 KVO是OC语言对「观 ...
- PAT T1008 Airline Routes
用tarjan算法缩点~ #include<bits/stdc++.h> using namespace std; ; vector<int> g[maxn]; int N,M ...
- 二十一 Struts的数据校验两种方式:手动编码和xml校验
数据的校验: 一.前台校验:JS校验 JS的校验不是必须的,JS可以被绕行,可以提升用户体验 二.后台校验:编码校验 必须的校验 三.校验的方式: 手动编码(不建议使用) 配置文件(支持) 手动编码的 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设定文本小写
<!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...