0
点赞
收藏
分享

微信扫一扫

每天5分钟玩转Kubernetes | Rolling Update实践

千行 2022-06-03 阅读 69

书籍来源:cloudman《每天5分钟玩转Kubernetes》

一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

下面我们部署三副本应用,初始镜像为httpd:2.2.31,然后将其更新到httpd:2.2.32。

httpd:2.2.31的配置文件如下所示。

[root@k8s-master ~]# cat httpd.yml 
apiVersion: apps/v1
kind: Deployment
metadata:
name: httpd
spec:
replicas: 3
selector:
matchLabels:
app: httpd
template:
metadata:
labels:
app: httpd
spec:
containers:
- name: httpd
image: httpd:2.2.31
ports:
- containerPort: 80
[root@k8s-master ~]#

通过kubectl apply部署,如图所示。

每天5分钟玩转Kubernetes | Rolling Update实践_配置文件

部署过程如下:

(1)创建Deployment httpd。

(2)创建ReplicaSet httpd-745bddc8fb。

(3)创建三个Pod。

(4)当前镜像为httpd:2.2.31。

将配置文件中的httpd:2.2.31替换为httpd:2.2.32,再次执行kubectl apply,如图所示。

每天5分钟玩转Kubernetes | Rolling Update实践_配置文件_02

我们发现了如下变化:

(1)Deployment httpd的镜像更新为httpd:2.2.32。

(2)新创建了ReplicaSet httpd-55d897fbfc ,镜像为 httpd:2.2.32,并且管理了三个新的Pod。

(3)之前的ReplicaSet httpd-745bddc8fb里面已经没有任何Pod。

结论是:ReplicaSet httpd-745bddc8fb的三个httpd:2.2.31 Pod已经被ReplicaSet httpd-55d897fbfc 的三个httpd:2.2.32 Pod替换了。

具体过程可以通过kubectl describe deployment httpd查看,如图所示。

每天5分钟玩转Kubernetes | Rolling Update实践_配置文件_03

每次只更新替换一个Pod:

(1)ReplicaSet httpd-55d897fbfc增加一个Pod,总数为1。

(2)ReplicaSet httpd-745bddc8fb减少一个Pod,总数为2。

(3)ReplicaSet httpd-55d897fbfc增加一个Pod,总数为2。

(4)ReplicaSet httpd-745bddc8fb减少一个Pod,总数为1。

(5)ReplicaSet httpd-55d897fbfc增加一个Pod,总数为3。

(6)ReplicaSet httpd-745bddc8fb减少一个Pod,总数为0。

每次替换的Pod数量是可以定制的。Kubernetes提供了两个参数maxSurge和maxUnavailable来精细控制Pod的替换数量,我们将在后面结合Health Check特性一起讨论。

举报

相关推荐

0 条评论