CPU 固定
自 v1.4.0 起可用
Harvester 支援虛擬機 CPU 固定。要使用此功能,您必須先在節點上啟用 CPU Manager,然後在建立虛擬機時啟用 CPU 固定。
Kubernetes CPU Manager
CPU Manager 功能改善了 Kubernetes 叢集中的 CPU 資源分配,確保具有嚴格效能需求的工作負載獲得穩定且可預測的 CPU 資源。這對於高效能和對延遲敏感的應用程式尤為重要。
當啟用 CPU Manager 時,Harvester 使用 static CPU Manager 政策。此政策管理一個共享的 CPU 池,該池最初包含節點上的所有 CPU,並具有以下設定:
- 請求完整 CPU 核心(例如 CPU: "2")的
Guaranteed服務品質 (QoS) 類別中的 Pod 會被分配專用 CPU。這些 CPU 被「固定」到 Pod,並從共享 CPU 池中移除。 Burstable和BestEffortQoS 類別中的 Pod 共享池中剩餘的 CPU。
共享 CPU 池的計算
Harvester 根據 GKE 公式為系統層級操作保留 CPU 資源,其中 systemReserved 和 kubeReserved 值以 2:3 的比率分配。
範例(具有 16 個 CPU 核心的節點):
systemReserved: 408 millicores
kubeReserved: 612 millicores
在此範例中,大約 15 個核心(14980 millicores)可用於工作負載。
當 Guaranteed QoS 類別中的虛擬機(Pod)請求 4 個 CPU 時,會為該虛擬機專用 4 個核心。其他 QoS 類別中的 Pod 共享共享池中剩餘的 11 個核心。
啟用和停用 CPU Manager
當您啟用 CPU Manager 時,Harvester 會將 CPU Manager 政策設定為 static。當您停用該功能時,Harvester 會將 CPU Manager 政策切換回 none。
您必須分別在每個節點上啟用或停用 CPU Manager。
-
在 Harvester UI 上,前往 Hosts。
-
在清單中找到節點,然後選擇 ⋮ > Enable CPU Manager 或 Disable CPU Manager。
請給 Harvester 一些時間以套用相應的 CPU Manager 政策。

限制
-
CPU Manager 無法在見證節點上啟用。
-
CPU Manager 必須分別在每個管理節點上啟用或停用。您必須等待操作完成後才能開始另一個操作。
-
在對應節點上停用 CPU Manager 之前,必須先停止啟用 CPU 固定的虛擬機。
在新虛擬機上啟用 CPU 固定
- 驗證一 個或多個節點上已啟用 CPU Manager。
確保至少一個節點已啟用 CPU Manager。否則,虛擬機在啟動後將卡在 unschedulable 狀態。如需更多資訊,請參閱節點親和性規則。
-
前往 Virtual Machines。
-
點擊 Create。

- 在 Advanced Options 標籤上,選擇 Enable CPU Pinning。

- 點擊 Save。
啟用 CPU 固定會將 dedicatedCpuPlacement: true 新增到虛擬機設定 (YAML) 中的 .spec.template.spec.domain.cpu。當 dedicatedCpuPlacement 設定為 true 時,CPU 和記憶體資源請求會自動設定為與限制相符,以確保滿足 Guaranteed QoS 的標準。
由於請求和限制相同,CPU 和記憶體資源超額分配設定不適用於啟用 CPU 固定的虛擬機。
要在現有虛擬機上使用 CPU 固定,您必須在啟用該功能並儲存變更後重新啟動虛擬機。
虛擬機即時遷移
啟用 CPU 固定的虛擬機只有在目標節點上啟用 CPU Manager 時才能遷移。
升級
升級節點時,Harvester 會排空所有 Pod 並將虛擬機即時遷移到另一個節點。為了避免中斷升級程序,每當使用啟用 CPU 固定的虛擬機時,請確保在其他節 點上啟用 CPU Manager 並且有足夠的可用資源。