全部產品
Search
文件中心

Container Service for Kubernetes:ACK發布Kubernetes 1.33版本說明

更新時間:Dec 09, 2025

阿里雲Container Service for Kubernetes嚴格遵循社區一致性認證。本文介紹ACK發布Kubernetes 1.33版本的主要變更說明,包括升級注意事項、重大變更、功能特性、棄用功能和API、特性門控等。

組件版本說明

下表為ACK叢集核心組件版本的支援情況。

核心組件

版本號碼

Kubernetes

1.33.1-aliyun.1、1.33.3-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特性門控。

  • 在1.33.3-aliyun.1中修複了漏洞CVE-2025-4563

功能特性

  • 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,預設禁用,需要手動開啟apiserver和kubelet的featureGates以支援允許在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