跳至主要内容

設定

以下是您可以在 Harvester 中使用的進階設定清單。您可以使用 Harvester UI 和 kubectl 指令來修改 settings.harvesterhci.io 自定義資源。


 

一般設定 (General Settings)​

additional-ca​

定義:額外的受信任 CA 憑證,使 Harvester 能夠存取外部服務。

警告

變更此設定可能會導致單節點叢集暫時無法使用或無法存取。

預設值:無

範例:

-----BEGIN CERTIFICATE-----
SOME-CA-CERTIFICATES
-----END CERTIFICATE-----

auto-disk-provision-paths [實驗性]​

定義:允許 Harvester 自動將符合指定 Glob 模式 (glob pattern) 的磁碟新增為 VM 儲存空間的設定。

此設定僅會新增已掛載到系統的格式化磁碟。指定多個模式時,請使用逗號分隔值。

警告

此設定將套用於叢集中的 所有節點。儲存裝置中的所有資料 將被銷毀。

預設值:無

範例:

以下範例新增符合 Glob 模式 /dev/sd* 或 /dev/hd* 的磁碟:

/dev/sd*,/dev/hd*

auto-rotate-rke2-certs​

版本:v1.3.0 及更高版本

定義:允許您自動輪替 RKE2 服務憑證的設定。此設定預設為停用。

使用欄位 expiringInHours 指定每個憑證的有效期(1 到 8759 小時)。如果憑證在指定期間內過期,Harvester 會自動替換該憑證。

如需更多資訊,請參閱 Rancher 和 RKE2 文件中的 憑證輪替 (Certificate Rotation) 章節。

如果您的憑證已過期,您可以 手動輪替它們。

預設值:{"enable":false,"expiringInHours":240}

範例:

{"enable":true,"expiringInHours":48}

backup-target​

定義:用於儲存 VM 備份的自定義備份目標。

如需更多資訊,請參閱 Longhorn 文件。

預設值:無

範例:

{
"type": "s3",
"endpoint": "https://s3.endpoint.svc",
"accessKeyId": "test-access-key-id",
"secretAccessKey": "test-access-key",
"bucketName": "test-bup",
"bucketRegion": "us‑east‑2",
"cert": "",
"virtualHostedStyle": false
}

cluster-registration-url​

定義:用於將 Harvester 叢集匯入 Rancher 進行多叢集管理的 URL。

當您配置此設定時,會在 cattle-system 命名空間中建立一個名為 cattle-cluster-agent-* 的新 Pod 以進行註冊。此 Pod 使用容器映像檔 rancher/rancher-agent:related-version,該映像檔並未打包在 Harvester ISO 中,而是由 Rancher 決定。related-version 通常與 Rancher 版本相同。例如,當您將 Harvester 註冊到 Rancher v2.7.9 時,映像檔為 rancher/rancher-agent:v2.7.9。如需更多資訊,請參閱 Rancher 文件中的 尋找您 Rancher 版本所需的資產。

根據您的 Harvester 設定,映像檔會從以下位置之一具下載:

  • Harvester containerd-registry:您可以為 Harvester 叢集設定私有註冊表。
  • Docker Hub (docker.io):當您未在 Rancher 中設定私有註冊表時,這是預設選項。

或者,您可以取得映像檔的副本並手動將其上傳到所有 Harvester 節點。

預設值:無

範例:

https://172.16.0.1/v3/import/w6tp7dgwjj549l88pr7xmxb4x6m54v5kcplvhbp9vv2wzqrrjhrc7c_c-m-zxbbbck9.yaml

containerd-registry​

定義:為 Harvester 叢集建立的私有註冊表 (Private Registry) 設定。

該值儲存在每個節點的 registries.yaml 檔案中(路徑:/etc/rancher/rke2/registries.yaml)。如需更多資訊,請參閱 RKE2 文件中的 Containerd Registry Configuration。

基於安全考量,Harvester 會在將使用者名稱和密碼儲存到 registries.yaml 檔案後,自動移除針對私有註冊表設定的這些憑證。

範例:

containerd-registry

{
"Mirrors": {
"docker.io": {
"Endpoints": ["https://myregistry.local:5000"],
"Rewrites": null
}
},
"Configs": {
"myregistry.local:5000": {
"Auth": {
"Username": "testuser",
"Password": "testpassword"
},
"TLS": {
"InsecureSkipVerify": false
}
}
}
}

csi-driver-config​

版本:v1.2.0 及更高版本

