You need to enable JavaScript to run this app.
导航
容器服务发布 Kubernetes v1.30 版本说明
最近更新时间:2025.02.12 11:29:29首次发布时间:2025.02.11 19:59:06

火山引擎容器服务(VKE)严格遵循社区一致性认证。本文介绍容器服务发布 Kubernetes 1.30 版本所做的变更说明。

说明

【公测】:容器服务发布的 Kubernetes 1.30 版本目前处于公测阶段。

版本发布说明

表1:核心组件及说明

核心组件当前版本号注意事项
Kubernetes1.30.4Kubernetes v1.29 和 v1.30 对测试版本 API 进行废弃和移除,使用新版本需进行兼容性检查。详情请参见本文下方:废弃和移除功能API 版本弃用
ETCDv3.5.9
Containerd Runtimev1.6.28
CoreDNSv1.11.1
Ingress-nginxv1.10.4-vke.1

表2:Kubernetes 版本与容器服务版本对应关系

Kubernetes 版本VKE 版本发布说明
v1.30.4vke.3强化扩展调度器,支持 mGPU 在线和离线混合部署。

Kubernetes 社区版本解读

重大更新

在 Kubernetes v1.30 版本

  • 传统 ServiceAccount 令牌清理器特性进入 GA 阶段,如果自动生成的传统 ServiceAccount 令牌在特定时间段内(默认为一年)未被使用,且没有被任何 Pod 挂载,会被清理器标记为无效。如果一个无效的令牌在特定时间(默认为一年)依旧未被使用,将会被清理器自动清理。详情请参见:Legacy ServiceAccount token cleaner

  • 基于 ContainerResource 指标的 Pod 水平自动扩缩容特性进入 GA 阶段,允许 HPA 根据 Pod 中各个容器的资源使用情况来配置自动伸缩,而不仅是 Pod 的整体资源使用情况,便于为在 Pod 中最重要的容器配置扩缩容阈值。详情请参见 Container resource metrics

  • Webhook 定义匹配条件进入 GA 阶段,允许对准入 Webhook 支持根据特定的条件进行匹配,更细粒度地控制 Webhook 的触发条件。更多信息,请参见 Dynamic Admission Control

  • Pod 调度就绪态进入 GA 阶段,在 Pod 中引入.spec.schedulingGates字段,控制 Pod 允许调度的时机。详情请参见:Pod Scheduling Readiness

  • Pod 拓扑分布中的最小域进入 GA 阶段,允许 Pod 拓扑约束为whenUnsatisfiable: DoNotSchedule时,通过minDomains字段限制符合条件的域的最小数量。详情请参见:minDomains

  • 防止未经授权的卷模式转换进入 GA 阶段,基于 VolumeSnapshot 来创建 PersistentVolumeClaim 时,支持验证制作快照的原始卷模式是否与新创建的卷模式匹配,避免卷模式更改带来的安全问题。详情请参见:KEP-3141Preventing unauthorized volume mode conversion

  • VolumeManager 重构进入 GA 阶段,允许 kubelet 在启动期间带上关于现有卷如何挂载的附加信息。

  • Service 的负载均衡 IP 模式进入 Beta 阶段,类型为 LoadBalancer 的 Service 新增.status.loadBalancer.ingress.ipMode字段,用于指定负载均衡器 IP 的运行方式。详情请参见:Load balancer IP address mode

  • 未使用容器镜像的垃圾收集进入 Beta 阶段,通过imageMaximumGCAge指定本地镜像未被使用的最长时间,超过该时间的镜像将被 kubelet 执行垃圾回收。详情请参见:Garbage collection for unused container images

  • CRDValidationRatcheting 特性进入 Beta 阶段,当 CustomResourceDefinition 添加新的验证后,即使因此导致存量资源在更新后无效,但只要未通过验证的部分没有被更新,API Server 便不会拦截资源的更新,不影响现有的资源和用户。详情请参见:CRD Validation ratcheting

  • NodeLogQuery 特性进入 Beta 阶段,允许允许使用/logs端点来查询节点服务的日志。详情请参见:log-query

  • kubelet 新增监控指标image_pull_duration_seconds,用于跟踪镜像拉取时间。详情请参见:Alpha 阶段的 Kubernetes 指标清单

  • JobSuccessPolicy 特性进入 Alpha 阶段,带索引的 Job 支持通过.spec.successPolicy定义 Job 何时可以被声明为成功。详情请参见:Success policy

