關於K8S集群中kubelet和docker的Cgroups驅動配置


前言:

  cgroups 的全稱是 Linux Control Groups,主要作用是限制、記錄和隔離進程組(process groups)使用的物理資源(cpu、memory、IO 等)

       

       systemd是系統自帶的cgroup管理器, 系統初始化就存在的, 和cgroups聯系緊密,為每一個進程分配cgroups, 用它管理就行了. 如果設置成cgroupfs就存在2個cgroup控制管理器, 實驗證明在資源有壓力的情況下,會存在不穩定的情況.

 

 




一、查看docker和kubelet的配置

       默認下,docker和kubelet的Cgroups驅動都是

  1、docker:docker info

  2、kubelet:cat /etc/kubernetes/kubelet

 

二、配置成推薦的systemd驅動

cat /etc/docker/daemon.json 
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {"max-size":"200m", "max-file":"3"}
}


cat /etc/kubernetes/kubelet 
KUBELET_ARGS="--stderrthreshold=3 --v=0 --kubeconfig=/etc/kubernetes/admin.kubeconfig --address=10.30.0.3 --port=10250 --kube-reserved=cpu=1,memory=1Gi,ephemeral-storage=2Gi --system-reserv
ed=cpu=1,memory=1Gi,ephemeral-storage=2Gi --eviction-hard=memory.available<500Mi,nodefs.available<10% --hostname-override=10.30.0.3 --allow-privileged=true --pod-infra-container-image=k8s.gcr.io/pause-amd64:3.1 --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --feature-gates=PersistentLocalVolumes=true,LocalStorageCapacityIsolation=true --pod-manifest-path=/etc/kubernetes/manifests --cluster-domain=internal-bigdata.com --cluster-dns=169.169.0.10 --root-dir=/data/kubelet --logtostderr=false --log-dir=/data/kubeletLogs/kubelet --cgroup-driver=systemd"

 


免責聲明!

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



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