定義:使用安裝在 Harvester 叢集中之第三方 CSI 驅動程式所需的設定。

在使用備份和快照相關功能之前,您必須設定以下資訊:

  • 已安裝的第三方 CSI 驅動程式的供應程式 (Provisioner)
  • volumeSnapshotClassName:用於建立卷冊快照或 VM 快照的 VolumeSnapshotClass 名稱。
  • backupVolumeSnapshotClassName:用於建立 VM 備份的 VolumeSnapshotClass 名稱。

預設值:

{
"driver.longhorn.io": {
"volumeSnapshotClassName": "longhorn-snapshot",
"backupVolumeSnapshotClassName": "longhorn"
}
}

csi-online-expand-validation​

版本:v1.6.0 及更高版本

定義:允許您將已確認支援線上卷冊擴充的儲存供應商標記為已驗證的設定。

根據底層儲存供應商的不同,您可能需要採取額外步驟才能使用線上卷冊擴充功能。

  • Longhorn:Harvester 認為 Longhorn 支援線上卷冊擴充,即使 Longhorn 資料引擎的版本之間存在差異。目前,V1 資料引擎完全支援線上卷冊擴充,而 V2 資料引擎完全不支援卷冊擴充(無論卷冊的掛接狀態為何)。Harvester webhook 會管理這些版本之間的差異。

  • 第三方儲存:Harvester 預設會拒絕第三方儲存的線上卷冊擴充請求。如果您已確認您的儲存供應商支援線上卷冊擴充,可以使用此設定將該儲存供應商標記為已驗證,並強制 Harvester 允許相關的線上擴充請求。

預設值:{"driver.longhorn.io":true}

default-vm-termination-grace-period-seconds​

版本:v1.2.0 及更高版本

定義:Harvester 在強制關閉透過 Harvester UI 停止的 VM 之前,所等待的秒數。

Harvester 會向任何透過 Harvester UI 停止的 VM 發送優雅關機 (graceful shutdown) 訊號。如果優雅關機程序未在指定的秒數內完成,Harvester 將強制關閉該 VM。

預設值:120

http-proxy​

定義:用於存取外部服務的 HTTP 代理,包括下載映像檔和備份到 S3 服務。

警告

變更此設定可能會導致單節點叢集暫時無法使用或無法存取。

預設值:{}

支援的選項與值:

  • HTTP 請求的代理 URL:"httpProxy": "http://<username>:<pswd>@<ip>:<port>"
  • HTTPS 請求的代理 URL:"httpsProxy": "https://<username>:<pswd>@<ip>:<port>"
  • 以逗號分隔的主機名稱和/或 CIDR 清單:"noProxy": "<hostname | CIDR>"

如果您設定了以下選項或設定,則必須在 noProxy 欄位中指定關鍵資訊:

已設定的選項/設定noProxy 中的必要值原因
httpProxy 與 httpsProxyHarvester 節點的 CIDR未指定節點的 CIDR 可能導致 Harvester 叢集損壞。
cluster-registration-urlcluster-registration-url 的主機主機資訊允許您從 Rancher 存取 Harvester 叢集。

Harvester 會將必要的位址附加到使用者指定的 noProxy 值中(例如 localhost,127.0.0.1,0.0.0.0,10.0.0.0/8,longhorn-system,cattle-system,cattle-system.svc,harvester-system,.svc,.cluster.local)。這確保了內部流量能按預期流動。

範例:

{
"httpProxy": "http://my.proxy",
"httpsProxy": "https://my.proxy",
"noProxy": "some.internal.svc,172.16.0.0/16"
}

log-level​

定義:Harvester 主機的日誌層級。

預設值:info

支援的選項與值:

  • panic:最精簡的日誌層級
  • fatal
  • error
  • warn, warning
  • info
  • debug
  • trace:最詳細的日誌層級

範例:

debug

longhorn-v2-data-engine-enabled [實驗性]​

版本:v1.4.0 及更高版本

定義:啟用或停用 Longhorn V2 資料引擎的設定。

設為 true 時,Harvester 會自動載入 Longhorn V2 資料引擎所需的 kernel 模組,並嘗試在所有節點上配置 1024 個 2 MiB 大小的 huge pages(例如 2 GiB 的 RAM)。

變更此設定會自動重新啟動所有節點上的 RKE2,但不會影響執行中的虛擬機器工作負載。

提示

