Kubernetes v1.30版本概览
内容提要
Kubernetes v1.30版本即将发布,带来动态资源分配、Linux节点内存交换支持、用户命名空间和结构化授权配置等重要更新。动态资源分配改善了资源管理,内存交换支持增强系统稳定性,用户命名空间提升Pod隔离,结构化授权配置实现更细粒度的请求验证。此外,基于容器资源指标的水平Pod自动扩缩功能也将稳定。
延伸解读
动态资源分配的结构化参数改进
动态资源分配(DRA)在v1.26作为alpha引入,但原有设计对核心Kubernetes不透明,导致集群自动扩缩器或作业调度器无法模拟资源分配效果。v1.30引入结构化参数,通过预定义“结构化模型”让驱动以标准化方式描述资源,使调度器等组件能快速决策,无需与DRA驱动反复通信。本版本重点定义框架并实现“命名资源”模型,支持按属性选择资源实例。
Linux节点内存交换策略的稳定性调整
v1.30对Linux节点交换支持进行重要调整:移除UnlimitedSwap行为,默认使用NoSwap模式。在NoSwap下,kubelet可在启用交换的节点运行,但Pod不使用交换空间,且需设置--fail-swap-on=false。LimitedSwap模式允许Pod部分虚拟内存被换出,但容器及其父Pod不能超出内存限制使用交换。这一变化强调系统稳定性,SIG Node将更新文档帮助用户理解新实现。
用户命名空间与结构化授权配置的beta进展
用户命名空间迁移至beta,增强Pod隔离,支持带卷和不带卷的Pod以及自定义UID/GID范围,有助于缓解高危CVE。结构化授权配置也进入beta并默认启用,支持创建多Webhook授权链,按顺序验证请求,并可设置失败时显式拒绝。配置文件还支持CEL规则预过滤请求,减少不必要的Webhook调用,且API服务器会在配置文件修改时自动重载授权链。
自动扩缩与准入控制的增强
基于容器资源指标的水平Pod自动扩缩(HPA)在v1.30稳定,允许根据单个容器的资源使用而非Pod聚合值进行扩缩。同时,CEL用于准入控制提供了更动态的表达方式,可直接通过Kubernetes API定义和执行细粒度策略,无需依赖Webhook访问控制器,从而在保持性能的同时增强安全与治理能力。这些改进使集群操作更稳健、适应更多用例。
Q&A
Kubernetes v1.30版本有哪些重要更新?
Kubernetes v1.30版本带来了动态资源分配、Linux节点内存交换支持、用户命名空间和结构化授权配置等重要更新。
动态资源分配在Kubernetes v1.30中有什么改进?
动态资源分配改善了资源管理,允许更快速的资源分配和决策,并引入了结构化参数以支持更清晰的资源请求。
Kubernetes v1.30如何增强Linux节点的内存交换支持?
Kubernetes v1.30将内存交换支持默认设置为NoSwap模式,以提高系统稳定性,允许Pods不使用页面文件。
用户命名空间在Kubernetes v1.30中有什么新特性?
用户命名空间功能迁移到beta版本,增强了Pod隔离,支持自定义UID/GID范围。
结构化授权配置在Kubernetes v1.30中如何工作?
结构化授权配置将默认启用,允许创建多重Webhook的授权链,实现更细粒度的请求验证。
Kubernetes v1.30中的水平Pod自动扩缩功能有什么变化?
水平Pod自动扩缩功能将在v1.30版本中稳定,支持基于单个容器的资源使用进行自动扩缩。