跳至主要内容

常見問題

本常見問題集是一項持續進行的工作,旨在回答使用者最常詢問的 Harvester 相關問題。

如何透過 SSH 登入 Harvester 節點?​

$ ssh rancher@node-ip

Harvester 儀表板的預設登入使用者名稱和密碼是什麼?​

username: admin
password: # 首次登入時,系統會提示您設定預設密碼

如何存取 Harvester 叢集的 kubeconfig 檔案?​

選項 1:您可以從 Harvester 儀表板的支援頁面下載 kubeconfig 檔案。

harvester-kubeconfig.png

選項 2:您可以從其中一個 Harvester 管理節點取得 kubeconfig 檔案。例如:

$ sudo su
$ cat /etc/rancher/rke2/rke2.yaml

如何在執行中的 VM 上安裝 qemu-guest-agent?​

# cloud-init 只會執行一次,新增以下命令的 cloud-init 設定後重新開機。
$ cloud-init clean --logs --reboot

https://cloudinit.readthedocs.io/en/latest/reference/cli.html#clean

如何重設管理員密碼?​

如果您忘記了管理員密碼,可以透過命令列重設。SSH 到其中一個管理節點並執行以下命令:

# 切換到 root 並執行
$ kubectl -n cattle-system exec $(kubectl --kubeconfig $KUBECONFIG -n cattle-system get pods -l app=rancher --no-headers | head -1 | awk '{ print $1 }') -c rancher -- reset-password
New password for default administrator (user-xxxxx):
<new_password>

我新增了一個帶有分割區的額外磁碟。為什麼它沒有被偵測到?​

從 Harvester v1.0.2 開始,我們不再支援新增帶有分割區的額外磁碟,因此請務必先刪除所有分割區(例如,使用 fdisk)。

為什麼有些 Harvester pod 變成 ErrImagePull/ImagePullBackOff?​

這很可能是因為您的 Harvester 叢集是離線設定,而某些預先載入的容器映像遺失了。Kubernetes 有一個機制會對膨脹的映像存放區進行垃圾回收。當儲存容器映像的分割區超過 85% 滿時,kubelet 會嘗試根據上次使用時間修剪映像,從最舊的開始,直到佔用率低於 80%。這些數字(85% 和 80%)是 Kubernetes 附帶的預設高/低閾值。

若要從此狀態恢復,請根據叢集的設定執行以下其中一項操作:

  • 從叢集外部的來源拉取遺失的映像(如果是離線環境,您可能需要事先設定 HTTP proxy)。
  • 從 Harvester ISO 映像手動匯入映像。
備註

以 v1.1.2 為例,從官方 URL 下載 Harvester ISO 映像。然後從 ISO 映像中擷取映像清單,以決定我們要匯入哪個映像 tarball。例如,我們想要匯入遺失的容器映像 rancher/harvester-upgrade

$ curl -sfL https://releases.rancher.com/harvester/v1.1.2/harvester-v1.1.2-amd64.iso -o harvester.iso
$ xorriso -osirrox on -indev harvester.iso -extract /bundle/harvester/images-lists images-lists
$ grep -R "rancher/harvester-upgrade" images-lists/
images-lists/harvester-images-v1.1.2.txt:docker.io/rancher/harvester-upgrade:v1.1.2

找出映像 tarball 的位置,並從 ISO 映像中擷取它。解壓縮擷取的 zstd 映像 tarball。

$ xorriso -osirrox on -indev harvester.iso -extract /bundle/harvester/images/harvester-images-v1.1.2.tar.zst harvester.tar.zst
$ zstd -d --rm harvester.tar.zst

將映像 tarball 上傳到需要恢復的 Harvester 節點。最後,在每個節點上執行以下命令以匯入容器映像。

$ ctr -n k8s.io images import harvester.tar
$ rm harvester.tar
  • 從其他節點上找到該節點上遺失的映像,然後從映像仍存在的節點匯出映像,並在遺失的節點上匯入它們。

為了防止這種情況發生,如果映像存放區磁碟空間緊張,我們建議在每次成功升級 Harvester 後清理先前版本中未使用的容器映像。我們提供了一個 harv-purge-images 腳本,可以輕鬆清理磁碟空間,特別是容器映像儲存。該腳本必須在每個 Harvester 節點上執行。例如,如果叢集原本是 v1.1.2,現在升級到 v1.2.0,您可以執行以下操作來捨棄僅在 v1.1.2 中使用但在 v1.2.0 中不再需要的容器映像:

# 在每個節點上
$ ./harv-purge-images.sh v1.1.2 v1.2.0
警告
  • 該腳本僅下載映像清單並比較兩者以計算兩個版本之間的差異。它不與叢集通訊,因此不知道叢集是從哪個版本升級的。
  • 我們為自 v1.1.0 以來發布的每個版本都發布了映像清單。對於早於 v1.1.0 的叢集,您必須手動清理舊映像。