Kubernetes 升級(jí)集群

2022-06-07 11:20 更新

升級(jí)集群

本頁(yè)概述升級(jí) Kubernetes 集群的步驟。

升級(jí)集群的方式取決于你最初部署它的方式、以及后續(xù)更改它的方式。

從高層規(guī)劃的角度看,要執(zhí)行的步驟是:

  • 升級(jí)控制平面
  • 升級(jí)集群中的節(jié)點(diǎn)
  • 升級(jí) kubectl 之類(lèi)的客戶(hù)端
  • 根據(jù)新 Kubernetes 版本帶來(lái)的 API 變化,調(diào)整清單文件和其他資源

在開(kāi)始之前

你必須有一個(gè)集群。 本頁(yè)內(nèi)容涉及從 Kubernetes 1.23 升級(jí)到 Kubernetes 1.24。 如果你的集群未運(yùn)行 Kubernetes 1.23, 那請(qǐng)參考目標(biāo) Kubernetes 版本的文檔。

升級(jí)方法

kubeadm

如果你的集群是使用 ?kubeadm ?安裝工具部署而來(lái), 那么升級(jí)集群的詳細(xì)信息,請(qǐng)參閱 升級(jí) kubeadm 集群。

升級(jí)集群之后,要記得 安裝最新版本的 ?kubectl?

手動(dòng)部署

Caution: 這些步驟不考慮第三方擴(kuò)展,例如網(wǎng)絡(luò)和存儲(chǔ)插件。

你應(yīng)該跟隨下面操作順序,手動(dòng)更新控制平面:

  • etcd (所有實(shí)例)
  • kube-apiserver (所有控制平面的宿主機(jī))
  • kube-controller-manager
  • kube-scheduler
  • cloud controller manager, 在你用到時(shí)

現(xiàn)在,你應(yīng)該 安裝最新版本的 ?kubectl?.

對(duì)于集群中的每個(gè)節(jié)點(diǎn), 排空 節(jié)點(diǎn),然后,或者用一個(gè)運(yùn)行了 1.24 kubelet 的新節(jié)點(diǎn)替換它; 或者升級(jí)此節(jié)點(diǎn)的 kubelet,并使節(jié)點(diǎn)恢復(fù)服務(wù)。

其他部署方式

參閱你的集群部署工具對(duì)應(yīng)的文檔,了解用于維護(hù)的推薦設(shè)置步驟。

升級(jí)后的任務(wù)

切換集群的存儲(chǔ) API 版本

對(duì)象序列化到 etcd,是為了提供集群中活動(dòng) Kubernetes 資源的內(nèi)部表示法, 這些對(duì)象都使用特定版本的 API 編寫(xiě)。

當(dāng)?shù)讓拥?nbsp;API 更改時(shí),這些對(duì)象可能需要用新 API 重寫(xiě)。 如果不能做到這一點(diǎn),會(huì)導(dǎo)致再也不能用 Kubernetes API 服務(wù)器解碼、使用該對(duì)象。

對(duì)于每個(gè)受影響的對(duì)象,用最新支持的 API 獲取它,然后再用最新支持的 API 寫(xiě)回來(lái)。

更新清單 

升級(jí)到新版本 Kubernetes 就可以提供新的 API。

你可以使用 ?kubectl convert? 命令在不同 API 版本之間轉(zhuǎn)換清單。 例如:

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

?kubectl ?替換了 ?pod.yaml? 的內(nèi)容, 在新的清單文件中,?kind ?被設(shè)置為 Pod(未變), 但 ?apiVersion ?則被修訂了。


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)