如果您遇到包含 "not enough hugepages-2Mi capacity"(hugepages-2Mi 容量不足)詞句的錯誤訊息,請稍待一段時間讓錯誤解決。如果錯誤持續存在,請重新啟動受影響的節點。

若要在特定節點(例如處理能力和記憶體資源較少的節點)上停用 Longhorn V2 資料引擎,請前往 Hosts 畫面,並為目標節點新增以下標籤:

  • 標籤 (Label): node.longhorn.io/disable-v2-data-engine
  • 值 (Value): true

預設值:false

範例:

true

ntp-servers​

版本:v1.2.0 及更高版本

定義:用於 Harvester 節點時間同步的 NTP 伺服器。

您可以在 安裝 期間定義 NTP 伺服器,並在安裝後更新位址。

警告

對伺服器位址清單的變更將套用於所有節點。

預設值:""

範例:

{
"ntpServers": [
"0.suse.pool.ntp.org",
"1.suse.pool.ntp.org"
]
}

overcommit-config​

定義:可分配給 VM 使用的實體運算、記憶體和儲存資源的百分比。

超額配置 (Overcommitting) 用於最佳化實體資源分配,特別是當預期 VM 大部分時間不會完全消耗所分配的資源時。設定大於 100% 的值允許即使實體資源名義上已全部分配,仍可調度多個 VM。

預設值:{ "cpu":1600, "memory":150, "storage":200 }

使用預設值,可以調度以下資源:

  • 主機實體 CPU 數量的 16 倍
  • 主機實體 RAM 數量的 1.5 倍
  • Longhorn 實體儲存量的 2 倍

配置為使用 2 個 CPU(相當於 2,000 milliCPU)的 VM,只要資源可用,即可消耗完整的分配量。但是,如果主機執行繁重的工作負載並設定了超額配置值(例如 1600%),Harvester 僅會向 Kubernetes 排程器請求 125 milliCPU (2000/16 = 125 milliCPU)。

範例:

{
"cpu": 1000,
"memory": 200,
"storage": 300
}

additional-guest-memory-overhead-ratio​

定義:用於進一步調整 VM 記憶體額外負荷 (Memory Overhead) 的比率。

每個 VM 都配置了一個記憶體值,此記憶體是供 VM 客體作業系統 (Guest OS) 查看和使用的。在 Harvester 中,VM 運行在 virt-launcher pod 中。CPU/VM 資源限制會被轉換並套用到 launcher pod 的 Pod 和容器的資源請求與限制。KubeVirt 確保在 pod 中保留一定數量的記憶體用於管理虛擬化程序。Harvester 和 KubeVirt 將此類額外記憶體統稱為 VM 記憶體額外負荷。記憶體額外負荷 是透過複雜的公式計算得出的。然而,有時仍可能發生記憶體不足 (OOM) 的情況,導致相關 VM 被 Harvester OS 終止,直接原因是整個 POD/Container 超過了其記憶體限制。根據實務經驗,記憶體額外負荷 因不同類型的 VM、不同類型的 VM 作業系統而異,也取決於 VM 上執行的工作負載。

此設定用於更靈活地調整 VM 記憶體額外負荷。

預設值:"1.5"

有效值:""、"0" 以及從 "1.0" 到 "10.0"。

配置為 1 CPU, 2 Gi Memory, 1 Volume and 1 NIC 的 VM,當比率為 "1.0" 時,將獲得約 240 Mi 的 記憶體額外負荷。當比率為 "1.5" 時,記憶體額外負荷 為 360 Mi。當比率為 "3" 時,記憶體額外負荷 為 720 Mi。

配置為 1 CPU, 64 Gi Memory, 1 Volume and 1 NIC 的 VM,當比率為 "1.0" 時,將獲得約 250 Mi 的 記憶體額外負荷。VM 記憶體大小對 記憶體額外負荷 的計算影響不大。Guest OS pagetables 的額外負荷每 512b 的 RAM 大小需要一個 bit。

此設定在新叢集上的 yaml 輸出:

apiVersion: harvesterhci.io/v1beta1
default: "1.5"
kind: Setting
metadata:
name: additional-guest-memory-overhead-ratio
value: ""

當 value 欄位為 "" 時,使用 default 欄位。

當 value 欄位為 "0" 時,不使用 additional-guest-memory-overhead-ratio 設定,Harvester 將退回使用 Harvester v1.3.x、v1.2.x 及更早版本中使用的舊版 保留記憶體 (Reserved Memory)。當建立新 VM 且 WebUI 上的 Reserved Memory 欄位未填寫時,此 VM 將獲得 100Mi 預設保留記憶體。

