文章

K8s 1.36 Haru 详解

Kubernetes 1.36 ハル Haru 详解

概述

v1.36「ハル(Haru)」于 2026-04-22 发布,日语「ハル」三义——春、晴、遥,Logo 灵感取葛饰北斋赤富士。含 70 项增强(GA 18 / Beta 25 / Alpha 25),增强总数创新高。三大 spotlight:细粒度 kubelet API 授权 GA、资源健康状态 Beta、工作负载感知调度(WAS/PodGroup)Alpha重大变更:Service externalIPs 弃用、gitRepo 卷永久移除、Ingress NGINX 已退役(2026-03-24)、用户命名空间 GA。

发布基本信息

项目内容
发布日期2026-04-22
代号ハル(Haru)
开发周期15 周(2026-01-12 ~ 2026-04-22)
增强总数70(GA 18 / Beta 25 / Alpha 25)
Release LeadRyota Sawada
贡献106 家公司、491 名个人

主要新特性解读

🟢 GA 特性(spotlight + 重点)

1. 细粒度 kubelet API 授权 GA(KEP-2862)⭐

  • 解读:替代过于宽泛的 nodes/proxy 权限,实现最小权限访问控制。监控/可观测性场景不再需要宽泛权限。
  • 相关概念nodes/proxy、node authorizer、RBAC 最小权限、kubelet API。

2. Pod 用户命名空间 GA(KEP-127)⭐

  • 解读:容器 root 用户映射为主机非特权用户,容器逃逸后无管理员权限。生产 hardened 隔离可启用。
  • 相关概念:user namespace、hostUsers、容器逃逸缓解、Linux UID 映射。

3. 变更准入策略 GA(KEP-3962)⭐

  • 解读:使用 CEL 在 API 服务器内原生定义资源变更,替代外部 webhook。CEL 准入控制(验证 + 变更)全面成熟。
  • 相关概念:MutatingAdmissionPolicy、MutatingWebhookConfiguration、CEL、admission patch。

4. validation-gen GA(KEP-5073)

  • 解读:Go struct tags 中用 CEL 定义验证逻辑,自动生成验证代码,减少手工编码错误。
  • 相关概念:声明式验证、IDL、code-generator、API 一致性。

5. 卷组快照 GA(KEP-3476)

  • 支持同时对多个 PVC 做崩溃一致性快照与恢复。

6. 可变卷挂载限制 GA(KEP-4876)

  • CSI 驱动可动态更新节点最大卷数限制,无需重启组件。

7. 外部 ServiceAccount 令牌签名 API GA(KEP-740)

  • 令牌签名委托外部系统,apiserver 可发现并验证外部签名者公钥。

8. DRA AdminAccess GA(KEP-5018)& DRA 优先替代 GA(KEP-4816)

  • 管理员安全访问硬件的永久框架;资源选择跨集群一致可预测。

9. 节点日志查询 GA(KEP-2258)

  • 通过 kubelet API 与 kubectl 插件查看节点日志,无需 SSH。需 NodeLogQuery feature gate 与 enableSystemLogQuery

10. PSI 指标 GA(KEP-4205)

  • kubelet 报告 CPU/内存/IO 压力停滞信息,区分繁忙与资源耗尽。

11. OCI 卷源 GA(KEP-4639)

  • kubelet 直接从 OCI 兼容注册表拉取并挂载内容(应用数据/模型/静态资产)。

12. SELinux 卷标签加速 GA(KEP-1710)

  • mount -o context=XYZ 替代递归重标记,默认适用所有卷。

13. 其他 GA:移除 gogo protobuf(KEP-5589)、L3 缓存拓扑感知(KEP-5109)、ProcMount 选项、Portworx CSI 迁移、PodResources 含 DRA 等。

🟡 Beta 特性(重点)

1. 资源健康状态 Beta(KEP-4680)⭐

  • 解读:Pod .status 新增 allocatedResourcesStatus,统一报告专用硬件健康状态,kubectl describe pod 可查看设备 Unhealthy/Unknown
  • 相关概念:DRA、设备健康、Pod status、GPU 故障感知。

2. 混合版本代理 Beta(KEP-4020)

  • 解读:API 请求路由到所请求组/版本/资源的 apiserver 实例,减少版本偏差导致的 404 与故障,新增重路由流量指标。
  • 相关概念:API aggregation、版本偏差、滚动升级、AA server。

3. .kuberc 凭证插件策略 Beta(KEP-3104)

  • 新增凭证插件白/黑名单策略。

4. 约束性模拟 Beta(KEP-5284)

  • 模拟者需同时拥有模拟身份权限与代表该身份执行操作的权限,最小权限原则。

5. Job 暂停时可变容器资源 Beta(KEP-5440)

  • 允许 Job 暂停时更新容器 CPU/内存/GPU/扩展资源请求与限制。

