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
相关文章
- linux & shell & nginx & Docker Kubernetes
- 技术分享 | 掌握高频 Docker 命令,夯实内功基础
- 四、OCR-docker部署最新版PaddleServing和PaddleOCR,服务端,客户端,dockerfile部署-pipeline python部署,GPU运行
- docker切换到后台运行,退出交互界面不退出docker进程
- 干货 | 一文搞定 Docker 容器技术与常用命令
- Docker技术入门与实战(第2版)1.2 为什么要使用Docker
- Docker技术入门与实战(第2版)1.4 本章小结
- Docker技术入门与实战(第2版)3.6 存出和载入镜像
- Docker技术入门与实战(第2版)3.8 本章小结
- 6 个下一代 Docker 监测工具
- Docker搭建Clickhouse集群
- docker-compose 基础命令
- Docker 常用命令
- 【DockerCon2017最新技术解读】Docker最新特性介绍
- 一张图看Docker
- 使docker命令不用加sudo的方法
- 《Docker技术入门与实战》——1.4 本章小结
- 《Docker技术入门与实战》——3.1 获取镜像
- 【YApi接口管理平台】在Linux上使用Docker搭建YApi (亲测完美运行)
- Docker命令行与守护进程如何交互?
- docker的一些常用命令整理