Kubernetes 運維小記:node 為系統保留最低資源


今天優化了 k8s 生產集群的部署,為系統(linux 與 k8s系統pod)保留最低資源,以免應用 pod 負載高拖垮整個節點。

配置方法是手動給每個節點的 kubelet 添加配置文件 /etc/default/kubelet ,並在其中添加如下的配置:

UBELET_EXTRA_ARGS="--kube-reserved=cpu=300m,memory=300Mi,ephemeral-storage=1Gi --system-reserved=cpu=200m,memory=200Mi,ephemeral-storage=1Gi --eviction-hard=memory.available<500Mi,nodefs.available<10%"

通過 UBELET_EXTRA_ARGS 環境變量,添加了 kube-reserved, system-reserved, eviction-hard 這3個配置。

重啟 kubelet 使配置生效。

systemctl restart kubelet

節點使用的是4核8G的服務器,添加配置前節點的 allocatable 情況:

$ kubectl get node k8s-node10 -o json | jq '.status.allocatable'
{
  "cpu": "4",
  "ephemeral-storage": "75974665296",
  "hugepages-1Gi": "0",
  "hugepages-2Mi": "0",
  "memory": "8065516Ki",
  "pods": "110"
}

添加配置后節點的 allocatable 情況:

$ kubectl get node k8s-node10 -o json | jq '.status.allocatable'
{
  "cpu": "3500m",
  "ephemeral-storage": "73827181648",
  "hugepages-1Gi": "0",
  "hugepages-2Mi": "0",
  "memory": "7143916Ki",
  "pods": "110"
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM