前言
K8S 性能優化系列文章,本文爲第四篇:Kubernetes Node 性能優化參數最佳實踐。
系列文章:
兩個參數
控制可以爲 K8S Node 調度的最大 pod 數量的兩個參數: podsPerCore
和 maxPods
。
當兩個參數都被設置時,其中較小的值限制了節點上的 pod 數量。超過這些值可導致:
- CPU 使用率增加。
- 減慢 pod 調度的速度。
- 根據節點中的內存數量,可能出現內存耗盡的問題。
- 耗盡 IP 地址池。
- 資源過量使用,導致用戶應用程序性能變差。
⚠️ 重要
在 Kubernetes 中,包含單個容器的 pod 實際使用兩個容器。第二個容器用來在實際容器啓動前設置聯網(pause)。因此,運行 10 個 pod 的系統實際上會運行 20 個容器。
podsPerCore
根據節點中的處理器內核數來設置節點可運行的 pod 數量。例如:在一個有 4 個處理器內核的節點上將 podsPerCore
設爲 10 ,則該節點上允許的最大 pod 數量爲 40。
kubeletConfig:
podsPerCore: 10
將 podsPerCore
設置爲 0
可禁用這個限制。默認爲 0
。podsPerCore
不能超過 maxPods
。
maxPods
把節點可以運行的 pod 數量設置爲一個固定值,而不需要考慮節點的屬性。
kubeletConfig:
maxPods: 250
EOF
三人行, 必有我師; 知識共享, 天下爲公. 本文由東風微鳴技術博客 EWhisper.cn 編寫.