阿里雲Container Service for Kubernetes嚴格遵循社區一致性認證。本文介紹ACK發布Kubernetes 1.32版本的主要變更說明,包括升級注意事項、重大變更、功能特性、棄用功能和API、特性門控等。
組件版本說明
下表為ACS叢集核心組件版本的支援情況。
核心組件 | 版本號碼 |
Kubernetes | 1.32.7-aliyun.1 |
etcd | v3.5.15 |
containerd | 1.6.36 |
CoreDNS | v1.11.3.2-f57ea7ed6-aliyun |
CSI | 升級至組件當前支援的最新版本。詳細資料,請參見組件變更記錄csi-provisioner。 |
功能變更
自1.32版本起,kube-apiserver將不再支援
TLS_RSA_WITH_AES_256_GCM_SHA384和TLS_RSA_WITH_AES_128_GCM_SHA256TLS加密套件。存量叢集升級至1.32後將自動應用此變更。自1.32版本起,啟用RRSA特性時,將不再修改 kube-apiserver的
--api-audiences參數配置,繼續沿用啟用前的配置值。該變更隻影響未啟用RRSA特性的叢集,已啟用RRSA特性的存量叢集升級至1.32後不會應用此變更。ServiceAccount的Annotation
kubernetes.io/enforce-mountable-secrets在1.32移除。建議使用獨立的命名空間來隔離對Secret的訪問。DRAControlPlaneController特性門控自1.26進階至Alpha,預設關閉,在1.32移除。如果開啟了此特性並使用了該功能,請在叢集升級前刪除相關資源,避免升級後工作負載出現異常。詳細資料,請參見#128003。
在1.32.7-aliyun.1中修複了漏洞CVE-2025-4563。
功能特性
WatchList特性門控進階至Beta,預設啟用。通常大量List操作會導致控制面資源消耗顯著增加,啟用WatchListClient特性後,client-go用戶端可以使用流式請求代替全量List,降低控制面資源消耗。kube-controller-manager組件預設啟用該功能。更多資訊,請參見Enhancing Kubernetes API Server Efficiency with API Streaming。
RelaxedEnvironmentVariableValidation特性門控進階至Beta,預設開啟。該特性放寬了對環境變數名稱的驗證規則,支援幾乎所有的可列印ASCII字元(不包括=)作為環境變數名稱。
最佳化Pod狀態顯示資訊。當鏡像拉取失敗後,Pod的
status.containerStatuses[*].state.waiting欄位會記錄鏡像拉取失敗的原因(ImagePullBackOff)和具體失敗資訊。CustomResourceFieldSelectors特性門控在1.32進入GA,預設啟用。該特性支援在CustomResourceDefinition(CRD)中啟用
selectableFields,包括list、watch和deletecollection,以更加高效、更精確地過濾CRD資源。StatefulSetAutoDeletePVC特性門控在1.32進入GA,預設啟用。該特性提供對StatefulSet中PVC刪除的精細控制,允許在StatefulSet明確不需要PVC時自動清理PVC,降低孤立PVC對StatefulSet的影響。更新StatefulSet和節點維護過程中不對PVC產生影響,不觸發自動清理。
JobManagedBy特性門控進階至Beta,預設啟用。該特性允許通過配置
spec.managedBy欄位將Job交由外部控制器來接管Job的調諧(Reconciliation)工作,使得Job調度和管理更加靈活。managedBy欄位不可配置為kubernetes.io/job-controller,即Kubernetes內建的控制器保留值。調度器的每個外掛程式都整合QueueingHint回呼函數,方便調度器擷取Pod重新入隊的建議,快速判斷Pod是否需要重新入隊,以減少不必要的調度重試,從而提升調度輸送量。更多資訊,請參見QueueingHint Brings a New Possibility to Optimize Pod Scheduling。
RecoverVolumeExpansionFailure特性門控進階至Beta,預設啟用。PVC擴容失敗時通常需要管理員介入手動恢複,恢複操作繁瑣。該特性允許使用者直接手動調小PVC的
.spec.resources,有助於PVC快速恢複且資料不丟失。具體方式,請參見Recovering from Failure when Expanding Volumes。AuthorizeWithSelectors和AuthorizeNodeWithSelectors特性門控進階至Beta,後者需要搭配前者使用。啟用後,AuthorizeNodeWithSelectors允許節點鑒權器使用更細粒度的選擇算符(例如
fieldSelector和labelSelector)進行鑒權,提高了Kubernetes授權系統的靈活性。kubelet僅有最小許可權,只能讀取自己的節點對象和綁定到自己節點的Pod。更多資訊,請參見Using Node Authorization。用戶端請求Pod日誌的參數PodLogOptions添加
Stream欄位,允許流式請求容器日誌。這意味著日誌可以即時傳輸給用戶端,無需等待整個記錄檔下載完成。但需注意,Stream和TailLines不可共用。最佳化JobController,極大提升Job的更新和刪除效率,尤其是在大量使用Job的情境下。更多資訊,請參見#126567、#127228和#127378。
最佳化kube-proxy,Service更新時使用
fieldSelector: clusterIP!=None,以避免監聽Headless Service,減少不必要的頻寬佔用。更多資訊,請參見#126769。
棄用API
flowcontrol.apiserver.k8s.io/v1beta3版本的FlowSchema和PriorityLevelConfiguration在1.32版本中廢棄。推薦遷移至flowcontrol.apiserver.k8s.io/v1API版本(自1.29起可用)。flowcontrol.apiserver.k8s.io/v1版本中PriorityLevelConfiguration的spec.limited.nominalConcurrencyShares欄位在未指定時預設為30(如顯式配置為0,則不會被更改為30)。
參考連結
關於Kubernetes 1.32完整的變更記錄,請參見CHANGELOG-1.32、Kubernetes v1.32: Penelope。