從 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 叢集。
-
在 Rancher UI 上,前往 local > Apps > Repositories。
-
找到名為 harvester 的儲存庫,然後選擇 ⋮ > Refresh。
-
前往 Extensions 畫面。
-
找到名為 Harvester 的擴充功能,然後點擊 Update。
-
選擇相容版本,然後點擊 Update。
-
等待一段時間讓擴充功能更新,然後重新整理畫面。
已知問題
1. 升級卡在「Pre-drained」狀態
在某些情況下,即使引擎 CR 的狀態已變更為「Stopped」,Longhorn Instance Manager 仍可能無法清理引擎實例。升級過程會卡在「Pre-drained」狀態,因為在對應的 PodDisruptionBudget (PDB) 仍然存在時,instance-manager Pod 無法被刪除。
解決方法是在確保所有卷都健康後刪除 instance-manager PDB。
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 位址。
要解決此問題,請執行以下步驟:
- 在 Rancher UI 上,從訪客叢集中刪除導致錯誤的節點。
- 在 Harvester UI 上,檢查底層虛擬機的狀態。
- 如有必要,重新啟動虛擬機。
虛擬機被移除後,訪客叢集會嘗試建立新節點。一旦建立節點,訪客叢集的狀態就會變更為「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":""}}'
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