升級叢集
本頁面概述您應遵循以升級 Kubernetes 叢集的步驟。
Kubernetes 專案建議及時升級至最新的修補程式版本,並確保您正在執行 Kubernetes 的受支援次要版本。遵循此建議有助於您保持安全。
升級叢集的方式取決於您最初部署它的方式以及任何後續變更。
在高階層次,您執行的步驟如下
開始之前
您必須擁有現有的叢集。本頁面是有關從 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 並將節點重新投入服務。
注意
在升級 kubelet 之前排空節點可確保重新接納 Pod 並重新建立容器,這對於解決某些安全問題或其他重要錯誤可能是必要的。其他部署
請參閱叢集部署工具的文件,以了解建議的維護設定步驟。
升級後任務
切換叢集的儲存 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 版本。