跳至主要内容

升級和復原 Kubernetes

在升級到最新版本的 Rancher 之後,下游 Kubernetes 叢集可以升級為使用最新支援的 Kubernetes 版本。

Rancher 在佈建和編輯 RKE 叢集時,會將 RKE (Rancher Kubernetes Engine) 作為函式庫呼叫。有關為 RKE 叢集設定升級策略的更多資訊,請參閱 RKE 文件。

已測試的 Kubernetes 版本​

在發布新版本的 Rancher 之前,它會與最新的 Kubernetes 次要版本進行測試以確保相容性。有關每個 Rancher 版本測試了哪些 Kubernetes 版本的詳細資訊,請參閱支援維護條款。

升級的運作方式​

RKE v1.1.0 改變了叢集的升級方式。

在 RKE 文件的這一節中,您將了解當您編輯或升級 RKE Kubernetes 叢集時會發生什麼。

升級的建議最佳實務​

在升級叢集的 Kubernetes 版本時,我們建議您:

  1. 取得快照。
  2. 啟動 Kubernetes 升級。
  3. 如果升級失敗,請將叢集還原到升級前的 Kubernetes 版本。這可以透過選擇 還原 etcd 和 Kubernetes 版本選項來實現。這將在還原 etcd 快照之前將您的叢集回復到升級前的 Kubernetes 版本。

還原操作將在不處於健康或活躍狀態的叢集上運作。

升級 Kubernetes 版本​

先決條件:
  1. 在左上角,點擊 ☰ > Cluster Management。
  2. 在 Clusters 頁面上,前往您要升級的叢集並點擊 ⋮ > Edit Config。
  3. 從 Kubernetes Version 下拉選單中,選擇您要用於叢集的 Kubernetes 版本。
  4. 點擊 Save。

**結果:**Kubernetes 開始為叢集進行升級。

復原​

叢集可以還原到使用先前 Kubernetes 版本的備份。有關更多資訊,請參閱以下章節:

設定升級策略​

從 RKE v1.1.0 開始,提供了額外的升級選項,讓您更細緻地控制升級過程。如果滿足某些條件和需求,這些選項可用於在叢集升級期間維持應用程式的可用性。

升級策略可以在 Rancher UI 中設定,或透過編輯 cluster.yml 來設定。透過編輯 cluster.yml 可以使用更進階的選項。

在 Rancher UI 中設定不可用工作節點的最大數量​

從 Rancher UI 可以設定不可用工作節點的最大數量。在叢集升級期間,工作節點將以此大小的批次進行升級。

預設情況下,不可用工作節點的最大數量定義為所有工作節點的 10%。此數字可以設定為百分比或整數。當定義為百分比時,批次大小會向下捨入到最接近的節點,最少為一個節點。

若要變更工作節點的預設數量或百分比:

  1. 在左上角,點擊 ☰ > Cluster Management。
  2. 在 Clusters 頁面上,前往您要升級的叢集並點擊 ⋮ > Edit Config。
  3. 在 Upgrade Strategy 標籤中,輸入 Worker Concurrency 作為固定數字或百分比。若要取得此數字,您可以取得叢集中的節點數量並減去最大不可用節點數。
  4. 點擊 Save。

**結果:**叢集已更新為使用新的升級策略。

從 Rancher UI 在升級期間啟用排空節點​

預設情況下,RKE 會在升級每個節點之前隔離它。在升級期間預設會停用排空。如果在叢集設定中啟用了排空,RKE 將在升級節點之前同時隔離和排空節點。

若要在叢集升級期間啟用排空每個節點:

  1. 在左上角,點擊 ☰ > Cluster Management。
  2. 在 Clusters 頁面上,前往您要啟用節點排空的叢集並點擊 ⋮ > Edit Config。
  3. 點擊 ⋮ > Edit。
  4. 在 Upgrade Strategy 標籤中,前往 Drain nodes 欄位並點擊 Yes。節點排空會分別為控制平面和工作節點設定。
  5. 設定 Pod 刪除方式的選項。有關每個選項的更多資訊,請參閱此章節。
  6. 選擇性地設定寬限期。寬限期是給予每個 Pod 清理的逾時時間,以便它們有機會優雅地退出。Pod 可能需要完成任何未完成的請求、回復交易或將狀態儲存到某些外部儲存。如果此值為負數,將使用 Pod 中指定的預設值。
  7. 選擇性地設定逾時,這是排空應該在放棄之前繼續等待的時間量。
  8. 點擊 Save。

**結果:**叢集已更新為使用新的升級策略。

備註

有一個已知問題,即使 etcd 和 controlplane 正在被排空,Rancher UI 也不會顯示它們已被排空的狀態。

在升級期間維持應用程式的可用性​

在 RKE 文件的這一節中,您將了解在升級叢集時防止應用程式停機的需求。

在 cluster.yml 中設定升級策略​

透過編輯 cluster.yml 可以使用更進階的升級策略設定選項。

有關詳細資訊,請參閱 RKE 文件中的設定升級策略。該章節還包含設定升級策略的範例 cluster.yml。

疑難排解​

如果節點在升級後無法啟動,rke up 命令會出錯。

如果不可用節點的數量超過設定的最大值,則不會繼續任何升級。

如果升級停止,您可能需要修復不可用的節點或從叢集中移除它,然後才能繼續升級。

失敗的節點可能處於許多不同的狀態:

  • 已關機
  • 不可用
  • 使用者在升級過程中排空節點,因此節點上沒有 kubelet
  • 升級本身失敗

如果在升級期間達到節點的最大不可用數量,Rancher 使用者叢集將停留在更新狀態,不會繼續升級任何其他控制平面節點。它將繼續評估不可用節點的集合,以防其中一個節點變為可用。如果節點無法修復,您必須移除該節點才能繼續升級。