1. 程式人生 > 其它 >RKE 叢集升級指南

RKE 叢集升級指南

使用 RKE 部署 Kubernetes 後,您可以升級 Kubernetes 叢集中元件的版本、編輯Kubernetes services 列表或編輯外掛。

先決條件

  • 保證cluster.yml缺少system_images的說明和配置。

  • 保證工作目錄中有管理Kubernetes 叢集狀態所需的檔案,不同版本的 RKE 使用不同的檔案管理 Kubernetes 叢集狀態。

RKE v0.2.0 及以上的版本使用cluster.rkestate檔案管理叢集狀態。cluster.rkestate檔案中含有叢集的當前狀態,包括 RKE 配置和證書等資訊。

這個檔案和cluster.yml位於同一目錄下。

cluster.rkestate檔案非常重要,控制叢集和升級叢集的時候都需要用到這個檔案,請妥善保管該檔案。

列舉支援的 Kubernetes 版本

例如:

rke config --list-version --all
v1.15.3-rancher2-1
v1.13.10-rancher1-2
v1.14.6-rancher2-1
v1.16.0-beta.1-rancher1-1

升級 Kubernetes 版本

開啟cluster.yml檔案,找到 kubernetes_version字串,將原有的版本號修改為新的版本號即可。

kubernetes_version: "v1.15.5-rancher1-1"

然後在命令列工具中輸入 rke up,使用cluster.yml檔案指定的新版本器啟動 RKE。

rke up --config cluster.yml

Kubernetes 版本優先順序

如果在kubernetes_version和system_images中都定義了 Kubernetes 版本,system_images中定義的版本會生效,而kubernetes_version中定義的版本不會生效。如果兩者都沒有定義 Kubernetes 版本,RKE 會使用預設的 Kubernetes 版本。

升級服務

您可以修改服務的物件,或新增extra_args,然後執行rke up命令,升級服務。

說明: service_cluster_ip_range 和 cluster_cidr不可修改。

手動升級節點

v1.1.0 開始可用

您可以手動升級每種型別的節點。建議您先升級 etcd 節點,然後升級 controlplane 節點,最後再升級 worker 節點。

回滾 Kubernetes 版本

v1.1.0 開始可用

您可以使用快照,將叢集恢復到使用上一個 Kubernetes 版本的時候。

問題排查

v1.1.0 開始可用

如果一個節點在升級之後不出現,rke up指令會報錯。

如果實際不可用的節點超出了配置檔案中限定不可用節點數量的最大值,則不會升級。

如果升級停止了,您可能需要修改一些不可用的節點,或者將它從叢集中移除,然後繼續升級。

一個不可用的節點可能處於以下幾種狀態:

  • 關機
  • 不可用
  • 使用者執行了 drain 命令,將該節點上執行的 pod 驅逐到了其他節點上,導致該節點上沒有 kubelets
  • 升級失敗

以下是升級失敗的常見場景:

  • 升級過程中,不可用的節點數量達到預設的最大值,RKE CLI 會報錯,停止工作。
  • 如果一些節點升級失敗,但是不可用的節點數量小於預設的最大值,RKE CLI 會將這些節點升級失敗的事項記錄在日誌裡,然後跳過這些節點,升級其他節點和外掛。完成外掛升級或,RKE 會報錯,然後退出。