在 Kubernetes v1.29 版本

  • ReadWriteOncePod 访问模式进入 GA 阶段,该访问模式用于限制 PV 被单个节点上的单个 Pod 访问。ReadWriteOnce 模式限制了单节点访问,但并不限制同一个节点上多个 Pod 的同时访问。详情请参见:ReadWriteOncePod

  • CSINodeExpandSecret 特性进入 GA 阶段,支持在 NodeExpandVolume 过程中将 secret 凭证传递给 CSI 驱动。详情请参见:KEP-3107Use Secrets for Node-Driven Expansion of CSI Volumes

  • KMS V2 进入 GA 阶段,对 KMS 加密提供程序的性能进行优化,详情请参见:使用 KMS 驱动进行数据加密

  • PodReadyToStartContainersCondition 特性进入 Beta 阶段,新增PodReadyToStartContainers状况表示 Pod 的沙箱创建和网络配置完成情况,详情请参见:Pod network readiness

  • 原生边车容器进入 Beta 阶段,支持在 Init 容器中配置restartPolicy字段启用边车容器。边车容器独立于其他 Init 容器以及同一 Pod 内的主应用容器。详情请参见:Sidecar Containers

  • 基于索引的回退机制进入 Beta 阶段,JobBackoffLimitPerIndex 特性开启时,支持在创建带索引的 Job 中配置.spec.backoffLimitPerIndex,避免单个索引持续失败达到.spec.backoffLimit限制而导致整体失败。详情请参见:基于索引的回退限制

  • PodHostIPs 特性进入 Beta 阶段,该特性在 Pod 和 downward API 中增加status.hostIPs字段,用于将节点 IP 地址暴露给工作负载。status.hostIPsstatus.hostIP的双协议栈版本,第一个 IP 始终与status.hostIP相同。

  • Pod 亲和/反亲和支持 matchLabelKeys/mismatchLabelKeys 进入 Alpha 阶段,该特性能够更精细地控制 Pod 亲和/反亲和的范围,解决了调度器在 Deployment 滚动更新期间无法区分新老 Pod 而到调度结果不符合预期的问题。详情请参见:matchLabelKeys/mismatchLabelKeys

  • NFTables 代理模式进入 Alpha 阶段,允许 kube-proxy 使用内核 netfilters 子系统的 nftables API 来配置数据包转发规则,详情请参见:nftables proxy mode

  • 扩展 Service IP 范围进入 Alpha 阶段,允许新增 ServiceCIDR 对象动态配置 Service ClusterIP 地址的分配范围,详情请参见:KEP-1880

  • 基于运行时类的镜像拉取进入 Alpha 阶段,kubelet 会通过一个元组(image name, runtime handle)而不仅仅是镜像名称或镜像摘要来引用容器镜像,详情请参见:Image pull per runtime class

  • PodLifecycleSleepAction 特性进入 Alpha 阶段,PreStop 新增 Sleep 回调处理程序,支持将容器暂停一段指定时间,详情请参见:Container Lifecycle Hooks

  • KubeletSeparateDiskGC 特性进入 Alpha 阶段,kubelet 能够对部署在不同文件系统上的镜像(只读层)和/或容器(可写层)执行垃圾回收,详情请参见:KEP-4191

废弃和移除功能

在 Kubernetes v1.30 版本

  • kubectl apply 移除命令行参数--prune-whitelist ,使用--prune-allowlist代替。

  • 移除了 v1.27 已废弃的准入插件SecurityContextDeny,建议使用准入插件[PodSecurity](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#podsecurity)代替。

在 Kubernetes v1.29 版本

  • 默认关闭内置的cloud providers,可通过DisableCloudProviders以及DisableKubeletCloudCredentialProvider特性门控开启。详情请参见:Removed In-Tree Cloud Providers

  • kube-scheduler 移除了selectorSpread插件,使用podTopologySpread代替。

  • CronJob 不支持配置.spec.schedule字段为TZCRON_TZ,使用.spec.timeZone代替。

API 版本弃用

  • 在 Kubernetes v1.29,FlowSchema 和 PriorityLevelConfiguration 的flowcontrol.apiserver.k8s.io/v1beta3 API 版本升级至flowcontrol.apiserver.k8s.io/v1v1beta3已废弃,并在 v1.32 中不再支持。

  • 在 Kubernetes v1.29,移除了 KubeSchedulerConfiguration 的kubescheduler.config.k8s.io/v1beta3 API 版本,需迁移至kubescheduler.config.k8s.io/v1

  • 在 Kubernetes v1.29,PVC 的.spec.Resource字段类型由 ResourceRequirements 替换为 VolumeResourceRequirements。

  • 在 Kubernetes v1.29,PodFailurePolicyRule 中OnPodConditions字段更改为可选字段。

  • 在 Kubernetes v1.29,移除了 alpha API ClusterCIDR。

参考链接

关于 Kubernetes 1.30 版本的性能和功能演进的更多信息,请参见:
CHANGELOG-1.30.md
CHANGELOG-1.29.md