Kubernetes v1.37 计划发布:kubectl run 与存储健康检查先做兼容排查
来源:17golang原创
时间:2026-08-16 11:11:54 427浏览 收藏
如果集群里还保留着用 kubectl run -f 生成 Pod 的脚本,或者平台团队正准备接入 CSI 卷健康状态,Kubernetes v1.37 的升级预告值得提前看一遍。官方计划在 2026 年 8 月 26 日发布 v1.37,当前最需要关注的不是“新增了多少功能”,而是旧参数和状态字段会怎样影响现有自动化。
要点速览
kubectl run --filename/-f计划弃用,现有脚本应改成明确的清单应用或参数化生成流程。- Volume Health Monitor 重新回到 Alpha,PVC、Pod 和 CSINode 的健康字段不能当作稳定兼容接口。
- 升级前先扫描脚本、CronJob 和流水线,再用测试集群验证告警采集、字段缺失和回滚路径。
- v1.37 预告内容仍可能调整,正式升级以最终发布说明和变更指南为准。

v1.37 这次最实际的变化是兼容边界
官方预告把 kubectl run 的 --filename(短参数 -f)列为待弃用项。这个参数与“通过命令行参数生成一个 Pod”并不是同一件事:前者更像把文件入口塞进了一个本来用于快速生成 Pod 的命令,脚本作者容易误以为两种写法可以长期互换。
预告还提到 Volume Health Monitor 的方向变化。它计划通过 CSI 控制器和 kubelet 获取卷健康状态,把结果写入 PVC.status.healthStatus、Pod.status.volumeHealth 和 CSINode.status.storageHealth。这些字段对排查“卷不可访问”很有价值,但当前实现仍需按 Alpha 能力评估,不能直接写成监控平台的永久契约。
先从代码库找出 -f 的真实使用位置
第一步不是立刻改 YAML,而是确认参数到底出现在什么链路里。开发机脚本、发布流水线、定时任务和故障应急手册都要查到;只搜 Deployment 文件,往往会漏掉真正会被调用的 Shell 和 CI 配置。
rg -n --hidden --glob '!vendor/**' \ 'kubectl[[:space:]]+run|--filename([ =]|$)|(^|[[:space:]])-f([[:space:]]|$)' .
把结果按“人工临时命令、流水线生成、长期任务”分组。临时命令可以改成清晰的 Pod 清单;流水线要补上 YAML 校验和差异检查;长期任务则需要把镜像、标签、资源限制和服务账号权限都迁移到可审查的清单里。
迁移时不要把生成式命令和声明式清单混成一条路径
| 现有用法 | 主要风险 | 建议动作 |
|---|---|---|
kubectl run name --image=... | 参数多时不易审查 | 保留为临时排障命令,生产对象改用清单 |
kubectl run -f pod.yaml | 参数入口计划弃用 | 用 kubectl apply -f pod.yaml 表达对象管理 |
| 流水线动态拼命令 | 镜像、权限和资源差异难追踪 | 固定模板,先渲染再做差异和策略检查 |
迁移后的验收重点不是命令返回成功,而是对象结果一致:镜像摘要、容器端口、资源请求、服务账号和重启策略都要与旧环境对比。对平台脚本来说,清单化的价值在于变更可审查、回滚有依据,而不只是躲开一个弃用警告。
Volume Health Monitor 先按“可选信号”接入
卷健康信息适合辅助告警,不适合在 Alpha 阶段成为唯一的自动修复条件。控制器侧和节点侧的报告来源不同,状态字段也可能随着版本和 CSI 驱动实现变化。接入时建议给每条告警保留对象名称、节点、存储类、驱动名、健康状态、reason 和 message,并把原始对象快照放进排查记录。
kubectl get pvc data-store -o json kubectl get pod app-0 -o json kubectl get csinode worker-01 -o json
测试时至少覆盖三种结果:卷正常、卷不可访问、驱动暂时没有提供健康数据。第三种不能被误报成“卷已损坏”;监控规则应区分 Unknown、字段不存在和明确的 Inaccessible 等状态,并设置观察窗口,避免一次短暂的 CSI 响应异常就触发迁移。

