全部产品
Search
文档中心

容器服务 Kubernetes 版 ACK:ACK发布Kubernetes 1.33版本说明

更新时间:Jun 23, 2025

阿里云容器服务 Kubernetes 版严格遵循社区一致性认证。本文介绍ACK发布Kubernetes 1.33版本的主要变更说明,包括升级注意事项、重大变更、功能特性、弃用功能和API、特性门控等。

组件版本说明

下表为ACK集群核心组件版本的支持情况。

核心组件

版本号

Kubernetes

1.33.1-aliyun.1

etcd

v3.5.21

containerd

2.1.1

CoreDNS

v1.11.3.5-5321daf49-aliyun

CSI

升级至组件当前支持的最新版本。详细信息,请参见组件变更记录csi-plugincsi-provisioner

CNI

Flannel v0.15.1.22-20a397e6-aliyun

Terway和TerwayControlplane为v1.14.0及以上

升级注意事项

如果集群中存在1.20及以下版本创建的Pod,且这些Pod从未发生过容器重启或更新,那么当集群升级至1.33版本时,这些Pod将进行一次容器重启。

重大变化

功能变更

  • 原地调整Pod资源进阶至Beta,默认启用。该功能允许在不重启Pod的前提下动态修改容器的 CPU和内存资源配置。

  • kubectl支持通过--subresources命令对资源的特定子资源进行调整,例如通过kubectl edit pod <pod-name> --subresource resize动态调整Pod资源大小。1.33版本支持的Subresource包括status、 scaleresize

  • EndpointSlice TopologyAwareHints进阶至GA。Beta版的Annotation service.kubernetes.io/topology-mode已弃用。建议使用spec.trafficDistribution字段定义拓扑策略。例如,通过配置trafficDistributionPreferClose,可将流量优先路由至与客户端位于同一Zone的端点。详情请参见Traffic distribution

  • Pod的.status.resize字段已废弃且不支持设置,新增两个Condition字段 PodResizeInProgress 和 PodResizePending

  • DisableNodeKubeProxyVersion默认启用,且不允许禁用。kubelet不会再设置节点的status.kubeProxyVersion字段。

  • StatefulSets的.spec.serviceName字段变为可选,强化了对其字段合法性的校验,必须符合DNS1123标准校验。如果存量StatefulSet的.spec.serviceName字段未通过校验,将无法创建新的Pod,需手动移除该字段。此更新将原本在Pod创建阶段进行的DNS校验前置到StatefulSet资源配置阶段,减少StatefulSet Controller的失败重试。

  • Git-Repo卷插件默认禁用。如需保留,可手动开启GitRepoVolumeDriver特性门控。

