社区 Kubernetes 版本主要变更
Kubernetes 1.31 版本Changelog
StatefulSet 起始序号(GA),允许用户自定义 Pod 的起始序号(默认从 0 开始),例如设置为 100,适用于需要固定编号或特定顺序的应用场景(如分布式数据库)。
弹性索引 Job(GA),支持在索引 Job 创建后动态调整 .spec.completions 和 .spec.parallelism 字段,实现任务弹性伸缩,无需重新创建 Job。
Pod 失效策略(GA),可根据 Pod 失效原因(如被抢占、节点删除、kubelet 终止等)分别配置处理逻辑(重试或忽略),避免不必要的 Pod 重启,降低运行成本。
Pod 干扰状况(GA),在 Pod 的 Condition 中新增 DisruptionTarget 类型,明确标记 Pod 失效原因(如被高优先级 Pod 抢占),结合 Job 的失效策略实现更精细的任务管理。
Job成功策略(Beta),JobSuccessPolicy特性进阶至Beta。该特性允许用户基于成功的Pod个数为Job配置成功策略。
持久卷回收策略(Beta),确保 PV 的回收策略(如 Delete)在 PVC 删除后仍被强制执行,通过添加 Finalizer 防止存储资源泄漏,即使 PV 和 PVC 的删除顺序混乱也能保证一致性。
ServiceAccountTokenNodeBinding(Beta),创建绑定到特定节点的 Token,包含节点信息声明,并在 Token 使用时验证节点存在性。若节点被删除,Token 自动失效,降低凭证泄露风险。
容器重启优化,当 Pod 配置变更但镜像未更新时,kubelet 不再强制重启容器,避免因非关键配置更新导致的不必要中断。
OCI 镜像卷(Alpha),允许将 OCI 镜像直接挂载为卷,简化 AI/ML 工作负载中模型和数据的访问,例如通过更换镜像快速更新模型权重。
更多信息请参考:Kubernetes 1.31 Changelog
Kubernetes 1.30 版本Changelog
Pod 调度就绪机制(GA),通过 spec.schedulingGates 字段,允许用户在 Pod 创建后动态控制其调度时机。例如,当存储卷或网络策略未准备好时,Pod 可被标记为 “未就绪”,避免无效调度导致的资源浪费。
Pod 拓扑分布最小域(GA),在 PodTopologySpread 中新增 minDomains 参数,要求 Pod 至少分布在指定数量的拓扑域(如可用区)。若当前域不足,Pod 将暂停调度,触发自动缩放器创建新节点,确保高可用性。
基于索引的 Job 回退机制(Beta),支持为索引 Job 的每个任务索引单独配置重试策略(.spec.backoffLimitPerIndex),避免因单个索引失败导致整个 Job 终止。适用于分布式训练等需细粒度控制的场景。
基于容器资源的 HPA(GA),Horizontal Pod Autoscaler 可根据 Pod 内单个容器的 CPU / 内存使用情况进行扩缩容,而非依赖 Pod 整体指标。例如,优先对关键容器(如数据库主节点)设置更严格的扩缩容阈值。
负载均衡器 IP 模式(Beta), LoadBalancer 类型的 Service 新增 .status.loadBalancer.ingress.ipMode 字段,用于指定负载均衡器IP的转发行为。该字段仅在指定了.status.loadBalancer.ingress.ip字段时才能被指定。
多服务 CIDR 支持(Alpha),允许为集群配置多个 Service ClusterIP 地址段(通过 ServiceCIDR 资源),扩展服务 IP 地址空间,满足复杂网络拓扑需求。
基于 CEL 的准入控制(GA),该特性支持通过CEL表达式声明资源的验证准入策略。
ImageMaximumGCAge(Beta),允许kubelet配置对未使用镜像被垃圾回收前的最大存活时间,即在达到指定时间后若镜像仍然未被使用,那么镜像将可被垃圾收集机制清理。默认值为"0s",即不设置时间限制)。
更多信息请参考:Kubernetes 1.30 Changelog