当前位置:首页 > 文章列表 > 科技周边 > 业界新闻 > Kubernetes 1.37 升级前需要关注哪些默认行为变化

Kubernetes 1.37 升级前需要关注哪些默认行为变化

来源:17golang原创 2026-09-06 11:25:08 0浏览 收藏

Kubernetes 1.37 已发布,真正值得升级前排查的不是“新增了多少功能”,而是哪些能力改变了默认路径。官方发布说明显示,这一版包含 67 项增强,其中 HPA 缩容到零、并发 watch 对象解码、etcd RangeStream、StorageVersionMigration 等能力会影响默认运行方式;而 Pod 级资源管理、DRA Workload ResourceClaims 仍需要显式开启。

升级前可以先记住一个判断:默认开启不等于所有业务都立刻改变,默认关闭也不等于不能测试。应把控制面、工作负载、存储和回退条件拆开验证。

要点速览
  • 控制面读取大对象时会更多使用流式 Range 和并发解码,但旧版 etcd 会自动回退。
  • HPA 可以在对象或外部指标场景下使用 minReplicas: 0,MemoryQoS 默认门已打开但默认参数刻意保持保守。
  • SELinux 卷行为只在 CSI 驱动选择加入时产生实际影响,StatefulSet 的 maxUnavailable 默认行为在 1.37 恢复。

先确认版本与升级范围

不要只看客户端的 kubectl version。先记录控制面、每个节点 kubelet,以及 etcd 的实际版本,并把使用 CRD 转换 webhook、CSI、HPA、StatefulSet 的业务列出来。

# 查看客户端与服务端版本,确认升级目标是否已经生效
kubectl version
# 查看节点版本,排查控制面与节点混合版本窗口
kubectl get nodes -o custom-columns=NAME:.metadata.name,KUBELET:.status.nodeInfo.kubeletVersion
# 查看 API Server 暴露的服务端版本
kubectl get --raw /version

这一轮的目标不是立刻修改 feature gate,而是建立升级前基线:API Server 启动耗时、etcd 内存峰值、webhook 并发、HPA 副本数和挂载失败数都应有旧版本数据可比。

检查控制面启动与存储读取变化

1.37 默认启用 ConcurrentWatchObjectDecode,watch 事件的解码和转换会进入有界并发池,官方说明默认工作池为 10 个协程,并由收集器按原顺序交付。对带 CRD 转换 webhook 的集群,调用总量不变,但冷缓存初始化时的同时请求数会上升。

同一版本的 EtcdRangeStream 默认开启,API Server 可以分块读取大列表,减少一次性响应在 etcd 和 API Server 中同时驻留的内存。它需要 etcd 3.7+;遇到旧 etcd 的 Unimplemented 响应会自动退回原来的 unary Range,因此升级后仍要观察延迟和内存,而不能假设一定获得流式收益。

Kubernetes 1.37 控制面 watch cache、并发解码、etcd RangeStream 与旧版回退关系图
图1:控制面读取路径中,并发解码与 RangeStream 的默认关系,以及旧版 etcd 的回退边界。

StorageVersionMigration API 在 1.37 升级到稳定版并默认启用。它提供了声明式迁移入口,但不会因为升级完成就自动改写所有历史对象;需要由集群管理员或 CRD 维护者创建迁移对象,并为迁移过程安排监控和窗口。

复查工作负载和存储默认值

工作负载侧至少检查以下五项:

变化默认状态升级前要问的问题
HPA scale to zeroBeta,默认开启对象指标或外部指标是否允许空载为 0,恢复延迟能否接受?
MemoryQoSBeta,feature gate 默认开启kubelet 的内存保护和 throttling 参数是否沿用保守默认值?
PVC last-usedBeta,默认开启清理脚本是否会误把 Unused 条件当成可直接删除?
SELinux 卷挂载稳定,相关开关默认开启CSI 驱动是否设置 seLinuxMount: true,共享卷的标签是否一致?
StatefulSet maxUnavailable1.37 恢复默认有序更新时能否承受并行不可用副本?

HPA 的 0 副本不是普通 CPU 利用率场景的无条件缩容开关,发布说明限定在对象或外部指标工作负载,并要求设置 spec.minReplicas: 0。MemoryQoS 虽然默认门打开,但官方说明默认值是为了避免旧工作负载突然遭遇意外内存节流。SELinux 变化只对启用 SELinux 且 CSI 驱动加入该能力的卷产生影响;同一节点上不同 SELinux 标签的 Pod 共享一个卷时,旧的递归重标记假设可能不再成立。