如果您在 Harvester v1.4.0 之前已在 kubevirt 物件的 spec.configuration.additionalGuestMemoryOverheadRatio 欄位設定了有效值,然後升級到 v1.4.0,Harvester 會在升級路徑上擷取並將其轉換為此設定的 value 欄位。之後,Harvester 將始終使用此設定同步到 kubevirt 物件。

此設定與 VM 設定欄位 保留記憶體 (Reserved Memory) 都會被考慮在內,以得出每個 VM 的最終 總記憶體額外負荷 (Total Memory Overhead)。

總記憶體額外負荷 = 自動計算的 記憶體額外負荷 + Harvester 保留記憶體。

下表顯示它們如何協同運作:

VM 設定記憶體保留記憶體additional-guest-memory-overhead-ratioGuest OS 記憶體POD 容器記憶體限制總記憶體額外負荷
2 Gi""(未設定)"0.0"2 Gi - 100 Mi2 Gi + 240 Mi~340 Mi
2 Gi256 Mi"0.0"2 Gi - 256 Mi2 Gi + 240 Mi~500 Mi
------------------
2 Gi""(未設定)"1.0"2 Gi2 Gi + 240*1.0 Mi~240 Mi
2 Gi""(未設定)"3.0"2 Gi2 Gi + 240*3.0 Mi~720 Mi
------------------
2 Gi""(未設定)"1.5"2 Gi2 Gi + 240*1.5 Mi~360 Mi
2 Gi256 Mi"1.5"2 Gi - 256 Mi2 Gi + 240*1.5 Mi~620 Mi

相關資訊可從以下物件中擷取:

當 `additional-guest-memory-overhead-ratio` 設定為 "1.5" 時。

VM 物件:
...
memory:
guest: 2Gi // Guest OS 記憶體
resources:
limits:
cpu: "1"
memory: 2Gi // VM 設定記憶體

POD 物件:
...
resources:
limits:
cpu: "1"
devices.kubevirt.io/kvm: "1"
devices.kubevirt.io/tun: "1"
devices.kubevirt.io/vhost-net: "1"
memory: "2532309561" // POD 容器記憶體限制

範例:

2.0
備註

為了降低發生 OOM 的機率,Harvester 建議:

  • 如果叢集沒有記憶體資源壓力,請將此設定配置為 "2",給予所有 VM ~480 Mi 的 記憶體額外負荷。

  • 如果某些 VM 很重要,請配置 Reserved Memory 欄位以獲得更大的 總記憶體額外負荷。根據經驗法則:

    • 當 VM 設定記憶體 介於 5 Gi 和 10 Gi 之間時,總記憶體額外負荷 應 >= VM 設定記憶體 * 10%。

    • 當 VM 設定記憶體 大於 10 Gi 時,總記憶體額外負荷 應 >= 1 Gi。

    • 持續觀察、調整並測試,以獲得每個 VM 的最佳值。

  • 避免直接設定 kubevirt 物件的 spec.configuration.additionalGuestMemoryOverheadRatio 欄位。

更大的 總記憶體額外負荷 並不意味著該記憶體量會一直被用完,它是為了容忍峰值並避免發生 OOM 而設定的。

沒有 一體適用 (one-fit-all) 的解決方案。

important

如果您已為每個 VM 設定了 Reserved Memory 欄位,並計劃保留舊版 保留記憶體,在叢集升級至 Harvester v1.4.0 後,您可以將 additional-guest-memory-overhead-ratio 設定為 "0"。

變更 additional-guest-memory-overhead-ratio 設定會根據以下規則影響 VM:

  • 它會立即影響此變更後新建立的 VM。

  • 它不會立即影響執行中的 VM,這些 VM 在重新啟動後將獲得根據設定計算的新 記憶體額外負荷。

  • 當 VM 有使用者設定的 Reserved Memory 時,此設定始終被保留。

  • 當值在 "0" 和範圍 ["", "1.0" .. "10.0"] 之間變更時,具有 100Mi 預設保留記憶體 的現有 VM 將保留它,而沒有 100Mi 預設保留記憶體 的現有 VM 將不會自動獲得它。

  • 當在命名空間上設定 ResourceQuota 時,新比率將在 VM 移轉或啟動時使用。您需要調整這兩個參數,以確保 ResourceQuota 能夠容納原始數量的 VM(這些 VM 將具有新的額外負荷記憶體量)。

