Kubernetes v1.34新特性预览
Kubernetes v1.34 预览
作者:Agustina Barbetta, Alejandro Josue Leon Bellido, Graziano Casto, Melony Qin, Dipesh Rawat | 2025年7月28日,星期一
Kubernetes v1.34 将于2025年8月底发布。此版本不会移除或弃用任何功能,但包含大量改进。以下是我们在此版本中期待的亮点功能!
翻译:辣个男人Devin
注意:本文内容反映v1.34开发当前状态,发布前可能变更。
v1.34 核心增强功能
以下列出部分即将包含的重要增强功能,但非完整列表。功能内容可能随版本更新调整。
动态资源分配(DRA)进入稳定版
动态资源分配(DRA)提供了一种灵活的方式,用于分类、请求和使用GPU或自定义硬件等设备。
自v1.30起,DRA基于结构化参数实现设备声明(参数对Kubernetes核心透明)。相关增强提案(KEP-4381)借鉴了存储卷的动态供给机制。DRA的结构化参数依赖以下API类型:
ResourceClaim(资源声明)DeviceClass(设备类)ResourceClaimTemplate(资源声明模板)ResourceSlice(资源切片)
这些类型位于resource.k8s.ioAPI组,并扩展了Pod的.spec.resourceClaims字段。DRA核心功能将在v1.34毕业为稳定版。
功能优势:
- 设备驱动和集群管理员可定义设备类
- 工作负载通过设备类请求设备
- Kubernetes自动分配匹配设备,调度Pod至可访问该设备的节点
- 支持CEL(Common Expression Language)动态过滤、集中化设备分类、简化Pod请求
影响:
resource.k8s.io/v1 API将默认启用。
ServiceAccount令牌支持镜像拉取认证
kubelet凭证提供者的ServiceAccount令牌集成将在v1.34进入β阶段并默认启用。这允许kubelet在拉取需认证的镜像时使用该令牌。
现状:
- α阶段功能已存在(KEP-4412)
- 支持kubelet使用短期、自动轮换的ServiceAccount令牌(符合OIDC语义)认证镜像仓库
- 每个令牌作用域限定于单个Pod,替代长期存在的镜像拉取Secret
优势:
- 降低安全风险
- 支持工作负载级身份
- 减少运维开销
- 符合现代身份感知认证最佳实践
Deployment的Pod替换策略
Deployment变更时,终止中的Pod可能长时间占用资源。KEP-3973新增.spec.podReplacementPolicy字段(α阶段),提供两种策略:
- TerminationStarted(终止开始时):旧Pod终止时立即创建新Pod,加速滚动更新但可能增加资源消耗
- TerminationComplete(终止完成后):等待旧Pod完全终止后创建新Pod,减慢更新但控制资源使用
适用场景:
- 资源紧张的集群
- 终止周期长的工作负载
- 需平衡更新速度与资源消耗
启用方式:
通过API Server和控制器管理器的DeploymentPodReplacementPolicy和DeploymentReplicaSetTerminatingReplicas特性门控。
kubelet与API Server的生产级追踪
为解决通过日志关联调试节点级问题的长期挑战,KEP-2831为kubelet提供深度上下文洞察。
- 基于OpenTelemetry标准对关键kubelet操作(如CRI gRPC调用)进行追踪
- 支持操作员可视化事件全生命周期(如Pod启动)以定位延迟和错误根源
- 传播追踪上下文:kubelet向容器运行时传递Trace ID,运行时可关联自身追踪信息
配套增强:
KEP-647为API Server提供相同追踪能力。两者结合实现从控制平面到节点的端到端事件视图。
- KEP-2831:v1.25 α阶段,v1.27 β阶段
- KEP-647:v1.22 α阶段,v1.27 β阶段
- v1.34目标:毕业为稳定版
Service流量分配:PreferSameZone与PreferSameNode
Service的.spec.trafficDistribution字段新增流量路由偏好:
- PreferSameZone(等效原PreferClose):优先同区域节点
- PreferSameNode:优先同节点上的Endpoints
演进:
- v1.33引入(
PreferSameTrafficDistribution特性门控) - v1.34目标:β阶段默认启用
支持KYAML:Kubernetes专用YAML方言
KYAML是为Kubernetes设计的安全、无歧义YAML子集。其特点:
- 字符串值始终双引号
- 键值除非歧义无需引号
- 映射强制
{},列表强制[] - 支持注释与尾随逗号(JSON不支持)
- 完全兼容YAML解析器
kubectl v1.34增强:
- 支持
-o kyaml输出格式(兼容旧版kubectl输入) - 保留JSON/YAML输出选项
优势:
- 避免YAML缩进/类型强制问题(如"The Norway Bug")
- 兼具JSON结构化与YAML灵活性
HPA可配置容忍度的精细扩缩容控制
KEP-4951允许按HPA实例配置容忍度(覆盖默认10%集群级设置)。
- 新增
spec.behavior.scaleUp.tolerance与spec.behavior.scaleDown.tolerance字段 - 支持独立设置扩缩容灵敏度(扩容通常需更高优先级)
现状:
- v1.33 α阶段(
HPAConfigurableTolerance特性门控) - v1.34目标:β阶段
场景价值:
- 大规模部署中避免因10%容忍度残留数百Pod
- 按工作负载优化扩缩行为(响应性/保守性)
了解更多:
请关注Kubernetes社区更新。
作者觉得,这次最大的亮点是支持了kyaml格式,既兼容了yaml和json,同时又不用担心格式缩进,简直是极佳的体验!
欢迎关注我的公众号 辣个男人Devin ,新鲜技术文章第一时间推送。