Kubernetes 1.26 已淘汰的 API


本頁說明如何準備叢集,以便升級至 GKE 1.26 版。您可以找出呼叫已淘汰 API (已在 1.26 版中移除) 的 API 用戶端,並更新這些用戶端以使用正式發布的 API。如需更多詳細資訊,請參閱 Kubernetes 淘汰 API 遷移指南

1.26 版中移除的 API

Kubernetes 1.26 版中淘汰的 API 要不是已升級為正式版的 Beta 版 API (例如 v2),就是從一個 Beta 版升級為另一個 Beta 版 (例如 v1beta1 升級為 v1beta2)。正式版 API 提供長期相容性保證,應取代已淘汰的 Beta 版 API。

對於已升級至新版本的 API,您可以使用更新後的 API 與所有現有物件互動。

流量控制資源

自 1.26 版起,系統不再提供 FlowSchema 和 PriorityLevelConfiguration 的 flowcontrol.apiserver.k8s.io/v1beta1 API 版本。

請遷移資訊清單和 API 用戶端,改用 flowcontrol.apiserver.k8s.io/v1beta3 API 版本 (自 v1.26 起提供)。您可以使用新的 API 存取所有現有的持續性物件。

HorizontalPodAutoscaler

自 v1.26 起,系統不再提供 HorizontalPodAutoscaler 的 autoscaling.apiserver.k8s.io/v2beta2 API 版本。

請遷移資訊清單和 API 用戶端,改用 autoscaling.apiserver.k8s.io/v2 API 版本 (自 1.23 版起提供)。您可以使用新的 API 存取所有現有的持續性物件。

準備升級至 1.26 版

您不需要刪除及重新建立任何 API 物件。對於已升級為正式版的 API,您可以使用新版 API 讀取及更新所有現有的持續性 API 物件。

不過,建議您先遷移用戶端和資訊清單,再升級至 Kubernetes 1.26。詳情請參閱 Kubernetes 淘汰 API 遷移指南

您可以查看淘汰項目洞察資料和建議,判斷叢集是否使用 Kubernetes 1.26 淘汰的 API。當使用者代理程式呼叫已淘汰的 API 時,GKE 會產生淘汰洞察,而非從 Kubernetes 物件的設定產生。

找出使用已淘汰 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 ReadData Read

啟用這些記錄後,您現在可以使用原始查詢,查看對已淘汰 API 的讀取和寫入呼叫。

升級第三方元件

淘汰洞察 可能會顯示叢集中呼叫已淘汰 API 的第三方代理程式結果。

如要解決第三方代理程式呼叫已淘汰 API 的問題,建議您採取下列最佳做法:

  1. 請洽詢第三方軟體供應商,取得更新版本。
  2. 將第三方軟體升級至最新版本。如果無法升級軟體,請測試將 GKE 升級至已移除已淘汰 API 的版本,是否會導致服務中斷。

建議您在正式版叢集升級前,先在測試叢集執行這項升級和 GKE 版本升級,監控是否有中斷情況。

更新受淘汰功能影響的叢集

如要升級受淘汰項目影響的叢集,請執行下列步驟:

  1. 記錄中,查看哪些使用者代理程式使用已淘汰的 API。
  2. 請更新使用已淘汰 API 的使用者代理程式,改用支援的 API 版本。
  3. 將呼叫已淘汰 API 的第三方軟體更新至最新版本。
  4. 升級正式版叢集前,請先升級測試叢集,並在測試環境中測試應用程式,以免過時的 API 無法使用時,導致服務中斷。
  5. 如果無法更新受影響的使用者代理程式,請升級個別測試叢集,確認升級是否會導致中斷。如果升級不會造成中斷,您可以手動升級叢集

  6. 更新所有使用者代理程式後,GKE 會等待 30 天,確認已不再使用已淘汰的 API,然後解除自動升級的封鎖。自動升級作業會按照發布時間表進行。

資源

詳情請參閱 OSS Kubernetes 說明文件: