这两天看k8s技术博客,发现新版本又要在本月底发布了,时光如梭啊!
15年第一个版本,到今年十周年,已经三十多个版本了,从谷歌的“内部玩具”变成了开源社区的明星项目再到行业标准,这十年的发展也影响着和它相关的很多人。
我的职业生涯也是深受影响,记得20年那会,很多公司已经开始大量容器化,包括我所在的公司,k8s的部署还是专人来部署操作,我还是站在旁边看的学徒,21年才开始自己上手部署使用,边用边学眼看更新了这么多版本了(大约每 3-4 个月发布一个次版本)
截至 2025 年 8 月,K8s 已发布到 1.33.3,1.34 正在紧锣密鼓地准备中。从 1.0 到 1.33,K8s 共经历了 33 个次版本,每个版本都伴随着新功能、性能优化和 bug 修复。K8s 的版本号虽然看着简单,但背后是无数开发者的心血。有人这样吐槽:“每次看 K8s changelog,感觉像是读了一本技术小说,剧情跌宕起伏!”
下面就跟着希里安来一块看看最近要发布的k8s版本有哪些更新吧!
Kubernetes v1.34 即将在 2025 年 8 月底正式发布!此次更新不涉及任何功能移除或弃用,而是带来了大量令人兴奋的增强功能。以下是我们对这一版本中最值得期待的亮点解读!
注意:以下内容基于 v1.34 当前开发状态,发布前可能会有所调整
动态资源分配(DRA)为 Kubernetes 集群提供了一种灵活的方式,用于分类、请求和使用 GPU 或自定义硬件等设备。
自 v1.30 起,DRA 通过结构化参数实现设备分配,核心机制对 Kubernetes 透明。其增强提案(KEP-4381)借鉴了存储卷的动态配置灵感,新增了 ResourceClaim、DeviceClass、ResourceClaimTemplate 和 ResourceSlice 等 API 类型,并扩展了 Pod 的 .spec 字段,新增 resourceClaims。在 v1.34 中,DRA 核心功能预计将升级为稳定版。
DRA 允许设备驱动和集群管理员定义设备类别,工作负载可从设备类别中请求设备。Kubernetes 将匹配的设备分配给特定声明,并将 Pod 调度到可访问这些设备的节点上。这一框架支持使用 CEL 进行灵活的设备过滤、集中式设备分类和简化的 Pod 请求等功能。稳定后,resource.k8s.io/v1 API 将默认启用
在 v1.34 中,kubelet 凭据提供者的 ServiceAccount 令牌集成预计达到 Beta 阶段并默认启用。这允许 kubelet 在从需要认证的镜像仓库拉取容器镜像时使用这些令牌。
该功能已在 Alpha 阶段(KEP-4412),支持 kubelet 使用短期、自动轮换的 ServiceAccount 令牌(符合 OIDC 语义)进行镜像仓库认证。每个令牌与特定 Pod 绑定,取代了长期使用的镜像拉取 Secret。这种方式降低了安全风险,支持工作负载级别的身份管理,并减少了操作开销。
Deployment 更新后,旧 Pod 的终止可能耗时较长并占用额外资源。KEP-3973 引入了 .spec.podReplacementPolicy 字段(Alpha 阶段),为 Deployment 提供两种策略:
此功能通过 feature gate(DeploymentPodReplacementPolicy 和 DeploymentReplicaSetTerminatingReplicas)启用,适合资源受限的集群或具有长时间终止的工作负载。
为解决节点级问题调试的难题,KEP-2831 为 kubelet 提供了深入的上下文追踪,基于 OpenTelemetry 标准,重点监测其对容器运行时接口(CRI)的 gRPC 调用。操作者可通过追踪 Pod 启动等事件生命周期,快速定位延迟和错误来源。追踪上下文的传递是其亮点,kubelet 将追踪 ID 传递给容器运行时,实现跨组件的追踪。
同时,KEP-647 为 Kubernetes API Server 提供类似追踪能力,结合两者实现从控制平面到节点的端到端事件视图。这两项功能分别在 v1.25 和 v1.22 作为 Alpha 引入,在 v1.27 升级为 Beta,预计在 v1.34 达到稳定
通过 Service 的 spec.trafficDistribution 字段,用户可指定流量路由偏好。KEP-3015 弃用 PreferClose,新增 PreferSameZone(等同于 PreferClose)和 PreferSameNode(优先将流量发送到与客户端同节点的端点)。此功能在 v1.33 引入(通过 PreferSameTrafficDistribution feature gate),预计在 v1.34 升级为 Beta 并默认启用
KYAML 是 YAML 的一个更安全、少歧义的子集,专为 Kubernetes 设计。无论使用哪个版本的 Kubernetes,KYAML 都可用于编写 manifests 或 Helm charts。KYAML 文件完全兼容 YAML,可作为 kubectl 的输入。在 v1.34 中,kubectl 预计支持以 KYAML 格式输出(kubectl get -o kyaml),同时保留 JSON 和 YAML 输出选项。
KYAML 通过以下方式解决 YAML 和 JSON 的问题:
KYAML 预计作为 kubectl v1.34 的新输出格式,保持与 YAML 解析器的兼容性
KEP-4951 允许为每个 HPA 配置扩缩容容忍度,覆盖默认的 10% 集群范围设置。新功能在 HPA 的 spec.behavior.scaleUp 和 spec.behavior.scaleDown 中添加了可选的 tolerance 字段,支持为扩展和缩容设置不同容忍度,优化大规模部署的响应性和资源利用率。此功能在 v1.33 作为 Alpha 引入(通过 HPAConfigurableTolerance feature gate),预计在 v1.34 升级为 Beta
更多新功能和弃用信息将在 Kubernetes v1.34 的 CHANGELOG 中正式公布。版本计划于 2025 年 8 月 27 日发布,敬请期待!
好了以上就是今天的内容,对于k8s感兴趣的小伙伴,可以添加希里安,进入技术交流群!交流更多关于k8s的技术信息。