本文已超過一年。較舊的文章可能包含過時的內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
Kubernetes 移除、棄用和 Kubernetes 1.29 中的重大變更
如同每個版本,Kubernetes v1.29 將引入功能棄用和移除。我們持續產出高品質版本的能耐,證明了我們健全的開發週期和健康的社群。以下是 Kubernetes 1.29 版本中即將到來的一些棄用和移除。
Kubernetes API 移除與棄用流程
Kubernetes 專案針對功能有一套完善的文件化棄用政策。此政策聲明,只有在有更新、穩定的相同 API 版本可用時,才能棄用穩定的 API,並且 API 對於每個穩定性級別都有最短的生命週期。已棄用的 API 是指已標記為在未來 Kubernetes 版本中移除的 API;它將繼續運作直到移除(自棄用起至少一年),但使用將導致顯示警告。已移除的 API 在目前版本中不再可用,此時您必須遷移到使用替代方案。
- 一般可用性 (GA) 或穩定的 API 版本可能會被標記為已棄用,但不得在 Kubernetes 的主要版本中移除。
- Beta 或預發布 API 版本在棄用後必須支援 3 個版本。
- Alpha 或實驗性 API 版本可能會在任何版本中移除,恕不另行發出棄用通知。
無論 API 是因為功能從 beta 升級到穩定版而移除,還是因為該 API 根本沒有成功,所有移除都符合此棄用政策。每當 API 被移除時,遷移選項都會在文件中溝通說明。
關於 k8s.gcr.io 重定向到 registry.k8s.io 的注意事項
為了託管其容器映像檔,Kubernetes 專案使用一個社群擁有的映像檔登錄檔,稱為 registry.k8s.io。從去年三月開始,到舊 k8s.gcr.io 登錄檔的流量開始被重定向到 registry.k8s.io。已棄用的 k8s.gcr.io 登錄檔最終將被逐步淘汰。有關此變更的更多詳細資訊,或查看您是否受到影響,請閱讀 k8s.gcr.io 重定向到 registry.k8s.io - 您需要知道的事。
關於 Kubernetes 社群擁有的套件儲存庫的注意事項
在 2023 年初,Kubernetes 專案介紹了 pkgs.k8s.io
,這是社群擁有的 Debian 和 RPM 套件軟體儲存庫。社群擁有的儲存庫取代了舊有的 Google 擁有的儲存庫(apt.kubernetes.io
和 yum.kubernetes.io
)。在 2023 年 9 月 13 日,這些舊有的儲存庫被正式棄用,並且其內容被凍結。
有關此變更的更多資訊,或查看您是否受到影響,請閱讀棄用公告。
Kubernetes v1.29 的棄用和移除
請參閱 API 移除的官方列表,以取得 Kubernetes v1.29 的完整計劃棄用列表。
移除與雲端供應商的樹狀結構內整合 (KEP-2395)
功能閘道 DisableCloudProviders
和 DisableKubeletCloudCredentialProviders
在 Kubernetes v1.29 中預設都將設定為 true
。此變更將要求目前使用樹狀結構內雲端供應商整合(Azure、GCE 或 vSphere)的使用者啟用外部雲端控制器管理器,或透過將相關的功能閘道設定為 false
來選擇加入舊有的整合。
啟用外部雲端控制器管理器意味著您必須在叢集控制平面中執行合適的雲端控制器管理器;它還需要為 kubelet(在每個相關節點上)以及跨控制平面(kube-apiserver 和 kube-controller-manager)設定命令列引數 --cloud-provider=external
。
有關如何啟用和執行外部雲端控制器管理器的更多資訊,請閱讀 雲端控制器管理器管理 和 遷移複寫的控制平面以使用雲端控制器管理器。
有關雲端控制器管理器的通用資訊,請參閱 Kubernetes 文件中的 雲端控制器管理器。
移除 v1beta2
流程控制 API 群組
FlowSchema 和 PriorityLevelConfiguration 的 flowcontrol.apiserver.k8s.io/v1beta2 API 版本將在 Kubernetes v1.29 中不再提供服務。
為了準備這一點,您可以編輯現有的 Manifest 並重寫用戶端軟體,以使用自 v1.26 以來可用的 flowcontrol.apiserver.k8s.io/v1beta3
API 版本。所有現有的持久化物件都可以透過新的 API 存取。flowcontrol.apiserver.k8s.io/v1beta3
中的顯著變更包括 PriorityLevelConfiguration spec.limited.assuredConcurrencyShares
欄位已重新命名為 spec.limited.nominalConcurrencyShares
。
棄用 Node 的 status.nodeInfo.kubeProxyVersion
欄位
Node 物件的 .status.kubeProxyVersion
欄位將在 v1.29 中標記為已棄用,以為在未來版本中移除做準備。此欄位不準確,且由 kubelet 設定,但 kubelet 實際上並不知道 kube-proxy 版本,甚至不知道 kube-proxy 是否正在執行。
想要了解更多資訊嗎?
棄用會在 Kubernetes 版本說明中宣布。您可以在以下版本的版本說明中查看待處理棄用的公告
我們將正式宣布 Kubernetes v1.29 隨附的棄用,作為該版本的 CHANGELOG 的一部分。
有關棄用和移除流程的資訊,請參閱官方 Kubernetes 棄用政策文件。