6. cgroups v2 内存 QoS Beta(KEP-2570)

  • 分层内存保护,改进 memory.high/memory.min 编程,新增指标与防活锁保护。

7. /statusz /flagz 端点 Beta(KEP-4827/4828)

  • 结构化暴露组件构建版本、启动时间、Go 版本、命令行标志。

8. IP/CIDR 严格验证 Beta(KEP-4858)& 控制器陈旧缓解 Beta(KEP-5647)& DRA 多项 Beta。

🔴 Alpha 特性(spotlight + 重点)

1. 工作负载感知调度 WAS / PodGroup(KEP-4671 等)⭐

  • 解读:Job controller 与修订后的 Workload API、新的解耦 PodGroup API 原生集成,支持原子化 PodGroup 调度周期(全部绑定或全不绑定)。
  • 价值:复杂分布式工作负载减少碎片化调度与资源浪费,AI/ML 训练与 HPC 受益。
  • 相关概念:PodGroup、Gang scheduling、Workload API、Kueue、原子调度。

2. HPA 缩容至零(自定义指标)(KEP-2021)

  • 解读:使用 Object 或 External 指标时可将工作负载缩容至零副本,显著降低成本。HPAScaleToZero feature gate。
  • 相关概念:HPA、scale-to-zero、KEDA、自定义指标、成本优化。

3. 原生直方图支持(KEP-5808)

  • 控制平面导出稀疏直方图,动态调整分辨率,无需手动管理桶。

4. 清单式准入控制配置(KEP-5793)

  • 结构化清单声明式定义准入控制期望状态,替代命令行标志与复杂配置文件。

5. CRI list 流式传输(KEP-5825)

  • kubelet 与运行时之间用服务器端流式 RPC 替代单体 List,减少内存压力与延迟。

弃用与移除

类型项目说明
弃用Service .spec.externalIPs安全隐患(CVE-2020-8554,中间人攻击),v1.36 起警告,v1.43 完全移除
移除gitRepo 卷驱动自 v1.11 弃用,v1.36 永久禁用且无法重启用(严重安全漏洞)
退役Ingress NGINX2026-03-24 正式退役,不再发新版本/修 Bug/处理安全漏洞

重大变更与升级注意

⚠️ SELinux 卷标签变更 GA(未来可能破坏性变更)

  • 默认适用所有卷,用 mount -o context=XYZ 替代递归重标记。
  • 未来风险:后续版本可能因同节点特权与非特权 Pod 共享卷产生破坏性变更。
  • 行动:v1.36 是审计集群的理想版本,正确设置 seLinuxChangePolicy 与卷标签。

⚠️ Service externalIPs 弃用

  • 如 Service 依赖此字段,迁 LoadBalancer / NodePort / Gateway API。

⚠️ gitRepo 卷永久移除

  • 工作负载迁 init 容器或 git-sync

⚠️ Ingress NGINX 已退役

  • 评估迁移方案(Gateway API 等)。

⚠️ gogo protobuf 移除

  • 消费 K8s API Go 类型的注意技术债务,避免误用标准 protobuf 库。

升级检查清单

  1. 检查 externalIPs 使用 → 迁 LoadBalancer/NodePort/Gateway API
  2. 检查 gitRepo 卷使用 → 迁 init 容器/git-sync
  3. 检查 Ingress NGINX → 评估迁移
  4. 审计 SELinux 卷标签配置 → 确保 seLinuxChangePolicy 与卷标签正确
  5. 注意 gogo protobuf 移除 → Go 客户端技术债务

运维实践要点

  1. 用户命名空间生产采用:GA 后对 hardened 工作负载设 hostUsers: false,缓解容器逃逸。
  2. 变更准入策略替代变更 webhook:GA 后将标签注入/默认值设置等迁 CEL MutatingAdmissionPolicies。
  3. 细粒度 kubelet API 授权:监控/排障改用最小权限,弃用 nodes/proxy
  4. 节点日志查询启用enableSystemLogQuery 开启,排障无需 SSH。
  5. PSI 指标接入监控:区分繁忙与资源耗尽,优化 VPA 与资源调优。
  6. OCI 卷源采用:应用数据/ML 模型打包为 OCI 制品挂载,复用注册表与版本管理。
  7. WAS/PodGroup 跟踪:AI/ML 平台关注 PodGroup 原子调度成熟度。

常见问题 / 坑点

问题原因解决方案
externalIPs Service 告警弃用迁 LoadBalancer/NodePort/Gateway API
gitRepo Pod 失败永久移除用 init 容器 + git-sync
Ingress 不再更新NGINX 退役迁 Gateway API
SELinux Pod 启动失败卷标签变更正确设 seLinuxChangePolicy
Go 客户端 protobuf 报错gogo 移除k8s.io/code-generator 生成类型

关联知识

参考资源


状态: 📖 已掌握