
我想在 kubernetes 中為 Pod 設定 CPU 關聯性。但是,我未能設定並且很難找到相應的文檔。
我的理解是:
- 基本上,k8s 的 CPU 管理器將節點中的所有 CPU 核心視為共享池,並使用它們來運行部署在節點中的 pod。
- 如果將 kubelet 的 CPU-manager-policy 欄位設定為“static”,則可以透過在 .yaml 檔案中將 CPU 請求/限制設為整數來設定 CPU 與 Pod 的關聯性。
我做了什麼:
- 為了將 CPU-manager-policy 欄位變更為靜態,我嘗試透過以下方式變更 kubelet 的配置:關聯
- 但是,CPU-manager-policy 欄位沒有改變,仍然是「none」。
- 因此,我更改了 /var/lib/kubelet/config.yaml 中的“cpuManagerPolicy”欄位。
- 然後,我執行了「sudo systemctl restart kubelet」。
- 節點的狀態變更為“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。