随着 Kubernetes 1.34 “Of Wind & Will” 正式发布,集群管理迎来了一系列重要的变化。本次更新包含 50+ 项增强功能,其中 DRA (Dynamic Resource Allocation) 的正式商用(GA)是最大的亮点,标志着 K8s 在 AI/ML 等重资源负载领域迈出了关键一步。
本文将深入分析从旧版本升级到 v1.34 时需要关注的“避坑”指南和核心变更。
🚀 核心变化(不可忽视)
1. Dynamic Resource Allocation (DRA) 宣告正式商用 (GA)
DRA 终于从 Beta 走向了 Stable。对于需要 GPU、FPGA 或特殊硬件加速器的用户,DRA 提供了比传统 nvidia.com/gpu 更灵活的分配策略。
- 升级提示:如果你之前在测试 Alpha/Beta 版本的 DRA,请检查 API 对象(如
ResourceClaim)是否符合 GA 标准。v1.34 引入了结构化参数(Structured Parameters),这极大提升了调度器在处理复杂硬件需求时的效率。
2. 身份验证:结构化认证配置 (GA)
AuthenticationConfiguration 进入 GA 阶段。这允许管理员通过配置文件(而非硬编码参数)来配置多个 JWT 验证器。
- 安全增强:现在可以对不同的
Issuer进行更细粒度的 CEL(Common Expression Language)校验。
3. DNS 校验放宽
这是一个“虽然小但非常有用”的改动。Kubernetes 1.34 优化了对 DNS 搜索域名的校验规则,现在支持包含下划线(_)等特殊字符的外部域名解析。
- 应用场景:这对于需要与旧有遗留系统(Legacy Systems)集成的业务来说是重大利好,不再因为域名不合规而导致解析失败。
⚠️ 升级重点注意事项 (Urgent Upgrade Notes)
在执行 kubeadm upgrade 之前,请务必确认以下内容:
Kubelet 行为变更
- Pod 资源状态可视化:Status 中新增了
allocatedResourcesStatus字段。如果你有自定义的监控脚本在解析 Pod JSON 数据,请确保能够处理这些新增字段,避免解析逻辑报错。 - 健康检测(DRA):Kubelet 现在可以监控 DRA 驱动报告的设备健康状态。如果硬件出现故障,Pod 状态会直接显示
Unhealthy。
存储相关
- Image Volumes (Beta):OCI 镜像卷现在可以作为 Read-only 卷挂载到多个 Pod。这对于分发大型静态数据集(如 AI 模型权重)非常有用,建议评估是否可以替代复杂的
initContainers拷贝逻辑。
网络与流量
- Traffic Distribution (Beta):
PreferSameNode和PreferSameZone策略现在更加稳定。升级后,建议检查核心 Service 的配置,利用这些策略减少跨节点/跨区域的网络开销,降低延迟。
🛠 废弃与移除 (Deprecations & Removals)
- 旧版 API 移除:按照 K8s 演进惯例,请在升级前使用
kubent(Kube-No-Trouble) 或pluto检查集群中是否还存在已废弃的 v1beta1 API 调用。 - Go 版本要求:Kubernetes 1.34 使用 Go 1.24+ 构建。虽然普通用户不直接感知,但如果你在自行编译自定义控制器,请同步升级开发环境。
📖 总结:应该升级吗?
推荐升级的情况:
- 你的集群正在运行 AI/ML 工作负载,急需 DRA 的正式版支持。
- 你需要更灵活的 mTLS (Alpha) 或结构化认证来增强安全性。
- 你正在被严格的 DNS 域名校验困扰。
建议观望的情况:
- 生产环境极度追求稳定。建议等待 v1.34.2 或 v1.34.3 补丁版本发布后再行动。
参考资料: