跳至主要内容

從 v1.6.x 升級到 v1.6.y

一般資訊​

每當有可供升級的新 Harvester 版本時,Dashboard 畫面上就會出現 Upgrade 按鈕。如需更多資訊,請參閱開始升級。

有關在離線環境中升級 Harvester 的資訊,請參閱準備離線升級。

在 Rancher v2.12 上更新 Harvester UI Extension​

您必須使用相容版本(v1.6.x)的 Harvester UI Extension 才能在 Rancher v2.12 上匯入 Harvester v1.6.x 叢集。

  1. 在 Rancher UI 上,前往 local > Apps > Repositories。

  2. 找到名為 harvester 的儲存庫,然後選擇 ⋮ > Refresh。

  3. 前往 Extensions 畫面。

  4. 找到名為 Harvester 的擴充功能,然後點擊 Update。

  5. 選擇相容版本,然後點擊 Update。

  6. 等待一段時間讓擴充功能更新,然後重新整理畫面。


已知問題​

1. 升級卡在「Pre-drained」狀態​

在某些情況下,即使引擎 CR 的狀態已變更為「Stopped」,Longhorn Instance Manager 仍可能無法清理引擎實例。升級過程會卡在「Pre-drained」狀態,因為在對應的 PodDisruptionBudget (PDB) 仍然存在時,instance-manager Pod 無法被刪除。

解決方法是在確保所有卷都健康後刪除 instance-manager PDB。

相關 issue:#8977 和 #11605

2. 訪客叢集卡在「Updating」狀態​

在 Harvester 升級後,RKE2 訪客叢集可能會卡在「Updating」狀態。Harvester UI 上會顯示以下錯誤訊息:

Configuring etcd node(s) rke2-pool1-xdvfc-qf4vb: Node condition MemoryPressure is Unknown. Node condition DiskPressure is Unknown. Node condition PIDPressure is Unknown. Node condition Ready is Unknown, waiting for probes: calico, etcd, kube-apiserver, kube-controller-manager

當訪客節點的 IP 位址在升級後發生變更時,就會發生此問題,導致 etcd 發生故障。這可能是因為底層虛擬機重新啟動了數次,並從 DHCP 伺服器接收到新的 IP 位址。

要解決此問題,請執行以下步驟:

  1. 在 Rancher UI 上,從訪客叢集中刪除導致錯誤的節點。
  2. 在 Harvester UI 上,檢查底層虛擬機的狀態。
  3. 如有必要,重新啟動虛擬機。

虛擬機被移除後,訪客叢集會嘗試建立新節點。一旦建立節點,訪客叢集的狀態就會變更為「Active」。

相關 issue:#8950

3. 已停止的虛擬機卡在「Starting」狀態​

即時遷移後,Longhorn 卷可能會在「Detaching」和「Detached」狀態之間來回切換。由於卷尚未就緒,相關的虛擬機無法完全啟動。

解決方法是使用以下命令清除 Longhorn 卷的 status.currentMigrationNodeID:

kubectl patch -n longhorn-system volume <volume> \
--type=merge \
--subresource status \
-p '{"status":{"currentMigrationNodeID":""}}'

相關 issue:#8949 和 #11479

4. 升級到 v1.6.1-rc2 卡在「Pre-drained」狀態​

如果遵循以下特定升級路徑,升級過程可能會無限期地卡在「Pre-drained」狀態:

  • 叢集首先從 v1.5.1 升級到 v1.6.0。
  • 隨後嘗試從 v1.6.0 升級到 v1.6.1-rc2。

當您檢查 Harvester 控制器時,可能會看到以下錯誤訊息:

harvester-899b4df79-mzgkx apiserver time="2025-10-11T07:21:17Z" level=error msg="error syncing 'fleet-local/custom-a8796656aa4c-machine-plan': handler harvester-upgrade-secret-controller: jobs.batch \"hvst-upgrade-7zqp7-post-drain-hp-113-tink-system\" already exists, requeuing"
harvester-899b4df79-mzgkx apiserver time="2025-10-11T07:23:17Z" level=error msg="error syncing 'fleet-local/custom-a8796656aa4c-machine-plan': handler harvester-upgrade-secret-controller: jobs.batch \"hvst-upgrade-7zqp7-post-drain-hp-113-tink-system\" already exists, requeuing"
harvester-899b4df79-mzgkx apiserver time="2025-10-11T07:25:17Z" level=error msg="error syncing 'fleet-local/custom-a8796656aa4c-machine-plan': handler harvester-upgrade-secret-controller: jobs.batch \"hvst-upgrade-7zqp7-post-drain-hp-113-tink-system\" already exists, requeuing"

這是一個罕見的同步失敗:作業已經建立,但升級物件未更新。

解決方法是刪除現有的 post-drain 作業,然後等待升級控制器重新建立它。

相關 issue:#9293