• 关于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"
  • 相关阅读:
    Windows常用命令的使用
    Windows网络命令的相关指令(1)
    HashMap源码解析
    Head First 设计模式【一、设计模式入门】
    软技能-代码之外的生存指南【职业篇】
    记第一个项目结束时的感想
    2019年总结
    深入理解计算机系统【五】-存储器层次结构
    深入理解计算机系统【四】-程序的机器级表示
    深入理解计算机系统【三】
  • 原文地址:https://www.cnblogs.com/wang--lei/p/12800647.html
Copyright © 2020-2023  润新知