升级前用一套小型回归集验证风险
- 在测试集群安装与生产相同版本的 CSI 驱动,记录 PVC、Pod 和 CSINode 的原始 JSON。
- 跑一遍历史流水线,确认不再依赖
kubectl run -f,并比较渲染前后的对象差异。 - 模拟节点不可用或卷访问异常,检查健康状态能否到达告警系统。
- 把“没有字段”“Unknown”和明确故障分别投递,确认值班规则不会过度升级。
- 按正式发布说明复核弃用和 Alpha 状态,再决定是否扩大灰度范围。
如果 CSI 驱动没有实现相应能力,平台仍应依靠驱动日志、事件和业务探针完成基础监控;不要为了填满一个新字段而替换现有证据链。
相关问题
v1.37 发布后 -f 会立即失效吗?
官方预告描述的是弃用计划,不等于当前版本发布后立刻删除。应以最终版本说明和弃用指南为准,但提前迁移能避开后续升级窗口的集中改动。
为什么不直接把 Volume Health Monitor 当成故障自动修复开关?
它涉及控制器、kubelet 和 CSI 驱动多个来源,当前又处于 Alpha 阶段。信号缺失或延迟时,自动修复可能把“没有数据”误判为“卷损坏”。
生产对象都应该改成 Pod 清单吗?
长期运行的对象建议使用可审查的声明式清单;临时排障仍可以保留简短的生成式命令,但要把它和生产发布链路隔离。
什么时候可以开始使用新健康字段?
可以先在测试集群采集和观察,但要将字段视为实验性信号,设置缺失兼容、驱动差异和回滚方案,等最终版本说明明确后再扩大用途。
Kubernetes v1.37 的升级准备,核心不是追逐预告里的每个新名词,而是先清理旧入口、保留对象证据,再把实验性健康信号放进可回退的观察链路。这样即使最终版本调整了字段或实现,平台也不会因为一次升级失去基本的发布和故障判断能力。
-
214 收藏
-
133 收藏
-
496 收藏
-
244 收藏
-
448 收藏
-
349 收藏
-
333 收藏
-
科技周边 · 业界新闻 | 2小时前 | github · npm · 工程实践 · 供应链安全 · 开源发布 · 供应链安全 恶意软件检测 npm 发布扫描 contentPolicy DISCLOSURE108 收藏
-
科技周边 · 业界新闻 | 2小时前 | github · npm · 工程实践 · 供应链安全 · 开源发布 · 供应链安全 恶意软件检测 npm 发布扫描 contentPolicy DISCLOSURE289 收藏
-
科技周边 · 业界新闻 | 3小时前 | github · copilot · rest api · 业界新闻 · 工程效率 · GitHub Copilot 仓库级指标 使用指标 API Pull Request Copilot coding agent Copilot code review434 收藏
-
科技周边 · 业界新闻 | 3小时前 | 浏览器 · github · copilot · vs code · 安全治理 · VS Code agent GitHub Copilot 浏览器工具 网络域名控制102 收藏
-
科技周边 · 业界新闻 | 3小时前 | 浏览器 · github · copilot · vs code · 安全治理 · VS Code agent GitHub Copilot 浏览器工具 网络域名控制334 收藏
-
科技周边 · 业界新闻 | 5小时前 | TLS · Node.js · OpenSSL · 安全运维 · Node.js TLSGroup getEphemeralKeyInfo ecdhCurve Supported Group131 收藏
-
科技周边 · 业界新闻 | 5小时前 | TLS · Node.js · OpenSSL · 安全运维 · Node.js TLSGroup getEphemeralKeyInfo ecdhCurve Supported Group300 收藏
-
科技周边 · 业界新闻 | 6小时前 | 性能优化 · 业界新闻 · 运行时 · 版本升级 · Go生态 · 内存分配 性能基准 Go 1.27 小对象分配 size-specialized malloc202 收藏
-
科技周边 · 业界新闻 | 6小时前 | 性能优化 · 业界新闻 · 运行时 · 版本升级 · Go生态 · 内存分配 性能基准 Go 1.27 小对象分配 size-specialized malloc151 收藏
-
238 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习