升級叢集

本頁面概述您應遵循以升級 Kubernetes 叢集的步驟。

Kubernetes 專案建議及時升級至最新的修補程式版本,並確保您正在執行 Kubernetes 的受支援次要版本。遵循此建議有助於您保持安全。

升級叢集的方式取決於您最初部署它的方式以及任何後續變更。

在高階層次,您執行的步驟如下

  • 升級控制平面
  • 升級叢集中的節點
  • 升級用戶端,例如 kubectl
  • 根據伴隨新 Kubernetes 版本的 API 變更調整資訊清單和其他資源

開始之前

您必須擁有現有的叢集。本頁面是有關從 Kubernetes 1.31 升級到 Kubernetes 1.32。如果您的叢集目前未執行 Kubernetes 1.31,請查看您計劃升級到的 Kubernetes 版本的文件。

升級方法

kubeadm

如果您的叢集是使用 kubeadm 工具部署的,請參閱升級 kubeadm 叢集,以取得有關如何升級叢集的詳細資訊。

升級叢集後,請記得安裝最新版本的 kubectl

手動部署

您應按照以下順序手動更新控制平面

  • etcd (所有執行個體)
  • kube-apiserver (所有控制平面主機)
  • kube-controller-manager
  • kube-scheduler
  • 雲端控制器管理員 (如果您使用)

此時,您應安裝最新版本的 kubectl

對於叢集中的每個節點,排空該節點,然後將其替換為使用 1.32 kubelet 的新節點,或升級該節點上的 kubelet 並將節點重新投入服務。

其他部署

請參閱叢集部署工具的文件,以了解建議的維護設定步驟。

升級後任務

切換叢集的儲存 API 版本

序列化到 etcd 中的物件,用於叢集的內部表示 Kubernetes 資源在叢集中處於活動狀態,是使用特定版本的 API 寫入的。

當支援的 API 變更時,可能需要以較新的 API 重寫這些物件。若未執行此操作,最終將導致資源不再可解碼或 Kubernetes API 伺服器無法使用。

對於每個受影響的物件,使用最新的支援 API 擷取它,然後也使用最新的支援 API 將其寫回。

更新資訊清單

升級到新的 Kubernetes 版本可以提供新的 API。

您可以使用 kubectl convert 命令在不同 API 版本之間轉換資訊清單。例如

kubectl convert -f pod.yaml --output-version v1

kubectl 工具會將 pod.yaml 的內容替換為將 kind 設定為 Pod (未變更) 的資訊清單,但使用修訂後的 apiVersion

裝置外掛程式

如果您的叢集正在執行裝置外掛程式,且節點需要升級到具有較新裝置外掛程式 API 版本的 Kubernetes 版本,則必須先升級裝置外掛程式以支援這兩個版本,然後才能升級節點,以保證裝置分配在升級期間繼續成功完成。

如需更多詳細資訊,請參閱API 相容性Kubelet 裝置管理員 API 版本

最後修改時間為 2024 年 9 月 27 日太平洋標準時間上午 10:28: 重新修訂關於叢集升級的建議 (e3c1c5b8b8)