Kubernetes Pod应用的滚动更新(八)
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一、环境准备我们紧接上一节的环境,进行下面的操作,如果不清楚的,可以先查看上一篇博文。滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新。滚动更新的最大的好处是零停机,
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
喔噻互联网科技
苏州大垚互联网科技
深圳艾佳互联网科技
互联网科技股午盘股票涨跌
中正互联网科技招聘
深圳互联网科技怎么样
天速互联网络科技有限公司
互联网企业和科技型企业
互联网大会黑科技排名
崇明区互联网教育科技售后服务
允成互联网科技有限公司融资
互联网科技创新的路径
南京一网一红互联网科技有限公司
互联网硬科技公司
普陀区互联网教育科技管理办法
互联网时代高科技布局
陕西彩京云互联网科技有限公司
广东猫王互联网科技有限公司电话
网互联网络科技
每日互联网科技新闻
互联网科技工作委员会主任
苏州找大状互联网科技有限公司
有木互联网科技
友谊互联网络科技
互联网企业和科技型企业
互联网和黑科技的看法
为客找房互联网科技公司怎么样
有人说阿里系是互联网科技企业
广西泛欧互联网科技有限公司
互联网领先科技成果宣传视频