Kubernetes 1.37 HPA、MemoryQoS、PVC、SELinux 和 StatefulSet 默认行为影响关系图
图2:把 1.37 的工作负载默认行为放到副本、内存、卷和更新四个检查面中逐项确认。

区分默认开启与默认关闭的 Beta 能力

升级清单中最容易混淆的是“Beta”与“默认启用”。Pod-level Resource Managers 在 1.37 进入 Beta,但 PodLevelResourceManagers 仍默认关闭;DRA Workload ResourceClaims 也进入 Beta,却由 DRAWorkloadResourceClaims 控制且默认关闭。没有明确的业务需求、节点版本和回滚方案时,不要顺手开启。

相反,HPA scale to zero、MemoryQoS、并发 watch 解码和 RangeStream 属于需要主动观察的默认路径。对它们应做灰度和指标对比,而不是仅检查 feature gate 输出。

用灰度指标完成升级验收

先升级一个非关键控制面或测试集群,再挑选带 CRD 转换 webhook、外部指标 HPA、CSI 卷和 StatefulSet 的代表性命名空间。重点看 API Server 是否出现持续的 429、webhook 是否达到并发上限、etcd 内存峰值是否下降、HPA 是否能从 0 恢复、PVC 条件是否被误用,以及 StatefulSet 更新是否超过业务容忍度。

如果问题只在 SELinux 卷出现,优先按卷和 CSI 驱动边界处理;需要保留旧的递归标记语义时,再评估 Pod 的 seLinuxChangePolicy: Recursive。如果 RangeStream 未生效,先确认 etcd 版本,不要把自动回退误判成 API Server 故障。

官方变更可从 Kubernetes v1.37 发布说明DRA 更新说明继续核对;生产升级应把实际启用的 gate、组件版本和回退动作一起归档。

常见问题

Kubernetes 1.37 是否会自动把 HPA 缩到 0?

不会。只有使用对象或外部指标、并显式设置 minReplicas: 0 的 HPA 才进入这条能力路径。

etcd 不是 3.7,升级 1.37 会失败吗?

官方发布说明给出的行为是探测到不支持的 RPC 后回退到 unary Range;仍应通过监控确认旧路径的内存和延迟是否可接受。

SELinuxMount 默认开启后所有卷都会变吗?

不会。只有启用 SELinux 且 CSI 驱动在 CSIDriver 中选择 seLinuxMount: true 时才会进入新挂载语义。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
Go HTML 模板怎么复用页头页脚和基础布局Go HTML 模板怎么复用页头页脚和基础布局
上一篇
Go HTML 模板怎么复用页头页脚和基础布局
漫狐漫画为什么显示维护中?小米应用商店状态与安装前核对说明
下一篇
漫狐漫画为什么显示维护中?小米应用商店状态与安装前核对说明
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • SuperCLUE中文大模型评测基准:功能、能力维度与应用指南
    SuperCLUE
    SuperCLUE是权威的中文大语言模型综合评测基准,涵盖语言理解、知识应用、AI Agent智能体及安全性等12项核心能力。通过多轮对话与客观测试,定期发布榜单与技术报告,为模型研发、优化及行业选型提供科学依据。
    163次使用
  • C-Eval中文评测基准:大语言模型多学科能力评估指南
    C-Eval
    深入了解C-Eval中文评估套件,涵盖52个学科与4级难度。本文详解其功能特点、Zero-shot/Few-shot使用方法及代码示例,助您全面评测LLM中文理解与泛化能力。
    88次使用
  • LangGPT提示词框架:结构化Prompt设计方法与开源工具指南
    LangGPT
    LangGPT是一种受编程语言启发的结构化提示词设计工具,提供双层框架、模块化模板及变量功能,帮助用户高效编写高质量Prompt。该项目已在GitHub免费开源,适用于内容创作、编程辅助等多场景。
    13次使用
  • ClickPrompt:AI提示词生成与优化工具,支持Stable Diffusion、ChatGPT及代码辅助
    ClickPrompt
    ClickPrompt是一款专为AI提示词编写者设计的开源在线工具,支持Stable Diffusion绘图、ChatGPT对话及GitHub Copilot代码辅助。提供Prompt自动生成、一键运行、社区分享及可视化优化功能,帮助用户高效获取精准AI输出。
    50次使用
  • PromptHero官网:AI提示词搜索、优化与学习平台,支持Midjourney/Stable Diffusion
    PromptHero
    PromptHero是专业的AI提示词搜索引擎与优化平台,支持Stable Diffusion、Midjourney等主流模型。提供海量提示词库、分类搜索、在线课程及社区互动,助力用户高效生成高质量AI图像与文本。
    32次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码