功能特性

  • Sidecar Containers进阶至GA,默认启用。Sidecar Container作为一种特殊的Init Container,可通过restartPolicy: Always确保其在Pod生命周期中始终运行,支持探针配置。

  • OrderedNamespaceDeletion进阶至 Beta。该特性优化了命名空间资源释放流程:删除命名空间时,将优先删除工作负载Pod,随后依次清理NetworkPolicy、存储资源等依赖项,避免关键安全资源移除后Pod仍旧残留的风险。

  • SupplementalGroupsPolicy进阶至Beta,默认启用,支持通过.spec.securityContext.supplementalGroupsPolicy字段为Pod配置细粒度的SupplementalGroups控制,以实现对存储卷访问权限更精细化的控制。详情请参见Configure fine-grained SupplementalGroups control for a Pod

  • MultiCIDRServiceAllocator进阶至GA,默认启用,引入ServiceCIDR和IPAddress资源来记录Service的ClusterIP分配情况,支持通过ServiceCIDR来动态增加ClusterIP的可分配范围。

  • JobBackoffLimitPerIndex进阶至GA,允许为索引作业中的每个索引指定Pod的最大重试次数。

  • JobSuccessPolicy进阶至GA,允许自定义Job的成功策略,例如通过指定某些索引是否成功和成功的索引数量来判断Job是否完成,请参见Job's SuccessPolicy Goes GA

  • ImageVolume进阶至Beta,默认启用,允许在Pod中使用image卷源,将容器镜像作为只读卷挂载到Pod中。

  • UserNamespacesSupport进阶至Beta,默认启用,允许Pod使用Linux用户命名空间(User Namespaces)以增强容器安全性。该能力不影响现有Pod。如需使用,可手动指定pod.spec.hostUsers。详情请参见User Namespaces enabled by default

  • RelaxedDNSSearchValidation进阶为Beta,默认启用,允许在 Pod 的 .spec.dnsConfig.searches 字段中使用特殊字符,例如._,提升DNS配置灵活性。

  • kube-apiserver默认禁用WatchList机制,转而采用流式编码机制(包括StreamingCollectionEncodingToJSON和StreamingCollectionEncodingToProtobuf)。该改进通过流式处理大规模资源列表请求,优化了List操作的性能表现。对于包含大量资源的List请求,可有效降低内存占用并提升系统稳定性,请参见Streaming List responses

    kube-controller-manager不再主动启用WatchListClient特性。

  • CPUManagerPolicyOptions进阶至GA,默认启用,允许微调CPU Manager的资源分配策略:

  • MatchLabelKeysInPodAffinity进阶至GA,默认启用,在Pod亲和性规则中增加了matchLabelKeysmismatchLabelKeys,更精准地控制Pod的共存范围。

  • NodeInclusionPolicyInPodTopologySpread进阶至于GA,默认启用,允许在Pod拓扑分布约束使用nodeAffinityPolicynodeTaintsPolicy动态筛选可调度节点。

    • nodeAffinityPolicy:默认为Honor,仅将匹配 Pod 的 nodeSelector 或 nodeAffinity的节点纳入拓扑分布计算。

    • nodeTaintsPolicy:默认为Ignore,忽略 nodeAffinity 和 nodeSelector 规则,将所有节点纳入拓扑分布计算。

  • HonorPVReclaimPolicy 进阶至GA,默认启用,用于确保当PV的reclaimPolicy设置为Delete时,无论 PV 或 PVC 的删除顺序如何,都会严格按照策略删除底层存储资源,避免存储资源泄露。

  • ProcMountType进阶至Beta,允许通过 Pod 的securityContext.procMount字段自定义容器中 /proc 文件系统的挂载类型,以精细化控制/proc文件系统的访问,提升Pod安全性和隔离性。此功能适用于需要在用户命名空间(User Namespaces)中运行非特权容器的场景,通过放宽对/proc 的限制,可增强兼容性与灵活性。

  • PodLifecycleSleepActionAllowZero进阶至Beta,允许在容器生命周期回调preStop中设置sleep操作的等待时间为0。

  • 允许使用ResourceQuota限制特定Volume Attributes Class关联的PVC数量。

  • 调度器性能优化:

    • 新增SchedulerPopFromBackoffQ特性,默认启用,通过优化调度队列的处理逻辑,允许activeQ为空时,直接从backoffQ中弹出Pod,显著减少Pod的调度延迟。

    • SchedulerAsyncPreemption进阶至Beta,默认启用,允许将抢占调度转换为异步执行。抢占行为开销较大,转为异步后可以有效降低调度延迟。

    • 优化使用拓扑分布约束的Pod的调度性能。

弃用API

  • 1.33默认使用containerd 2.1,containerd 2.1不再支持CRI v1alpha2 API。如依赖该版本API,需切换至CRI v1版本API以确保兼容性。

  • v1版本的Endpoints API正式废弃,推荐使用EndpointsSlice API代替。EndpointSlice API自1.21起已进入稳定状态,引入了双栈网络支持等特性。但v1版本的Endpoints API目前不会删除。详情请参见Continuing the transition from Endpoints to EndpointSlices

  • apidiscovery.k8s.io/v2beta1 API组禁用,该 API 用于客户端查询集群中所有已注册的 API 资源信息。建议迁移至v2稳定版本。旧版客户端可通过回退机制自动使用未聚合的 v1 版本 API 实现服务发现功能,客户端不会立即报错。但若客户端未适配 v2 版本,未聚合的数据需要多次调用 API 来获取完整信息,可能出现请求量增加和延迟上升。

参考链接

关于Kubernetes 1.33完整的变更记录,请参见CHANGELOG-1.33Kubernetes v1.33: Octarine