release-download-url​

定義:下載升級所需軟體的 URL。

Harvester 會從設定的 URL 可存取的 ${URL}/${VERSION}/version.yaml 檔案中擷取 ISO URL 和校驗和 (checksum) 值。

預設值:https://releases.rancher.com/harvester

範例 (version.yaml):

apiVersion: harvesterhci.io/v1beta1
kind: Version
metadata:
name: ${VERSION}
namespace: harvester-system
spec:
isoChecksum: ${ISO_CHECKSUM}
isoURL: ${ISO_URL}

server-version​

定義:安裝在 Harvester 節點上的 Harvester 版本。

範例:

v1.0.0-abcdef-head

ssl-certificates​

定義:Harvester UI 和 API 的 SSL 憑證。

警告

變更此設定可能會導致單節點叢集暫時無法使用或無法存取。

預設值:{}

範例:

{
"ca": "-----BEGIN CERTIFICATE-----\nSOME-CERTIFICATE-ENCODED-IN-PEM-FORMAT\n-----END CERTIFICATE-----",
"publicCertificate": "-----BEGIN CERTIFICATE-----\nSOME-CERTIFICATE-ENCODED-IN-PEM-FORMAT\n-----END CERTIFICATE-----",
"privateKey": "-----BEGIN RSA PRIVATE KEY-----\nSOME-PRIVATE-KEY-ENCODED-IN-PEM-FORMAT\n-----END RSA PRIVATE KEY-----"
}

ssl-parameters​

定義:Harvester UI 和 API 已啟用的 SSL/TLS 協定與加密套件 (ciphers)。

important

如果您錯誤設定此設定導致無法存取 Harvester UI 和 API,請參閱 疑難排解。

預設值:無

支援的選項與值:

  • protocols:已啟用的協定。
  • ciphers:已啟用的加密套件。

如需更多有關支援選項的資訊,請參閱 Ingress-Nginx Controller 文件中的 ssl-protocols 和 ssl-ciphers。

如果您未指定任何值,Harvester 會使用 TLSv1.2 和 ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305。

範例:

{
"protocols": "TLSv1.2 TLSv1.3",
"ciphers": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305"
}

storage-network​

定義:Longhorn 流量的隔離儲存網路。

預設情況下,Longhorn 使用管理網路,該網路僅限於單一介面並與全叢集工作負載共用。如果您的實作需要網路隔離,可以使用 儲存網路 (storage network) 來隔離 Longhorn 叢集內資料流量。

important

在設定此設定之前,請關閉所有 VM。

請以 IPv4 CIDR 格式指定 IP 範圍。IP 數量必須是叢集節點數量的四倍。

預設值:""

範例:

{
"vlan": 100,
"clusterNetwork": "storage",
"range": "192.168.0.0/24"
}

support-bundle-image​

版本:v1.2.0 及更高版本

定義:支援搭售包 (support bundle) 映像檔,rancher/support-bundle-kit 中提供各種版本。

預設值:打包在 Harvester ISO 中的 support-bundle-kit 映像檔,該映像檔專屬於每個 Harvester 版本。

範例:

在此範例中,叢集的預設映像檔標籤 (tag) 為 v0.0.25。

{
"repository": "rancher/support-bundle-kit",
"tag": "v0.0.25",
"imagePullPolicy": "IfNotPresent"
}

支援的選項與值:

該值是一個 JSON 物件字面量,包含以下鍵值對:

  • repository:儲存支援搭售包映像檔的儲存庫名稱。
  • tag:指派給支援搭售包映像檔的標籤。
  • imagePullPolicy:支援搭售包映像檔的拉取策略。支援的值為 IfNotPresent、Always 和 Never。如需更多資訊,請參閱 Kubernetes 文件中的 映像檔拉取策略 (Image pull policy)。

注意:

CLI 顯示以下 support-bundle-image 設定物件:

apiVersion: harvesterhci.io/v1beta1
default: '{"repository":"rancher/support-bundle-kit","tag":"v0.0.25","imagePullPolicy":"IfNotPresent"}' // 預設值,自動設定
kind: Setting
metadata:
name: support-bundle-image
...
status: {}

一段時間後,使用 Harvester UI 在 value 欄位中指定了較新的映像檔標籤 (v0.0.36)。

