本頁說明如何準備叢集,以便升級至 GKE 1.32 版。您可以找出呼叫已淘汰 API (已在 1.32 版中移除) 的 API 用戶端,並更新這些用戶端,改用正式發布的 API。如需更多詳細資訊,請參閱 Kubernetes 淘汰 API 遷移指南。
1.32 版中移除的 API
Kubernetes 1.32 版中已淘汰的 API,不是已升級為正式版的 Beta 版 API (例如 v2
),就是從一個 Beta 版升級為另一個 Beta 版 (例如 v1beta1
升級為 v1beta2
)。正式版 API 提供長期相容性保證,應取代已淘汰的 Beta 版 API。
對於已升級至新版本的 API,您可以使用更新後的 API 與所有現有物件互動。
流量控制資源
自 1.32 版起,系統不再提供 FlowSchema 和 PriorityLevelConfiguration 的 flowcontrol.apiserver.k8s.io/v1beta3
API 版本。
請遷移資訊清單和 API 用戶端,改用 flowcontrol.apiserver.k8s.io/v1
API 版本 (自 v1.29 起提供)。
您可以使用新的 API 存取所有現有的持續性物件。
flowcontrol.apiserver.k8s.io/v1
API 版本有下列重大異動:
- PriorityLevelConfiguration
spec.limited.assuredConcurrencyShares
欄位已重新命名為spec.limited.nominalConcurrencyShares
,且僅在未指定時預設為 30,而明確值 0 不會變更為 30。
準備升級至 1.32 版
您不需要刪除及重新建立任何 API 物件。對於已升級為正式版的 API,您可以使用新版 API 讀取及更新所有現有的持續性 API 物件。
不過,建議您先遷移用戶端和資訊清單,再升級至 Kubernetes 1.32。詳情請參閱 Kubernetes 淘汰的 API 遷移指南。
您可以查看淘汰洞察和建議,判斷叢集是否使用 Kubernetes 1.32 淘汰的 API。當使用者代理程式呼叫已淘汰的 API 時,GKE 會產生淘汰洞察,而非根據 Kubernetes 物件的設定。1.32 版移除的 Beta 版 API 淘汰洞察和建議,不會顯示在 Google Cloud 控制台中。
找出使用已淘汰 API 的叢集
您可以透過淘汰項目洞察,找出使用已淘汰 API 的叢集。淘汰洞察資料也會提供資訊,例如叢集中有哪些 API 用戶端正在呼叫已淘汰的 API。
您也可以使用稽核記錄,找出呼叫已淘汰 API 的用戶端。
找出對已淘汰 API 進行寫入呼叫的 API 用戶端
如果叢集已啟用 Google Cloud Observability,您可以使用下列管理員活動稽核記錄查詢,顯示非 Google 管理的使用者代理程式使用已淘汰的 API:
resource.type="k8s_cluster"
labels."k8s.io/removed-release"="DEPRECATED_API_MINOR_VERSION"
protoPayload.authenticationInfo.principalEmail:("system:serviceaccount" OR "@")
protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:kube-system:")
將 DEPRECATED_API_MINOR_VERSION
替換為已移除已淘汰 API 的次要版本,例如 1.22
。
系統會自動為 GKE 叢集啟用管理員活動稽核記錄。透過這項查詢,記錄會顯示對已淘汰 API 進行寫入呼叫的使用者代理程式。
找出對已淘汰 API 進行讀取呼叫的 API 用戶端
根據預設,稽核記錄只會顯示對已淘汰 API 的寫入呼叫。如要一併顯示對已淘汰 API 的讀取呼叫,請設定資料存取稽核記錄。
按照操作說明透過 Google Cloud 控制台設定資料存取稽核記錄。在 Google Cloud 控制台中,選取 Kubernetes Engine API。在資訊面板的「記錄類型」分頁中,選取 Admin Read
和 Data Read
。
啟用這些記錄後,您現在可以使用原始查詢,查看對已淘汰 API 的讀取和寫入呼叫。
升級第三方元件
淘汰洞察 可能會顯示叢集中呼叫已淘汰 API 的第三方代理程式結果。
如要解決第三方代理程式呼叫已淘汰 API 的問題,建議您採取下列最佳做法:
- 請洽詢第三方軟體供應商,取得更新版本。
- 將第三方軟體升級至最新版本。如果無法升級軟體,請測試將 GKE 升級至已移除已淘汰 API 的版本,是否會導致服務中斷。
建議您在正式版叢集升級前,先在測試叢集執行這項升級和 GKE 版本升級,監控是否有中斷情況。
更新受淘汰功能影響的叢集
如果叢集受到淘汰項目影響,GKE 會暫停自動升級作業。詳情請參閱「Kubernetes 淘汰項目在 GKE 中的運作方式」。
如要升級受淘汰項目影響的叢集,請執行下列步驟:
- 在記錄中,查看哪些使用者代理程式使用已淘汰的 API。
- 請更新使用已淘汰 API 的使用者代理程式,改用支援的 API 版本。
- 將呼叫已淘汰 API 的第三方軟體更新至最新版本。
- 升級正式版叢集前,請先升級測試叢集,並在測試環境中測試應用程式,以免過時的 API 無法使用時,導致服務中斷。
如果無法更新受影響的使用者代理程式,請升級個別測試叢集,確認升級是否會導致中斷。如果升級不會造成中斷,您可以手動升級叢集。
更新所有使用者代理程式後,GKE 會等待 30 天,確認已不再使用已淘汰的 API,然後解除自動升級的封鎖。系統會根據發布時間表自動升級。
資源
詳情請參閱 OSS Kubernetes 說明文件: