跳转至

参数配置

Eviction

生产环境如果集群管理员对集群缺乏足够的把控力,建议关闭驱逐,显示设置 --eviction-hard= 即可关闭,关闭之后驱逐相关的其他参数就不需要关注了

--eviction-hard
# default imagefs.available<15%,memory.available<100Mi,nodefs.available<10%

触发 Pod 驱逐操作的一组硬性门限(例如:memory.available<1Gi (内存可用值小于 1G)设置。在 Linux 节点上,默认值还包括 nodefs.inodesFree<5%

--eviction-minimum-reclaim

当某资源压力过大时,kubelet 将执行 Pod 驱逐操作。此参数设置软性驱逐操作需要回收的资源的最小数量(例如:imagefs.available=2Gi

--eviction-pressure-transition-period
# default 5m

kubelet 在驱逐压力状况解除之前的最长等待时间

--eviction-max-pod-grace-period

响应满足软性驱逐阈值(Soft Eviction Threshold)而终止 Pod 时使用的最长宽限期(以秒为单位)。如果设置为负数,则遵循 Pod 的指定值

--eviction-soft

设置一组驱逐阈值(例如:memory.available<1.5Gi)。如果在相应的宽限期内达到该阈值,则会触发 Pod 驱逐操作

--eviction-soft-grace-period

设置一组驱逐宽限期(例如,memory.available=1m30s),对应于触发软性 Pod 驱逐操作之前软性驱逐阈值所需持续的时间长短

Reserve

--kube-reserved

kubernetes 系统预留的资源配置,以一组 <资源名称>=<资源数量> 格式表示。(例如:cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid='100')。当前支持 cpumemory 和用于根文件系统的 ephemeral-storage

--qos-reserved

设置在指定的 QoS 级别预留的 Pod 资源请求,以一组 "资源名称=百分比" 的形式进行设置,例如 memory=50%。当前仅支持内存(memory)。要求启用 QOSReserved 特性门控

--reserved-cpus

用逗号分隔的一组 CPU 或 CPU 范围列表,给出为系统和 Kubernetes 保留使用的 CPU。此列表所给出的设置优先于通过 --system-reserved--kube-reskube-reserved 所保留的 CPU 个数配置

--reserved-memory

以逗号分隔的 NUMA 节点内存预留列表。(例如 --reserved-memory 0:memory=1Gi,hugepages-1M=2Gi --reserved-memory 1:memory=2Gi)。每种内存类型的总和应该等于--kube-reserved--system-reserved--eviction-threshold

--system-reserved

系统预留的资源配置,以一组 资源名称=资源数量 的格式表示, (例如:cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid='100')。目前仅支持 cpumemory 的设置

Image

--serialize-image-pulls
# default true

逐一拉取镜像。建议不要在 docker 守护进程版本低于 1.9 或启用了 Aufs 存储后端的节点上更改默认值

--registry-burst
# default 10

设置突发性镜像拉取的个数上限,仅在 --registry-qps 大于 0 时使用

--registry-qps
# default 5

如此值大于 0,可用来限制镜像仓库的 QPS 上限。设置为 0,表示不受限制

Other

--max-open-files
# default 1000000

kubelet 进程可以打开的最大文件数量

--node-status-update-frequency
# default 10s

指定 kubelet 向主控节点汇报节点状态的时间间隔。注意:更改此常量时请务必谨慎, 它必须与节点控制器中的 nodeMonitorGracePeriod 一起使用

--pod-max-pids
# default -1

设置每个 Pod 中的最大进程数目。如果为 -1,则 kubelet 使用节点可分配的 PID 容量作为默认值

configMapAndSecretChangeDetectionStrategy
# default Watch

configMapAndSecretChangeDetectionStrategy 是 ConfigMap 和 Secret Manager 的运行模式。合法值包括:

  • Get:kubelet 从 API 服务器直接取回必要的对象;
  • Cache:kubelet 使用 TTL 缓存来管理来自 API 服务器的对象;
  • Watch:kubelet 使用 watch 操作来观察所关心的对象的变更

生产环境中如果存在大量使用 ConfigMap 或者 Secret 作为卷挂载到 Pod 中的场景时,Watch 策略会导致 kube-apiserver 中对应资源 Get 请求的 QPS 非常高