apiVersion: harvesterhci.io/v1beta1
default: '{"repository":"rancher/support-bundle-kit","tag":"v0.0.25","imagePullPolicy":"IfNotPresent"}'
kind: Setting
metadata:
name: support-bundle-image
...
status: {}
value: '{"repository":"rancher/support-bundle-kit","tag":"v0.0.36","imagePullPolicy":"IfNotPresent"}' // 您的設定值

最終,此叢集進行升級,物件再次變更。

apiVersion: harvesterhci.io/v1beta1
default: '{"repository":"rancher/support-bundle-kit","tag":"v0.0.38","imagePullPolicy":"IfNotPresent"}' // 預設值,升級後自動更新
kind: Setting
metadata:
name: support-bundle-image
...
status: {}
value: '{"repository":"rancher/support-bundle-kit","tag":"v0.0.36","imagePullPolicy":"IfNotPresent"}' // 您的設定值保持不變

value 欄位中的 tag 值為 v0.0.36,而 default 欄位中的 tag 值為 v0.0.38。

若要清除過時的設定並使用預設映像檔標籤,請執行以下指令,移除 value 欄位,並儲存變更。

$ kubectl edit settings.harvesterhci.io support-bundle-image

移除 value 欄位後,物件如下所示。

apiVersion: harvesterhci.io/v1beta1
default: '{"repository":"rancher/support-bundle-kit","tag":"v0.0.38","imagePullPolicy":"IfNotPresent"}'
kind: Setting
metadata:
name: support-bundle-image
...
status: {}

Harvester UI 上的 Use the default value (使用預設值) 按鈕可用於將 default 欄位的內容複製到 value 欄位。

儲存變更後,物件如下所示。

apiVersion: harvesterhci.io/v1beta1
default: '{"repository":"rancher/support-bundle-kit","tag":"v0.0.38","imagePullPolicy":"IfNotPresent"}' // 預設值
kind: Setting
metadata:
name: support-bundle-image
...
status: {}
value: '{"repository":"rancher/support-bundle-kit","tag":"v0.0.38","imagePullPolicy":"IfNotPresent"}' // 從預設值複製

將來升級叢集時,value 欄位的內容可能會再次過時,因為預設映像檔標籤可能會變更。

備註
  • default 欄位中的 tag 值始終基於打包在 Harvester ISO 中的映像檔。每當叢集升級時,此欄位會自動更新。

  • 當 value 欄位未設定或留空時,將使用 default 欄位。Harvester 會檢查預設映像檔是否儲存在叢集中且為最新版本。

  • 配置此設定並非必要。如果您決定在 value 欄位中指定不同的映像檔標籤,請記住此標籤在叢集升級時可能會過時。

  • 使用指令 $ kubectl edit settings.harvesterhci.io support-bundle-image 來清除 value 欄位。

  • Harvester UI 上的 Use the default value 按鈕僅會將 default 欄位的內容複製到 value 欄位。您可以使用它來替換過時的映像檔標籤,但複製的標籤最終也會過時(當叢集升級且 default 欄位更新時)。

  • 如果您的叢集處於實體隔離 (air-gapped) 環境中,並且您在 value 欄位中指定了非預設的映像檔標籤,請確保該映像檔在本地 containerd registry 中可用。如果映像檔不可用,Harvester 將無法 產生支援搭售包。

support-bundle-namespaces​

版本:v1.2.0 及更高版本

定義:您在 產生支援搭售包 時可以使用的額外命名空間。

預設情況下,支援搭售包僅收集以下預定義命名空間的資源:

  • cattle-dashboards
  • cattle-fleet-local-system
  • cattle-fleet-system
  • cattle-fleet-clusters-system
  • cattle-monitoring-system
  • fleet-local
  • harvester-system
  • local
  • longhorn-system
  • cattle-logging-system

您選擇的命名空間將會附加到預定義的命名空間清單中。

預設值:無

support-bundle-timeout​

版本:v1.2.0 及更高版本

定義:Harvester 允許支援搭售包產生程序完成的分鐘數。

當資料收集和檔案打包工作未在配置的分鐘數內完成時,該程序被視為失敗。Harvester 不會繼續或重試已逾時的支援搭售包產生程序。當值為 0 時,逾時功能將停用。

預設值:10

support-bundle-expiration​

版本:v1.3.0 及更高版本

定義:Harvester 在刪除已打包但未下載(無論是有意或不成功)或未保留的支援搭售包之前,所等待的分鐘數。

您可以指定大於或等於 0 的值。當值為 0 時,Harvester 使用預設值。

預設值:30

