文章
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 Lead | Ryota 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)
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 NGINX | 2026-03-24 正式退役,不再发新版本/修 Bug/处理安全漏洞 |
重大变更与升级注意
⚠️ SELinux 卷标签变更 GA(未来可能破坏性变更)
- 默认适用所有卷,用
mount -o context=XYZ 替代递归重标记。
- 未来风险:后续版本可能因同节点特权与非特权 Pod 共享卷产生破坏性变更。
- 行动:v1.36 是审计集群的理想版本,正确设置
seLinuxChangePolicy 与卷标签。
⚠️ Service externalIPs 弃用
- 如 Service 依赖此字段,迁 LoadBalancer / NodePort / Gateway API。
⚠️ gitRepo 卷永久移除
⚠️ Ingress NGINX 已退役
⚠️ gogo protobuf 移除
- 消费 K8s API Go 类型的注意技术债务,避免误用标准 protobuf 库。
升级检查清单
- 检查
externalIPs 使用 → 迁 LoadBalancer/NodePort/Gateway API
- 检查
gitRepo 卷使用 → 迁 init 容器/git-sync
- 检查 Ingress NGINX → 评估迁移
- 审计 SELinux 卷标签配置 → 确保
seLinuxChangePolicy 与卷标签正确
- 注意
gogo protobuf 移除 → Go 客户端技术债务
运维实践要点
- 用户命名空间生产采用:GA 后对 hardened 工作负载设
hostUsers: false,缓解容器逃逸。
- 变更准入策略替代变更 webhook:GA 后将标签注入/默认值设置等迁 CEL MutatingAdmissionPolicies。
- 细粒度 kubelet API 授权:监控/排障改用最小权限,弃用
nodes/proxy。
- 节点日志查询启用:
enableSystemLogQuery 开启,排障无需 SSH。
- PSI 指标接入监控:区分繁忙与资源耗尽,优化 VPA 与资源调优。
- OCI 卷源采用:应用数据/ML 模型打包为 OCI 制品挂载,复用注册表与版本管理。
- 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 生成类型 |
关联知识
参考资源
状态: 📖 已掌握