修改Deployment触发滚动刷新_修改滚动条的样式
off999 2025-09-29 10:13 28 浏览 0 评论
在 Kubernetes 中,修改 Deployment 并触发滚动更新(Rolling Update)是一个核心操作。
核心原则
Deployment 的滚动更新仅在 spec.template(Pod 模板)发生变化时触发。Kubernetes 通过计算 spec.template 的哈希值来判断是否需要创建新的 ReplicaSet 并替换旧的 Pod。
如何修改 Deployment 并触发滚动更新
方法 1:直接修改 spec.template(推荐)
任何对 spec.template 内部字段的修改都会自动触发滚动更新。
操作步骤:
- 编辑 Deployment 配置:
kubectl edit deployment <deployment-name>- 修改 spec.template 中的字段,例如:
- 容器镜像:
spec:
template:
spec:
containers:
- name: nginx
image: nginx:1.21 # 从 nginx:1.19 更新到 nginx:1.21- 环境变量:
spec:
template:
spec:
containers:
- name: app
env:
- name: VERSION
value: "2.0" # 修改环境变量值- 资源限制:
spec:
template:
spec:
containers:
- name: app
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "200m"- 卷挂载(如你之前的问题):
spec:
template:
spec:
containers:
- name: app
volumeMounts:
- name: new-config
mountPath: /etc/new-config
volumes:
- name: new-config
configMap:
name: updated-configmap- 保存并退出(如果使用 kubectl edit)。
- 观察滚动更新:
kubectl rollout status deployment/<deployment-name>
# 示例输出:Waiting for deployment "my-app" rollout to finish: 1 old replicas are pending termination...
# 最终输出:deployment "my-app" successfully rolled out
kubectl get pods -w # 实时观察旧 Pod 终止,新 Pod 启动方法 2:使用 kubectl set 命令(快速修改镜像)
专门用于快速更新容器镜像。
kubectl set image deployment/<deployment-name> <container-name>=<new-image>:<tag>
# 例如:
kubectl set image deployment/nginx-deployment nginx=nginx:1.21此命令会直接修改 spec.template.spec.containers[].image,从而触发滚动更新。
方法 3:强制重启(最可靠)
如果修改了 spec.template 但不确定是否触发更新,或想明确重启,使用:
kubectl rollout restart deployment/<deployment-name>原理:此命令会在 spec.template.metadata.annotations 中添加一个时间戳注解(如 kubectl.kubernetes.io/restartedAt: "2025-08-22T07:30:00Z"),强制改变 Pod 模板,从而100%触发滚动更新。
方法 4:修改 spec.template.metadata.annotations(手动触发)
这是 最佳实践,用于确保任何变更(尤其是非容器字段变更)都能触发更新。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
template:
metadata:
labels:
app: my-app
annotations:
# 添加或修改此注解会强制触发更新
kubernetes.io/change-cause: "Updated config on 2025-08-22"
# 或
# kubectl.kubernetes.io/restartedAt: "2025-08-22T07:30:00Z"
spec:
containers:
- name: my-container
image: my-image:v1
# ... 其他配置应用后:
kubectl apply -f deployment.yaml什么修改 不会 触发滚动更新?
修改 spec 中 template 之外的字段,不会创建新 Pod:
- spec.replicas:只调整 Pod 数量,现有 Pod 不重启。
- spec.strategy:修改更新策略参数,但只影响下一次滚动更新。
- spec.selector:禁止修改,会导致不可预测行为。
验证更新是否成功
- 检查滚动状态:
kubectl rollout status deployment/<deployment-name>- 查看新旧 ReplicaSet:
kubectl get replicaset -l app=<your-app-label>
# 你会看到旧的 ReplicaSet (DESIRED > 0) 和新的 ReplicaSet (CURRENT > 0)- 检查新 Pod 的配置:
kubectl get pod <new-pod-name> -o yaml | grep -A 10 "containers"
# 确认镜像、环境变量、卷等已更新回滚到上一个版本
如果更新后出现问题:
kubectl rollout undo deployment/<deployment-name>
# 回滚到更早的版本
kubectl rollout undo deployment/<deployment-name> --to-revision=2总结
- 触发条件:只有 spec.template 变化才会触发滚动更新。
- 推荐方法:
- 直接修改 spec.template 中的配置(如镜像、环境变量、卷)。
- 或 使用 kubectl rollout restart deployment/<name> 强制重启。
- 或 在 spec.template.metadata.annotations 中添加注解作为明确信号。
- 避免:依赖修改 spec.replicas 等非 template 字段来触发更新。
相关推荐
- 光影魔术手手机版下载(光影魔术手手机版下载 app)
-
1、打开光影魔术手软件,点击“打开”。2、选好需要去除文字的图片,插入光影魔术手中。3、然后点击左上角的“数码暗房”按钮。4、在打开的页面中选择“人像”。5、下拉菜单,在“人像”中选择“祛斑”按钮。6...
- 电视直播中央一台(电视直播中央一台开学第一课)
-
如果我们想在电脑或手机上观看中央电视台一套直播,只要用爱奇艺pps就可以了。1、点击进入应用商店,在搜索框中输入“爱奇艺”,点击搜索,并安装。2、安装结束后,在手机或电脑主页面找到爱奇艺图标,点击进入...
- 远程控制软件哪个好用(免费远程控制软件哪个好用)
-
一、UPDF——PDF文档处理分享二、腾讯会议——远程开会三、向日葵——远程控制四、Github——代码协同五、Snipaste——屏幕截图六、Canva——在线设计工具七、博思白板BoardM...
- 魔兽世界手游官网公测(魔兽世界手游官网公测 新闻)
-
2005年4月26日2005年4月26日由九城代理的《魔兽世界》国服开启公测,6月9日国服正式运营。2009年4月,暴雪将《魔兽世界》在国服的代理运营权由九城转交给网易。
- qq2012(qq2012旧版本下载)
-
建议你升级到最新版本,因为一般来说旧版本都不会怎么更新、维护,容易出现BUG!
- 香蕉加速器(香蕉加速器怎么样)
-
OPPO系统自带的游戏加速器是HyperBoost据OPPO介绍,HyperBoost是OPPO花了三年时间自主研发的一项技术,由系统引擎、应用引擎和游戏引擎三部分组成,能够实现全场景系统,提升...
- 小说下载txt电子书免费全本下载
-
因为违规了。久久小说网的许多小说,都没有作者的授权而且他的名声太大了,被人给投诉然后违规追究了,就关闭了这个网站。所以平时看小说的时候,尽量到正版的网站去看,一些大网站,或者是一些小网站都可以去瞅一瞅...
- 无需wifi的手机游戏(无需wifi的手机游戏大全)
-
1最好玩的游戏不一定需要依赖wifi。2原因在于现在的游戏越来越注重玩家的体验和游戏性,不少游戏已经把单机玩法和多人联机完美融合在一起,让单机游戏也同样具有了和多人游戏一样的可玩性。此外,不少游戏...
- 手写输入法查字(手写输入法查字怎么设置)
-
您好,查字手写输入是指利用电子设备或者智能手机等设备,通过手写输入汉字进行文字输入的方式。用户可以直接用手指或者专用的手写笔在设备的屏幕上书写汉字,设备会将手写的字迹识别成文字并进行输入。这种输入方式...
- office哪个版本最好用(office哪个版本好一点)
-
Office办公软件由微软公司开发,截至目前为止,最新版本为Microsoft365(Office365)。然而,“最好用”的版本取决于您的具体需求、预算和个人偏好。以下是一些不同版本及其特点的概...
- 大智慧炒股软件免费版(大智慧炒股软件手机版下载安装)
-
你是不是点到里面的收费行情了,有Level-2行情数据的肯定要收费的这几种都可以提供一般的股票行情、交易功能。特点方面,同花顺不怎么好上手,普及程度不高。大智慧经典版可以查询主力资金。钱龙旗舰版是界面...
- 短信验证码(短信验证码平台app)
-
短信验证码可以通过以下步骤来获取和使用:明确结论:获取短信验证码需要先输入手机号码,并且会在短信中收到验证码。解释原因:短信验证码是一种验证身份的方式,用于确认用户提供的手机号是否有效,以及确保用户是...
- 下载一个微信2(下载一个微信号)
-
首先打开手机里面的应用商店下载安装一个微信APP,然后分别用你的2个手机号注册微信或已经注册的登陆微信就可以了,这里你可以一个微信APP上分别切换不同微信号登陆使用,不过这个有点不方便使用,接下来的办...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
win7系统还原步骤图解(win7还原电脑系统的步骤)
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
16949认证费用是多少(16949审核员太难考了)
-
linux软件(linux软件图标)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