support-bundle-node-collection-timeout​

版本:v1.3.1 及更高版本

定義:Harvester 允許在節點上收集支援搭售包所需的日誌和設定(Harvester)的分鐘數。

如果收集程序未在分配的時間內完成,Harvester 仍允許您下載支援搭售包(不包含未收集到的資料)。您可以指定大於或等於 0 的值。當值為 0 時,Harvester 使用預設值。

預設值:30

upgrade-checker-enabled​

定義:自動檢查可用 Harvester 升級的設定。

預設值:true

範例:

false

upgrade-checker-url​

定義:用於檢查可用 Harvester 升級的 URL。

此設定僅在 upgrade-checker-enabled 設定為 true 時才可使用。

預設值:https://harvester-upgrade-responder.rancher.io/v1/checkupgrade

範例:

https://your.upgrade.checker-url/v99/checkupgrade

upgrade-config​

定義:升級相關設定。

預設值:{"imagePreloadOption":{"strategy":{"type":"sequential"}}, "restoreVM": false}

支援的選項與欄位:

  • imagePreloadOption:映像檔預載階段的選項。

    完整的 ISO 包含核心作業系統元件和所有必要的容器映像檔。Harvester 可以在安裝和升級期間將這些容器映像檔預載到每個節點。當工作負載被調度到管理節點和工作節點時,容器映像檔即可立即使用。

  • strategy:映像檔預載策略。

  • type:映像檔預載策略的類型。

    • sequential:Harvester 將容器映像檔從目標 ISO 依序預載到每個節點。這是預設選項。

    • skip:Harvester 不會將容器映像檔從目標 ISO 預載到每個節點。請勿在生產環境中使用此選項。

      important

      如果您決定使用 skip,請確保滿足以下要求:

      • 您擁有包含所有必要映像檔的私有容器註冊表。
      • 您的叢集擁有高速網際網路存取權限,並可在必要時從 Docker Hub 拉取所有映像檔。

      請注意任何潛在的網際網路服務中斷,以及您是否接近 Docker Hub 速率限制。未能下載任何必要的映像檔可能會導致升級失敗,並可能使叢集處於中間狀態。

    • parallel (實驗性):節點分批預載映像檔。您可以使用 concurrency 選項來調整此設定。

  • concurrency:可以同時預載映像檔的節點數量。此選項僅在 type 設定為 parallel 時生效。

    預設值為 0,相當於遵循叢集的節點數。使用 0 允許系統動態遵循叢集的規模。高於叢集節點數的值將被視為 0,而較低的值則被視為無效並被 Harvester 拒絕。

    備註

    Harvester 在叢集上部署了一個 upgrade-repo 服務,作為需要預載容器映像檔之節點的 HTTP 伺服器。當設定了 concurrency 值時,每批節點會同時從此 upgrade-repo 下載容器映像檔。因此,您必須考慮 Harvester 管理網路的速度和 Longhorn 預設磁碟的讀取速度。

  • restoreVM:讓 Harvester 在升級 成功 完成後,自動還原先前執行的 不可移轉虛擬機器 (non-migratable virtual machines) 的選項。您可以指定以下任一值:

    • true:Harvester 強制關閉每個節點上 執行中 和 暫停 的不可移轉虛擬機器。升級完成後,先前執行的虛擬機器將自動重新啟動,而暫停的虛擬機器則保持關機狀態。

    • false:這是預設值。在多節點環境中,您必須停止所有不可移轉虛擬機器以允許升級繼續進行。升級完成後,Harvester 不會重新啟動這些虛擬機器。

    備註

    在單節點環境中,所有虛擬機器都被視為不可移轉。Harvester 在開始升級程序之前會強制關閉所有虛擬機器。

範例:

{
"imagePreloadOption": {
"strategy": {
"type": "parallel",
"concurrency": 2
}
},
"restoreVM": true
}

vip-pools​

版本:自 v1.2.0 起已棄用(請改用 IP pools。)

定義:以 CIDR 或 IP 範圍表示的全域或特定命名空間 VIP IP 位址集區。

預設值:{}

範例:

{
"default": "172.16.0.0/24,172.16.1.0/24",
"demo": "172.16.2.50-172.16.2.100,172.16.2.150-172.16.3.200"
}

vm-force-reset-policy​

定義:允許您在執行 VM 的節點變得不可用時,強制重新調度 VM 的設定。

當節點狀態變為 Not Ready 時,VM 會在配置的秒數後被強制刪除並重新調度到可用的節點。

