kubelet最佳配置

author: garnett.wang@gmail.com

kubernetes version: 1.6.2

Kubelet Configurations We Should Care About

下面是我梳理的,我认为必须关注的flag。

flagvalue
--address0.0.0.0
--allow-privilegedfalse
--cadvisor-port int324194
--cgroup-driver stringcgroupfs
--cluster-dns stringSlice10.0.0.10 //todo
--cluster-domain stringcaas.vivo.com
--cni-bin-dir string/opt/cni/bin
--cni-conf-dir string/etc/cni/net.d
--docker-endpoint stringunix:///var/run/docker.sock
--eviction-hard stringmemory.available<4Gi,<br/> nodefs.available<20Gi,<br/> imagefs.available<5Gi
--eviction-max-pod-grace-period int3230
--eviction-minimum-reclaim stringmemory.available=500Mi,<br/> nodefs.available=2Gi,,<br/> imagefs.available=2Gi
--eviction-pressure-transition-period duration5m0s
--eviction-soft stringmemory.available<8Gi,<br/> nodefs.available<100Gi,<br/> imagefs.available<20Gi
--eviction-soft-grace-period stringmemory.available=30s,<br/> nodefs.available=2m,<br/> imagefs.available=2m
--experimental-fail-swap-on+
--experimental-kernel-memcg-notification+
--feature-gates stringAllAlpha=false
--file-check-frequency duration20s
--hairpin-mode stringpromiscuous-bridge
--healthz-port int3210248
--image-gc-high-threshold int3260
--image-gc-low-threshold int3240
--image-pull-progress-deadline duration2m0s
--kube-api-qps int325
--kube-reserved mapStringStringcpu=200m,memory=16G
--kubeconfig string/var/lib/kubelet/kubeconfig
--max-pods int3250
--minimum-image-ttl-duration duration1h
--network-plugin stringcni
--pod-infra-container-image stringvivo.registry.com/google_containers/pause-amd64:3.0
--pod-manifest-path string/var/lib/kubelet/pod_manifest
--port int3210250
--protect-kernel-defaults+
--read-only-port int3210255
--require-kubeconfig+
--root-dir string/var/lib/kubelet
--runtime-request-timeout duration2m0s
--serialize-image-pullsfalse
--sync-frequency duration1m0s
--system-reserved mapStringStringcpu=100m,memory=32G
--volume-plugin-dir string/usr/libexec/kubernetes/kubelet-plugins/volume/exec/
--volume-stats-agg-period duration1m0s

Kubelet Configuration Best Practicies

下面是我最终梳理的,认为需要真正显示设置的flag,如下:

/usr/bin/kubelet —address=0.0.0.0 
--port=10250 
--allow-privileged=false 
--cluster-dns=10.0.0.1 
--cluster-domain=caas.vivo.com
--max-pods=50 
--network-plugin=cni 
--require-kubeconfig 
--pod-manifest-path=/etc/kubelet.d/
--pod-infra-container-image=vivo.registry.com/google_containers/pause-amd64:3.0 
--eviction-hard=memory.available<4Gi,nodefs.available<20Gi,imagefs.available<5Gi 
--eviction-max-pod-grace-period=30 
--eviction-minimum-reclaim=memory.available=500Mi,nodefs.available=2Gi,imagefs.available=2Gi 
--eviction-pressure-transition-period=5m0s 
--eviction-soft=memory.available<8Gi,nodefs.available<100Gi,imagefs.available<20Gi 
--eviction-soft-grace-period=memory.available=30s,nodefs.available=2m,imagefs.available=2m 
--experimental-kernel-memcg-notification 
--experimental-fail-swap-on 
--system-reserved=cpu=100m,memory=8G 
--kube-reserved=cpu=200m,memory=16G
--hairpin-mode=promiscuous-bridge 
--image-gc-high-threshold=60 
--image-gc-low-threshold=40 
--serialize-image-pulls=false 
--protect-kernel-defaults 
--feature-gates=AllAlpha=false 

注意:要做好资源预留的话,还需要事先创建以下cgroup目录:

/sys/fs/cgroup/cpuset/system.slice/kubelet.service  
/sys/fs/cgroup/hugebtl/system.slice/kubelet.service  

这个工作可以放到kubelet.service的ExecStartPre中做。

而且一定要加上这三个配置项,否则无法生效:

--enforce-node-allocatable=pods,kube-reserved,system-reserved   
--kube-reserved-cgroup=/system.slice/kubelet.service   
--system-reserved-cgroup=/system.slice  

转载于:https://my.oschina.net/jxcdwangtao/blog/891960

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值