Kubernetes Pod应用的滚动更新(八)
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,一、环境准备我们紧接上一节的环境,进行下面的操作,如果不清楚的,可以先查看上一篇博文。滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新。滚动更新的最大的好处是零停机,
千家信息网最后更新 2025年12月02日Kubernetes Pod应用的滚动更新(八)
一、环境准备
我们紧接上一节的环境,进行下面的操作,如果不清楚的,可以先查看上一篇博文。
滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新。滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性。
二、更新
我们查看一下上一节的配置文件mytest-deploy.yaml。
apiVersion: extensions/v1beta1kind: Deploymentmetadata: name: mytestspec: replicas: 3 template: metadata: labels: run: mytest spec: containers: - name: mytest image: wangzan18/mytest:v1 ports: - containerPort: 80我们看到设定的镜像版本为v1,我们查看一下创建的ReplicaSet。
[root@master ~]# kubectl get rs -o wideNAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTORmytest-88d46bf99 3 3 3 68m mytest wangzan18/mytest:v1 pod-template-hash=88d46bf99,run=mytest目前运行的 Pod 由 ReplicaSet mytest-88d46bf99进行控制,我们将配置文件中的 v1 替换为 v2,再次应用。
[root@master ~]# kubectl apply -f mytest-deploy.yaml deployment.extensions/mytest configured[root@master ~]# kubectl get podsNAME READY STATUS RESTARTS AGEmytest-56c55b4c6-6gjxc 1/1 Running 0 24smytest-56c55b4c6-f5trx 1/1 Running 0 18smytest-56c55b4c6-sh6wd 1/1 Running 0 24smytest-88d46bf99-48f6n 1/1 Terminating 0 70mmytest-88d46bf99-mv6cf 1/1 Terminating 0 70mmytest-88d46bf99-p9w79 1/1 Terminating 0 70m[root@master ~]# kubectl get deploy -o wideNAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTORmytest 3/3 3 3 72m mytest wangzan18/mytest:v2 run=mytest[root@master ~]# kubectl get rs -o wideNAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTORmytest-56c55b4c6 3 3 3 59s mytest wangzan18/mytest:v2 pod-template-hash=56c55b4c6,run=mytestmytest-88d46bf99 0 0 0 71m mytest wangzan18/mytest:v1 pod-template-hash=88d46bf99,run=mytest我们可以看到 Deployment 的镜像更新为wangzan18/mytest:v2,创建了新的 ReplicaSet mytest-56c55b4c6,并管理了三个新的 Pod。
[root@master ~]# kubectl describe deployment mytestEvents: Type Reason Age From Message ---- ------ ---- ---- ------- Normal ScalingReplicaSet 4m9s deployment-controller Scaled up replica set mytest-56c55b4c6 to 1 Normal ScalingReplicaSet 4m9s deployment-controller Scaled down replica set mytest-88d46bf99 to 2 Normal ScalingReplicaSet 4m9s deployment-controller Scaled up replica set mytest-56c55b4c6 to 2 Normal ScalingReplicaSet 4m3s deployment-controller Scaled down replica set mytest-88d46bf99 to 1 Normal ScalingReplicaSet 4m3s deployment-controller Scaled up replica set mytest-56c55b4c6 to 3 Normal ScalingReplicaSet 4m3s deployment-controller Scaled down replica set mytest-88d46bf99 to 0每次只更新替换一个 Pod。
三、回滚
kubectl apply 每次更新应用时 Kubernetes 都会记录下当前的配置,保存为一个 revision(版次),这样就可以回滚到某个特定 revision。
默认配置下,Kubernetes 只会保留最近的几个 revision,可以在 Deployment 配置文件中通过 revisionHistoryLimit 属性增加 revision 数量。
通过命令kubectl rollout undo我们可以回滚到上一个版本。
[root@master ~]# kubectl rollout undo deploy mytestdeployment.extensions/mytest rolled back[root@master ~]# kubectl get rs -o wideNAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTORmytest-56c55b4c6 0 0 0 12m mytest wangzan18/mytest:v2 pod-template-hash=56c55b4c6,run=mytestmytest-88d46bf99 3 3 3 82m mytest wangzan18/mytest:v1 pod-template-hash=88d46bf99,run=mytest可以看到三个 Pod 重新由镜像为wangzan18/mytest:v1的ReplicaSet进行接管。
更新
配置
副本
文件
镜像
上一
应用
三个
版本
环境
运行
最大
清楚
成功
业务
再次
命令
好处
属性
数量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
腾讯游戏服务器连接异常怎么办
盛安网络技术
vrm服务器
c实现一个简单的数据库
数据库设计中的行为设计主要是
榆林软件开发规定
网络技术专业引领规划
论文网络安全方面
短视频软件开发公司简介
网络安全系统设备值班巡检表
nginx服务器的安全问题
爱牙日主题软件开发
科技金融互联网公司官网
建信金科的数据库招聘
四川服务器5g网络机柜云空间
浙江软件开发报价排名靠前
六项网络安全属性
网络安全威胁情报模板
考研数据库管理
布卡互动始终显示连接服务器失败
游戏服务器被ddos
微信服务器发消息代码
通用数据库字典对照表设计
ssr服务器搭建教程
达梦数据库配置助手功能
网页服务器如何确保内网安全
电脑系统和网络技术
怎么查看数据库表之间关系
专业供应的眼镜行业软件开发
网络安全时间短的小品