如何在 kubernetes 中設定 Pod 的 CPU 親和性?

如何在 kubernetes 中設定 Pod 的 CPU 親和性?

我想在 kubernetes 中為 Pod 設定 CPU 關聯性。但是,我未能設定並且很難找到相應的文檔。

我的理解是:

  • 基本上,k8s 的 CPU 管理器將節點中的所有 CPU 核心視為共享池,並使用它們來運行部署在節點中的 pod。
  • 如果將 kubelet 的 CPU-manager-policy 欄位設定為“static”,則可以透過在 .yaml 檔案中將 CPU 請求/限制設為整數來設定 CPU 與 Pod 的關聯性。

我做了什麼:

  1. 為了將 CPU-manager-policy 欄位變更為靜態,我嘗試透過以下方式變更 kubelet 的配置:關聯
  2. 但是,CPU-manager-policy 欄位沒有改變,仍然是「none」。
  3. 因此,我更改了 /var/lib/kubelet/config.yaml 中的“cpuManagerPolicy”欄位。
  4. 然後,我執行了「sudo systemctl restart kubelet」。
  5. 節點的狀態變更為“NotReady”,所有 pod 都進入掛起狀態。

我使用的環境:

  • k8s版本:v1.13.2
  • CNI:印花布
  • 作業系統:Ubuntu 16.04
  • 節點數:2(1個master,1個worker)
  • 應用程式:istio 的範例應用程式名為圖書資訊

先感謝您!

答案1

我解決了。您必須在 config.yaml 檔案中新增「kubeReserved」欄位。此外,您必須刪除 /var/lib/kubelet/cpu_manager_state 檔案。然後,透過執行「systemctl restart kubelet」重新啟動 kubelet。

相關內容