Kubelet配置参数有哪些
更新:HHH   时间:2023-1-7


这篇文章主要介绍了Kubelet配置参数有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

下面是Kubelet version 1.12.0的所有配置。

FlagComments
--address

default 0.0.0.0,Kublet 监听地址,

0.0.0.0表示监听所有网络接口

--allow-privileged是否允许容器使用特权模式
--alsologtostderr所有log输出到标准错误输出
--anonymous-authKubelet server是否允许匿名的请求(default true)
--application-metrics-count-limit每个容器允许记录的最大事件数量(default 100
--authentication-token-webhook是否允许使用TokerReview API 给持有的tokens做鉴权
--authentication-token-webhook-cache-ttl缓存webhook token认证器回复的时间(默认值2m0s)
--authorization-mode    

Kubelet的认证模式,取值(AlwaysAllow(默认值),Webhook)

Webhook模式使用SubjectAccessReview API做鉴权

--authorization-webhook-cache-authorized-ttl缓存Webhook授权人的已授权回复的时间(默认值5m0s)
--authorization-webhook-cache-unauthorized-ttl缓存Webhook授权人的未授权回复的时间(默认值30s)
--azure-container-registry-config文件容器路径Azure 容器注册配置信息
--boot-id-file    

以逗号分隔的检查boot-id的文件列表。使用第一个存在的

(默认值: /proc/sys/kernel/random/boot_id)

--bootstrap-checkpoint-path存储checkpoint的目录
--bootstrap-kubeconfig

用来获取kubelet客户证书的Kubeconfig file的路径, 如果kubelet

没有定义--kubeconfig参数,bootstrap kubeconfig会用于从

API server获取客户证书。成功经验:引用已生成的客户证书和密钥

的kubeconfig写入--kubeconfig指定的路径。

客户证书和密钥将会储存在--cert-dir指定的目录中

--cadvisor-port本地cAdvisor的端口,设置为0表示不可用,默认为4194
--cert-dir

TLS证书所在的目录。如果--tls-cert-file和--tls-private-key-file

提供了,那么这个参数会被忽略。默认值: "/var/lib/kubelet/pki"

--cgroup-driverKubelet用来操作主机cgroups的驱动
--cgroup-root

Pods 可选的root cgroup, 这是由container runtime

在最佳工作的基础上处理的。

默认值: ",意思是使用container runtime的默认处理

--cgroups-per-qos支持创建QoS cgroup的层级结构。如果是true,最高层级的
--chaos-chance如果值大于0.0,那么就引入随机的客户端错误和延迟,用于测试。
--client-ca-file

如果set了,任何提供client-ca-file中由某个权威机构签名的

客户机证书的请求都使用与客户机证书的公共名称相对应的

身份进行身份验证

--cloud-configcloud provider配置文件的路径
--cloud-provider云服务的提供商。指定空值以在没有云提供商的情况下运行
--cloud-provider-gce-lb-src-cidrs

GCE防火墙给LB流量代理开放的CIDRS。默认值:

130.211.0.0/22,35.191.0.0/16,209.85.152.0/22,209.85.204.0/22

--cluster-dns以逗号分隔的DNS 服务IP地址。
--cluster-domain集群的域名
--cni-bin-dir查找CNI插件二进制文件的完整目录。默认值:/opt/cni/bin
--cni-conf-dir查找CNI插件配置文件的完整目录。默认值:/etc/cni/net.d
--container-hints容器提示文件的目录。默认值:/etc/cadvisor/container_hints.json
--container-runtime

使用的container runtime容器运行时。可用值“docker”,“rkt”。

默认值为“docker”。

--container-runtime-endpoint

试验性参数。远程运行时的服务端口, 目前Linux支持unix socket,

Windows支持tcp。

--containerdcontained端口,默认值:unix:///var/run/containerd.sock
--containerized试验性参数。支持在容器中运行kubelet
--contention-profiling如果启用了profiling,支持锁住争夺profiling
--cpu-cfs-quota

为指定CPU配额限制的容器启动CPU CFS配额强制执行,

默认值:true

--cpu-manager-policyCPU的管理器策略。可选值:“none”,“static”。默认值:“none”
--cpu-manager-reconcile-periodCPU管理器调节周期。Nodes 状态更新频率。默认10s。
--dockerdocker端口,默认值:unix:///var/run/docker.sock
--docker-disable-shared-pid

RI在同一个POD的中的容器在1.13.1 的docker版本默认使用

同一个PID namespace.设置该标志将恢复到独立

PID namespace之前的行为,将会在之后移除

--docker-endpoint

将此端口用于docker端口通信,

默认值:unix:///var/run/docker.sock

--docker-env-metadata-whitelistdocker容器需要收集的一份以逗号间隔的环境变量列表
--docker-only除了根目录,只报告docker容器
--docker-root弃用:docker root从docker info(默认:"/var/lib/docker")读取的
--docker-tls使用TLS连接docker
--docker-tls-ca可信CA的路径,默认值:ca.pem
--docker-tls-cert客户端证书的路径,默认值:cert.pe
--docker-tls-key私有密钥的路径
--dynamic-config-dir

Kubelet将会使用这个目录来校验下载的配置以及追踪配置的健康。

Kubelet会建空目录当该目录不存在时。该路径可能是绝对的

或者相对的,相对路径从Kubelet正在工作的目录开始。

提供该标志可启用Kubelet动态配置,目前,

必须启用DynamicKubeletConfig来传递此标志。

--enable-controller-attach-detach

允许附加/分离的controller管理调度附加/分离的volumes到该node,

并禁止kubelet执行任何的附加/分离操作,默认值:true

--enable-debugging-handlers启用用于日志收集和本地运行容器和命令的服务端端点,默认值:true
--enable-load-reader是否启用cpu负载阅读
--enable-server启用kubelet服务器,默认值:true
--enforce-node-allocatable

由kubelet执行的节点可分配强制执行级别的逗号分隔列表。

可选值:“pods”,“system-reserved,”“kube-reserved”.

如果指定后两个选项,那么'--system-reserved-cgroup' &

'--kube-reserved-cgroup' 也需要分别设置,默认值“pods”。

--event-burst

突发事件记录的最大值,临时允许事件记录爆发到该数字,但不超过

event-qps。只有当--event-qps > 0 时才有用,默认值:10

--event-qps

如果大于0,将每秒创建的事件限制为该值。如果是0,则不限制。

默认值:5

--event-storage-age-limit

存储事件的最大时间长度(每种类型),值是一个使用逗号

分隔的键值列表。key值是事件类型(creation, oom)或者dafault,

值是一个整数。默认应用于所有没有指定的事件类型。

默认值:“default=0”

--event-storage-event-limit

存储事件的最大数量(每种类型),值是一个使用逗号分隔的键值列表。

key值是事件类型(creation, oom)或者dafault,值是一个整数。默认应用于

所有没有指定的事件类型。默认值:“default=0”

--eviction-hard    

触发pod驱逐的一组驱逐阀值(e.g.  memory.available<1Gi)。默认值:imagefs.available<15%,memory.available<100Mi,

nodefs.available<10%,nodefs.inodesFree<5%

--eviction-max-pod-grace-period终止pod的最大宽限时间(秒),以响应最大的软驱逐阀值
--eviction-minimum-reclaim一组最小的回收策略(i.e. imagefs.available=2Gi),用来描述当资源处于压力时候,执行pod驱逐将要回收的最小资源数量
--eviction-pressure-transition-periodkubelet过渡到驱逐压力状态需要等待的时间
--eviction-soft

一组驱逐阀值(e.g. memory.available<1.5Gi),如果在相应的--eviction-soft-grace-period内都超过该阀值,

就会触发pod驱逐

--eviction-soft-grace-period组驱逐的宽限期(e.g. memory.available=1m30s) ,需要持续触及软驱逐阀值多久才触发pod驱逐
--exit-on-lock-contentionKubelet是否应该在锁文件争用的时候退出
--experimental-allocatable-ignore-evictionset to true时,当在计算Node可分配的资源时,硬驱逐阀值会被忽略,默认值为false
--experimental-allowed-unsafe-sysctls以逗号分隔的不安全的sysctl或不安全的sysctl模式的一组白名单(以*结尾)。使用该参数需要自行承担风险。
--experimental-bootstrap-kubeconfig启用,改为使用--bootstrap-kubeconfig
--experimental-check-node-capabilities-before-mount试验性的,如果设置为true,在执行挂载之前,kubelet将会检查底层节点的组件(二进制文件等)
--experimental-kernel-memcg-notification如果启用,kubelet将会与内核memcg通知集成,以确定是否超过了内存阀值,而不是轮询
--experimental-mounter-path试验性的,贴片二进制文件的路径,保持空以便使用默认的挂载
--experimental-qos-reserved

一组资源名=百分比(e.g. memory=50%),描述了在Qos的级别上pod资源请求是如何保留的。

目前只支持memory。默认值是none

--fail-swap-on如果swap在节点上启用了,则使kubelet无法启动
--feature-gates一组键值对用于描述alpha/实验特性的特性门
--file-check-frequency检查新数据的配置文件的持续时间,默认值20s
--global-housekeeping-interval全局性housekeeping的时间间隔,默认值1m0s
--google-json-keyGoogle云平台用于身份验证的Service Account Json key值
--hairpin-modeKubelet该怎么设置hairpin NAT.这个参数允许Service的端点在试图访问自己的Service重新负载均衡
--healthz-bind-addressDeafult 127.0.0.1。用于healthz服务的IP地址
--healthz-port本地主机healthz端点的端口,设为0表示不可用,默认值:10248
--host-ipc-sourcesKubelet允许pod使用主机IPC namespace的一组以逗号分隔的源列表
--host-network-sourcesKubelet允许pod使用主机NETWORK namespace的一组以逗号分隔的源列表
--host-pid-sourcesKubelet允许pod使用主机PID namespace的一组以逗号分隔的源列表
--hostname-override如果该参数不是空的,会使用这个参数作为身份识别替代实际的hostname
--housekeeping-interval容器housekeeping的间隔时间,默认值10s
--http-check-frequency检查新数据的http之间的持续时间,默认值20s
--image-gc-high-threshold当磁盘使用率达到该值时,触发镜像的GC操作,默认值:85
--image-gc-low-threshold当磁盘使用率降到该值时,GC操作结束,默认值:80
--image-pull-progress-deadline如果在这个deadline前拉取镜像没有结束,那么拉取镜像会被取消。默认值:1m0s
--image-service-endpoint

试验性。远程镜像服务的端口。如果没有指定,那么这个参数默认和container-runtime-endpoint一样。

目前linux支持unix socket,windows支持tcp。

--init-config-dir

Kubelet会从这个目录中查找初始配置。这个路径可能是绝对的或者相对的,

相对路径从Kubelet的当前工作目录开始。缺省该参数以使用内置的默认配置值。

目前,还需要启用Kubeletconfig的feature gate来传递这个标志。

--iptables-drop-bitfwmark空间的一部分,用来标记要丢弃的数据包。取值范围0~31,默认值:15
--iptables-masquerade-bit

fwmark空间的一部分,用来将数据包标记为SNAT。取值范围0~31,

请将此参数与kube-proxy相应的参数进行匹配。默认值:14

--kube-api-burst与kubernetes apiserver交互时的burst,默认是10
--kube-api-content-type发送到apiserver的请求的内容类型。默认:application/vnd.kubernetes.protobuf
--kube-api-qps与kubernetes apiserver交互时的QPS使用,默认值5
--kube-reserved

用来描述给kubernetes系统组件预留资源的一组ResourceName=ResourceQuantity

(e.g. cpu=200m,memory=500Mi,ephemeral-storage=1Gi) 。目前,支持cpu,内存,

和root file系统的临时性存储

--kube-reserved-cgroup    顶级cgroup的绝对名称,用于管理通过'--kube-reserved'标志保留计算资源kubernetes组件
--kubeconfigkubeconfig file的路径,指定连接API server的方式。默认值:"/var/lib/kubelet/kubeconfig"
--kubelet-cgroups可选的cgroups的绝对名称,用来创建和运行Kubelet。
--lock-file    kubelet作为锁文件使用的文件路径
--log-backtrace-at当日志文件记录到行文件N时,发出堆栈跟踪,默认值0
--log-cadvisor-usage是否记录cAdvisor容器的使用情况
--log-dir如果为非空,将日志文件写入该目录
--log-flush-frequency日志刷新间隔最大的秒数。默认值:5s
--logtostderr日志写到标注错误输出,而不是文件,默认值为true
--machine-id-file

以逗号分隔的文件列表,用来检查机器id。使用第一个存在的。

默认值:"/etc/machine-id,/var/lib/dbus/machine-id"

--make-iptables-util-chains如果是true,kubelet将确保在主机上提供iptables实用规则
--manifest-url访问容器清单的URL
--manifest-url-header

在访问URL清单的时候使用的以逗号分隔的HTTP头部列表。

将按照提供的顺序添加具有相同名称的多个头部,可以重复调用该标志。

I.E. --manifest-url-header 'a:hello,b:again,c:world'

     --manifest-url-header 'b:beautiful'

--max-open-filesKubelet进程可以打开的文件数量,默认值:1000000
--max-podsKubelet可以运行的最大pod数量,默认值:110
--minimum-image-ttl-duration未被使用的镜像在垃圾收集之前的最低使用年限
--network-pluginKubelet/pod生命周期中的各种各样的时间调用的网络插件的名称
--network-plugin-mtu通过网络插件的MTU(最大传输单元),用来覆盖默认值。设为0表示使用默认1460MTU
--node-ipNode的IP地址,如果设置,Kubelet将为node使用这个IP地址
--node-labels当注册这个node到集群时添加这些Labels
--node-status-update-frequency

指定Kubelet发布节点状态给master的频率。注意:改变该常量时要小心,

必须和nodecontroller的nodeMonitorGracePeriod相结合。默认值:10s。

--oom-score-adjKubelet进程的oom-score-adj值,取值范围-1000 ~ 1000。默认值:-999
--pod-cidr用于POD IP地址的CIDR,仅在独立模式下使用。
--pod-infra-container-image每个pod的network/ipc namespace容器使用的镜像,默认:"k8s.gcr.io/pause:3.1"
--pod-manifest-path(静态pod目录)包含需要运行的pod元文件目录,或者单个pod的元文件。以 “.”开头的文件会被忽略。
--pods-per-core    

Kubelet上每个核心可以运行的pods,Kubelet上Pods的总数不能超过max-pods,

所以当这个参数计算的结果大于max-pods时,Kubelet会使用max-pods的参数,

该参数设置为0时表示不使用。

--portKubelet的端口,默认值10250
--protect-kernel-defaults

内核调优的默认Kubelet行为。如果设置,任何内核的可调参数和kubelet的默认值

不同,则kubelet会出现错误。

--provider-id用于标示节点在机器数据库中唯一标示符
--read-only-port

Kubelet监听的只读端口,无需授权/身份验证即可使用,默认值10255,设置为0表示不可用。

--really-crash-for-testing如果设为true,当出现panics时候引起奔溃,用于测试。
--register-node    

向APIserver注册节点。如果--kubeconfig没有提供,这个标志就无关紧要了,

因为Kubelet没有一个注册服务器。默认值为true。

--register-with-taints使用指定的污染列表(逗号分隔‘=:’)。如果注册节点是false,则无操作。
--registry-burst

突发性pulls的最大值,临时允许pulls爆发到该值,但仍然不超过registry-qps。

只有--registry-qps > 0时候这个标志才有用。默认值10.

--registry-qps当大于0时,限制注册表pull QPS到这个值。
--resolv-conf解析配置文件用作容器DNS解析配置的基础,默认值:"/etc/resolv.conf"
--root-dir    管理kubelet文件的目录路径。(volume mounts等等)。默认值: "/var/lib/kubelet"
--rotate-certificates当证书到期时,通过从kube-apiserver请求新的证书,自动旋转kubelet客户机证书
--runonce如果设置为true,当从本地清单或者远程urls生成pod之后退出。给--enable-server单独使用的
--runtime-cgroups可选的cgroups的决定名称,用于创建和运行runtime
--runtime-request-timeout

除了长时间运行的请求(pull,logs,exec,attach)以外,所有runtime请求的超时时间。

当触发超时时,kubelet会取消请求,抛出一个错误并稍后重试,默认值:2m0s

--seccomp-profile-rootseccomp概要文件的目录路径。默认值:"/var/lib/kubelet/seccomp"
--serialize-image-pulls每次拉取一个镜像。建议不要在<1.9的docker版本或者使用Aufs存储后端的节点修改默认的值。默认值true。
--stderrthreshold在此阀值或以上的日志转到标准错误输出。默认值2
--storage-driver-buffer-duration

在此期间,存储驱动程序中的写入将被缓冲,并作为单个事务提交给非内存后端。默认值:1m0s

--storage-driver-db数据库的名称,默认值:"cadvisor"
--storage-driver-host数据库主机:端口,默认值:"localhost:8086"
--storage-driver-password数据库密码,默认值:"root"
--storage-driver-secure数据库使用安全连接
--storage-driver-table表名,默认值: "stats"
--streaming-connection-idle-timeout在连接自动关闭之前,流连接可以空闲的最长时间。0表示没有超时。默认值:4h0m0s
--sync-frequency同步运行的容器和配置之间最大的间隔。默认值:1m0s
--system-cgroups

可选的cgroups的绝对名称将所有非内核进程放在/下的cgroup中。空表示容器,

回滚标志需要重新引导。

--system-reserved

一组ResourceName=ResourceQuantity对(e.g. cpu=200m,memory=500Mi,

ephemeral-storage=1Gi) 的集合,用于描述非kubernetes组件的预留资源。

目前只支持cpu和内存。默认值为 [default=none]

--system-reserved-cgroup

顶级的cgroup的绝对名称,用于管理非kubernetes的组件,这些组件的计算资源

通过 '--system-reserved' 保留。默认值:[default='']

--tls-cert-file    

用于服务HTTPS的包含x509证书的文件(如果有中间证书,则连接在服务器证书之后),

如果--tls-cert-file和--tls-private-key-file没有提供,则为公共地址生成自签名

证书和密钥,并报春传递到--cert-dir的目录中。

--tls-cipher-suites用逗号分隔的服务器密码套件列表。如果省略,将使用默认的Go密码套件。
--tls-private-key-file包含匹配--tls-cert-file文件的x509私钥的文件。
-v, --v 日志的日志级别
--vmodule以逗号分隔的 “模式列表=N” 的文件过滤日志记录设置
--volume-plugin-dir

用于寻找附加的第三方volume插件的完整目录路径。

默认值:"/usr/libexec/kubernetes/kubelet-plugins/volume/exec/"

--volume-stats-agg-period指定Kubelet计算和缓存所有pods/volumes的volume使用量的间隔。

参考:大神的博客https://my.oschina.net/jxcdwangtao/blog/891960

要做好资源预留的话,需要事先创建以下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

感谢你能够认真阅读完这篇文章,希望小编分享的“Kubelet配置参数有哪些”这篇文章对大家有帮助,同时也希望大家多多支持天达云,关注天达云行业资讯频道,更多相关知识等着你来学习!

返回云计算教程...