前言¶
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 爲準。