當節點變得不可用或斷電時,VM 只會重新啟動而不會移轉。

預設值:{"enable":true, "period":300}

範例:

{
"enable": "true",
"period": 300
}

vm-migration-network​

定義:虛擬機器移轉流量的隔離網路。

預設情況下,Harvester 使用內建的叢集網路 mgmt 進行虛擬機器移轉。mgmt 僅限於單一介面,並與全叢集工作負載共用。如果您的實作需要網路隔離,可以使用 VM 移轉網路 (VM migration network) 來隔離移轉流量。

important

請以 IPv4 CIDR 格式指定 IP 範圍。IP 位址的數量必須大於或等於您的叢集節點數量。

預設值:""

範例:

{
"vlan": 100,
"clusterNetwork": "vm-migration",
"range": "192.168.1.0/24"
}

volume-snapshot-class​

定義:當將 VM 還原到不包含來源 VM 的命名空間時,VolumeSnapshot 和 VolumeSnapshotContent 所使用的 VolumeSnapshotClassName。

預設值:longhorn

範例:

longhorn

max-hotplug-ratio​

定義:決定執行中虛擬機器可用的最大 CPU 和記憶體資源預設量的設定。此比率會乘以您在建立虛擬機器時分配的 CPU 和記憶體資源量。

執行時最大可用資源 = 虛擬機器建立時分配的資源 x max-hotplug-ratio 值

預設值:4

支援的值:1 到 20

範例:

max-hotplug-ratio 設定為 4。

資源分配量最大可用量
CPU 核心14
記憶體 (Gi)28

 

UI 設定 (UI Settings)​

branding​

版本:v1.2.0 及更高版本

定義:允許您透過自訂產品名稱、標誌和配色方案,在全域範圍內對 Harvester UI 進行品牌重塑 (rebrand) 的設定。

預設值:Harvester

警告

由於此設定是 settings.management.cattle.io 自定義資源的一部分,您無法使用 Harvester 設定 (Harvester configuration) 檔案來配置任何支援的選項(例如 Logo 和 Primary Color)。

containerd-registry

支援的選項與值:

  • Private Label:在 Harvester UI 大多數位置替換 "Harvester" 的產品名稱或其他文字。
  • Logo:頂層導覽標題中的標誌影像。您必須同時上傳淺色和深色模式的標誌。
  • Favicon:瀏覽器頁籤中顯示在頁面標題旁的小圖示。
  • Primary Color:整個 Harvester UI 使用的主色調。
  • Link Color:整個 Harvester UI 用於連結文字的顏色。

ui-index​

定義:Harvester UI 的 HTML 索引位置。

預設值:https://releases.rancher.com/harvester-ui/dashboard/latest/index.html

範例:

https://your.static.dashboard-ui/index.html

ui-path​

定義:描述 index.html 位置的路徑,用於存取 Harvester UI。

ui-path 作為 Harvester UI 的進入點,僅在以下情況下有效:

  • ui-source 的值為 bundled。
  • ui-source 的值為 auto,但 ui-index 無法擷取 HTML 檔案。

預設值:/usr/share/harvester/harvester

範例:

index.html 儲存在 /home/samplefolder 的容器中。ui-source 的值為 bundled。

情境 1:ui-path 的值為 /home/samplefolder。每當您存取 Harvester UI 時,都會顯示 /home/samplefolder/index.html 的內容。

情境 2:ui-index 的值指向一個不可用或不存在的頁面(例如 notexist-example.com/index.html)。當您第一次存取 Harvester UI 時,會顯示 /home/samplefolder/index.html 的內容。但是,如果您將 ui-index 設定修改為使用預設值並再次存取 Harvester UI,仍會顯示 /home/samplefolder/index.html 的內容(即使新的 ui-index 值指向可用頁面)。如需更多資訊,請參閱 Issue #6066。

ui-plugin-index​

定義:Harvester 外掛程式的 JavaScript 位址(當從 Rancher 存取 Harvester 時)。

預設值:https://releases.rancher.com/harvester-ui/plugin/harvester-latest/harvester-latest.umd.min.js

範例:

https://your.static.dashboard-ui/*.umd.min.js

ui-source​

定義:允許您配置如何載入 UI 來源的設定。

預設值:auto

支援的值:

  • auto:自動偵測是否使用搭售的 UI。
  • external:使用外部 UI 來源。
  • bundled:使用搭售的 UI 來源。

範例:

external