Kubernetes 1.33版本说明
云容器引擎(CCE)严格遵循社区一致性认证,现已支持Kubernetes 1.33集群版本特性。本文介绍Kubernetes 1.33版本的变更说明。
新增特性及特性增强
- 允许微调CPU Manager的资源分配策略(GA)
在Kubernetes 1.33中,CPUManagerPolicyOptions进阶至GA。该特性支持允许微调CPU Manager的资源分配策略。详细使用方式请参考CPU管理策略。
- ServiceCIDR动态增加ClusterIP的可分配范围(GA)
在Kubernetes 1.33中,MultiCIDRServiceAllocator进阶至GA。引入ServiceCIDR和IPAddress资源来记录Service的ClusterIP分配情况,支持通过ServiceCIDR来动态增加ClusterIP的可分配范围。
- JobBackoffLimitPerIndex(GA)
在Kubernetes 1.33中,JobBackoffLimitPerIndex进阶至GA。允许为索引作业中的每个索引指定Pod的最大重试次数。详细使用方式请参考Kubernetes v1.33:Job逐索引的回退限制进阶至GA。
- JobSuccessPolicy(GA)
在Kubernetes 1.33中,JobSuccessPolicy进阶至GA。允许自定义Job的成功策略,例如通过指定某些索引是否成功和成功的索引数量来判断Job是否完成。详细使用方式请参考 Job的SuccessPolicy。
- MatchLabelKeys(GA)
在Kubernetes 1.33中,MatchLabelKeysInPodAffinity进阶至GA。在Pod亲和性规则中增加了matchLabelKeys和mismatchLabelKeys。
- Pod拓扑分布约束(GA)
在Kubernetes 1.33中,NodeInclusionPolicyInPodTopologySpread进阶至GA。允许在Pod拓扑分布约束使用nodeAffinityPolicy和nodeTaintsPolicy动态筛选可调度节点。
- nodeAffinityPolicy:默认为Honor,仅将匹配Pod的nodeSelector或nodeAffinity的节点纳入拓扑分布计算。
- nodeTaintsPolicy:默认为Ignore,忽略nodeAffinity和nodeSelector规则,将所有节点纳入拓扑分布计算。
详细使用方式请参考Pod拓扑分布约束。
- HonorPVReclaimPolicy(GA)
在Kubernetes 1.33中,HonorPVReclaimPolicy进阶至GA。用于确保当PV的reclaimPolicy设置为Delete时,无论PV或PVC的删除顺序如何,都会严格按照策略删除底层存储资源,避免存储资源泄露。
- 镜像作为volume进行挂载(Beta)
在Kubernetes 1.33中,ImageVolume进阶至Beta。允许在Pod中使用image卷源,将容器镜像作为只读卷挂载到Pod中。详细使用方式请参考镜像卷。
- UserNamespacesSupport(Beta)
在Kubernetes 1.33中,UserNamespacesSupport进阶至Beta。允许Pod使用Linux用户命名空间。详细使用方式请参考Pod配置user命名空间。
- 通过流式处理大规模资源列表请求(Beta)
在Kubernetes 1.33中,StreamingCollectionEncodingToProtobuf进阶至Beta。kube-apiserver禁用WatchList机制,转而采用流式编码机制。对于大量资源的List请求场景,可有效降低内存占用并提升系统稳定性。详细使用方式请参考流式List响应。
- 调度器性能优化(Beta)
在Kubernetes 1.33中,SchedulerPopFromBackoffQ进阶至Beta。该特性优化调度队列的处理逻辑,允许activeQ为空时,直接从backoffQ中弹出Pod,显著减少Pod的调度延迟。详细使用方式请参考调度器性能优化。
- ProcMountType(Beta)
在Kubernetes 1.33中,ProcMountType进阶至Beta。允许通过Pod的securityContext.procMount字段自定义容器中/proc文件系统的挂载类型,以精细化控制/proc文件系统的访问,提升Pod安全性和隔离性。此功能适用于需要在用户命名空间中运行非特权容器的场景,通过放宽对/proc的限制,可增强兼容性与灵活性。
- PodLifecycleSleepAction(Beta)
在Kubernetes 1.33中,PodLifecycleSleepAction进阶至Beta。默认开启,允许用户创建持续时间为零秒的休眠生命周期作的容器 。详细使用方式请参考Introducing Sleep Action for PreStop Hook。
- 限制特定Volume Attributes Class关联的PVC数量。
在Kubernetes 1.33中,允许使用ResourceQuota限制特定Volume Attributes Class关联的PVC数量。
API变更与弃用
- 在Kubernetes 1.33中,EndpointSlice的annotation service.kubernetes.io/topology-mode废弃,保持向后兼容,由spec.trafficDistribution替换。
- 在Kubernetes 1.33中,apidiscovery.k8s.io/v2beta1 API组废弃。此API用于客户端查询集群中所有已注册的API资源信息。建议使用v2稳定版本。
- 在Kubernetes 1.33中,WatchFromStorageWithoutResourceVersion功能已弃用。该功能允许在没有resourceVersion的情况下基于etcd提供watch服务。
- 在Kubernetes 1.33中,v1版本的Endpoints API正式废弃,但仍然支持,推荐使用EndpointSlice API代替。EndpointSlice API自1.21起已进入稳定状态,并引入了双栈网络支持等特性。详细使用方式请参考Kubernetes v1.33: Continuing the transition from Endpoints to EndpointSlices。
- 在Kubernetes 1.33中,Pod的status.resize字段现已弃用,将不再设置,调整大小操作的状态现在通过两个Pod状况暴露:
- PodResizePending:表示 kubelet 无法立即批准调整大小 (例如,如果暂时不能,则 reason: Deferred;如果在节点上不可能,则 reason: Infeasible)。
- PodResizeInProgress:表示调整大小已被接受并正在应用。 在此阶段遇到的错误现在会在此状况的消息中报告为 reason: Error。
详细使用方式请参考原地调整Pod资源特性升级为Beta。
CCE对Kubernetes 1.33版本的增强
在版本维护周期中,CCE会对Kubernetes 1.33版本进行定期的更新,并提供功能增强。
关于CCE集群版本的更新说明,请参见补丁版本发布说明。