Kubernetes Pod应用的滚动更新(八)
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,一、环境准备我们紧接上一节的环境,进行下面的操作,如果不清楚的,可以先查看上一篇博文。滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新。滚动更新的最大的好处是零停机,
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
数据库 字段 加密
炒股仿真软件开发
gps纠偏数据库
中国的盐湖数据库有哪些
服务器怎么看是不是不能用
广州信恒通网络技术有限公司
上位机软件开发的电脑配置
储存空间数据库
dns服务器北京联通虚拟主机
网络安全工程师职业道德规范
美国网络安全股票为何涨那么多
数据库软件开发平台
奥蒂斯电梯服务器怎么清故障
秦皇岛软件开发优缺点
租服务器的网站多少钱
软件开发运营需要申请
台湾的文献数据库
论软件开发工具中信息库的内容
网络安全用到的算法
计算机网络安全论文最新文章
晋松网络技术有限公司
打通dj数据库
数据库运维管理能力
杨浦区口碑好的网络技术商家
数字化对网络安全的贡献
数据库找表名称
激战2 服务器满
方舟筛选服务器
飞享科技服务器
数据库配什么服务器