前言¶
Kubernetes 社区按半年一版的节奏持续推进。根据 Kubernetes Contributors 官方发布日历,v1.37.0 定于 2026 年 8 月 26 日(周三)正式发布。截至本文写作时(2026 年 8 月 1 日),发布周期已进入第 12 周:release-1.37 分支已创建,v1.37.0-rc.0 已放出,文档冻结(Docs Freeze)刚于 8 月 5–6 日完成,距离 GA 还有不到四周。
本版在 SIG Release 讨论 #3051 与各 SIG 的 Release Highlights 汇总中,被社区反复提及的方向包括:Dynamic Resource Allocation(DRA)多项能力毕业、面向 AI/ML 的 Workload API 与 CompositePodGroup、kube-proxy 向 nftables 的渐进式过渡,以及 Pod 证书、Kubelet Rootless 等安全与节点侧改进。官方 Enhancement 跟踪器显示,本里程碑共纳入约 86 项增强(不含 Deferred / Removed from Milestone 条目),其中首次进入 Alpha 的新特性约 22 项。
如果你正在规划集群升级、评估 GPU/AI 训练调度方案,或关注 kube-proxy 后端迁移,下文按主题梳理已核实的关键变化与实操要点。
发布节奏:从 Code Freeze 到 GA¶
v1.37 发布周期自 2026 年 5 月 18 日启动,几个关键节点如下:
| 节点 | 时间 |
|---|---|
| Enhancements Freeze | 2026 年 6 月 16–17 日 |
| KubeCon India | 2026 年 6 月 18–19 日 |
| Code Freeze & Test Freeze | 2026 年 7 月 22–23 日 |
| KubeCon Japan | 2026 年 7 月 28–30 日 |
| Docs Freeze | 2026 年 8 月 5–6 日 |
| v1.37.0-rc.0 | 2026 年 8 月 5 日 |
| v1.37.0 GA | 2026 年 8 月 26 日 |
KubeCon Japan 后,各 SIG 在 GitHub Discussion 中集中提交了 Release Highlights,Comms 团队据此撰写官方发布博客;Feature Blog 系列预计 GA 次日(8 月 27 日)起陆续发布。若你使用 RC 镜像做预验证,建议关注 release-1.37 分支 上的后续 rc 版本。
DRA:设备污点 GA 与扩展资源成熟¶
Dynamic Resource Allocation 自 1.26 引入以来,一直是 GPU、NIC、FPGA 等专用硬件调度的重要路径。SIG Scheduling 与 SIG Node 在 1.37 中继续推进 DRA 生态,以下变化已在 Release Highlights 中确认:
毕业至 GA(Stable)的能力:
- DRA device taints and tolerations(设备污点与容忍):类似 Node 污点机制,允许驱动或管理员标记设备不可用或仅允许特定工作负载使用,调度器在分配
ResourceClaim时尊重这些约束。 - DRA extended resources:扩展资源模型正式稳定,便于与现有
resources.limits/requests体系衔接。 - DRA: Resource Claim Status with standardized network interface data(KEP-4817):网络类 DRA 驱动可用标准化字段描述已挂载的网络接口,便于 CNI 或上层应用消费。
仍为 Alpha、但值得关注的 DRA 新特性:
- DRA Device Compatibility Groups(KEP-5963):解决同一 GPU 上 MIG / vGPU 等配置互斥导致的调度冲突——调度器不再只看容量,还会检查设备兼容性组是否重叠。
- DRA Derived Attributes(KEP-6080):通过 CEL 表达式从各厂商驱动属性中派生统一键(如 NUMA 节点 ID),实现跨驱动
matchAttribute绑定。 - DRA Optional Node Preparation(KEP-5945):云/虚拟资源可声明
SkipNodeOperations,kubelet 跳过本地 gRPC 驱动调用,无需在每个节点部署 dummy DaemonSet。 - Standard numaNode Device Attribute(KEP-6072):统一
resource.kubernetes.io/numaNode属性名,便于 GPU、NIC、CPU 等同 NUMA 共置。
对运行 AI 推理/训练、且已通过 DRA 申请 GPU 的团队,1.37 意味着生产级污点隔离与更精细的硬件拓扑调度已就绪;Alpha 特性则适合在测试集群先行验证兼容性组与派生属性。
AI/ML 批调度:Workload API 与 CompositePodGroup¶
Kubernetes 调度长期以单 Pod 为中心;分布式训练、推理 Prefill/Decode 分离等场景需要 Gang Scheduling(全组就绪再一起启动)和 多级拓扑约束。1.36 起 Workload API 与 PodGroup 已提供扁平批调度基础;1.37 在此基础上显著加码。
Workload API 与 Job 集成(Beta / Alpha)¶
根据 SIG Scheduling 与 SIG Apps 的 Highlights:
| 能力 | 阶段 |
|---|---|
| Workload API 与 gang scheduling | Beta |
| Workload-aware preemption | Beta |
| DRA ResourceClaim support for Workloads | Beta |
| Controller integration API(Workload building blocks) | Alpha |
| Job 与 Workload API 集成(KEP-5547 / KEP-6089) | Alpha(本版改用 building blocks API) |
KEP-6089 为 Job 等控制器提供可复用的 scheduling.k8s.io 结构体与 workloadbuilder 库,用户可在 Job manifest 中声明调度意图,例如 Gang、拓扑域与统一中断策略:
apiVersion: batch/v1
kind: Job
metadata:
name: distributed-train
spec:
parallelism: 4
completions: 4
scheduling:
policy:
gang: {} # MinCount 默认等于 parallelism
constraints:
topology:
- level: "topology.kubernetes.io/zone"
disruption:
all: {} # 整组同时中断
template:
spec:
containers:
- name: train-node
image: training-image:v1
resources:
limits:
nvidia.com/gpu: "1"
Feature gate:WorkloadWithJob(Alpha 阶段需显式开启)。
CompositePodGroup:层级化 Gang 调度(Alpha)¶
KEP-6012 引入 CompositePodGroup API(Feature gate:CompositePodGroup),用于表达树形工作负载结构:根组包含多个子 PodGroup,每个 PodGroup 再包含具体 Pod。典型场景包括:
- AI 训练中 N 个 Prefill 组 + M 个 Decode 组的层级依赖;
- 父组需等待最少数量子组就绪后才可整体调度(multi-level gang scheduling);
- 跨层级的拓扑感知与抢占/中断策略(
DisruptionMode决定子组能否独立被抢占)。
当前 Alpha 限制:同一 CompositePodGroup 树内所有节点须共享相同 priority 与 PriorityClassName;跨优先级策略留待 Beta。
若你使用 JobSet、LeaderWorkerSet 等 out-of-tree 控制器,CompositePodGroup 为 in-tree _scheduler 理解多级结构提供了标准锚点,后续控制器集成成本有望降低。
kube-proxy 向 nftables 过渡¶
网络侧最牵动运维的是 KEP-5343:Make nftables the default kube-proxy backend。注意:1.37 并不会立刻把默认后端改成 nftables,而是启动渐进迁移:
- 自 1.37 起:若未通过
--proxy-mode或 ConfigMap 中mode字段显式指定代理模式,kube-proxy 仍回退到 iptables,但会记录警告并产生 Event,提醒管理员尽快显式配置。 - 后续若干版本:持续警告后,nftables 才会成为默认值;iptables 后端仍会保留,用户可继续手动选择。
此外,SIG Network 还确认了以下相关变化:
- KEP-6032(Alpha):为 nftables 后端提供 localhost NodePort 用户态 TCP 代理。iptables 可借助
route_localnet在127.0.0.1访问 NodePort,nftables 无等价内核能力;启用需同时打开 Feature gateKubeProxyNFTablesLocalhostNodePorts,并设置例如--nodeport-addresses=primary,localhost。默认primary行为不变。 - kube-proxy 对 nftables 的 list 操作改为通过 netlink 直接访问内核,不再依赖
nftCLI,列表效率提升(kubernetes #137536)。 - KEP-5495:kubeadm 对 IPVS 模式 增加弃用警告;空
mode字段相关警告实际归属 KEP-5343,而非 IPVS 移除本身。
实操建议:在 1.37 升级前后,检查 kube-proxy DaemonSet/ConfigMap,显式写入 mode: iptables 或 mode: nftables,避免依赖隐式默认;若业务依赖 localhost:<NodePort>,在 nftables 后端上需评估 KEP-6032 的 Alpha 配置。
安全与节点:Pod 证书 GA、Kubelet Rootless Beta¶
Pod Certificates 与 ClusterTrustBundles(GA)¶
SIG Auth 确认:
- KEP-4317 Pod Certificates 毕业 GA:工作负载可通过
PodCertificateRequest向指定 signer 申请 X.509 证书,并以 projected volume 挂载,支持 mTLS 等场景,减少对 Bearer Token 的依赖。 - KEP-3257 ClusterTrustBundles 毕业 GA:signer 可通过 cluster 级 API 分发信任锚,Pod 按需挂载,无需在每个 namespace 复制 ConfigMap。
这对服务网格、Vault 等外部签发器与 in-tree 集成都是实质性简化。
Kubelet-in-UserNS(Rootless 模式,Beta)¶
KEP-2033 自 v1.22 Alpha 历经多个版本,在 1.37 晋升 Beta。该特性允许 kubelet、CRI、CNI 等节点组件在 user namespace 中以非 root 身份运行(即社区常说的 Rootless 模式)。本版新增:
NodeSystemInfo.RunningInUserNamespace字段;- 节点标签
node.kubernetes.io/running-in-user-namespace。
启用需在 KubeletConfiguration 中打开 Feature gate:
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
featureGates:
KubeletInUserNamespace: true
cgroupDriver: "cgroupfs"
前置条件包括 Cgroup v2、正确的 /etc/subuid 与 /etc/subgid 配置等,详见 官方文档。Rootless 对多租户边缘节点、开发机集群降低权限攻击面有意义,但生产落地仍需关注存储、Device Plugin 与 DRA 驱动的兼容性。
其他值得关注的 GA / Beta 变化¶
篇幅有限,下列条目同样来自官方 Release Highlights,升级规划时可一并纳入评估:
| 主题 | 变化 | 阶段 |
|---|---|---|
| metrics.k8s.io | HPA、kubectl top 依赖的指标 API |
GA(v1) |
| KYAML | kubectl --output 的稳定 YAML 方言 |
GA(锁定启用) |
| Pod Level Resources | Pod 级 CPU/内存请求与限制 | Stable |
| HPA scale to zero | 缩容至零副本 | Beta |
| ConcurrentWatchObjectDecode | Watch 事件并发解码,缓存初始化加速约 40% | Beta,默认开启 |
| Storage Version Migrator | 存储版本迁移内建化 | GA |
| Resilient Watchcache Initialization | 缓解 etcd thundering herd | GA |
| SELinuxMount | 卷挂载时 SELinux 标签,加快启动 | GA(SIG Storage) |
| StatefulSet maxUnavailable | 并行滚动更新 | 重新默认开启 |
| StatefulSet Recreate 策略 | 一次性重建所有 Pod(KEP-3541) | Alpha |
| Pod-Level Checkpoint/Restore | 整 Pod 快照与恢复(CRIU) | Alpha |
| EtcdRangeStream | apiserver 范围流式查询 etcd | Alpha(需 etcd ≥ 3.7) |
API 移除方面,1.37 将清理部分已过期的 beta/alpha API 版本(如 certificates.k8s.io 下 v1alpha1 ClusterTrustBundles、networking.k8s.io 下部分 beta 资源等),升级前请用 pluto 或 kubectl convert 检查清单中的 API 版本。
升级与验证建议¶
- 阅读 Release Notes 与 Deprecations 博客:GA 当周官方会发布完整说明;Feature Blog 自 8 月 27 日起分批上线。
- 在测试集群启用目标 Feature gate:尤其是 CompositePodGroup、WorkloadWithJob、DRA 新 Alpha 特性,避免直接在生产默认开启。
- 显式配置 kube-proxy mode:消除 1.37 的 iptables 隐式回退警告,并为未来 nftables 默认化做准备。
- AI/ML 工作负载:若已用 JobSet/LWS,跟踪 CompositePodGroup 与 Job
scheduling字段的 controller 集成进度;DRA GA 污点可用于生产级 GPU 隔离。 - 安全合规:评估 Pod Certificates 是否可替代部分 Secret 挂载的 TLS 材料;Rootless 节点适合非关键/边缘场景试点。
结语¶
Kubernetes 1.37 不是单点爆炸式变革,而是 DRA 生产化、Workload 感知调度、网络栈现代化(nftables) 与 工作负载身份(Pod 证书) 几条主线的交汇。86 项增强中,与 AI/ML 和专用硬件最相关的 CompositePodGroup、Workload API Beta,以及 DRA 污点 GA,可能是本版对平台团队影响最大的几块拼图。
距离 8 月 26 日 GA 尚有数周,建议利用 rc 镜像在预发环境验证 kube-proxy 配置、DRA 驱动版本与 API 弃用清单。官方信息请以 kubernetes.dev Release 页面 与 Enhancements 跟踪器 为准;本文事实均交叉引用了 SIG Release Discussion #3051 与社区技术解读,Feature 阶段以最终 Release Notes 为准。