参数配置
Eviction
生产环境如果集群管理员对集群缺乏足够的把控力,建议关闭驱逐,显示设置 --eviction-hard=
即可关闭,关闭之后驱逐相关的其他参数就不需要关注了
触发 Pod 驱逐操作的一组硬性门限(例如:memory.available<1Gi
(内存可用值小于 1G)设置。在 Linux 节点上,默认值还包括 nodefs.inodesFree<5%
当某资源压力过大时,kubelet 将执行 Pod 驱逐操作。此参数设置软性驱逐操作需要回收的资源的最小数量(例如:imagefs.available=2Gi
)
kubelet 在驱逐压力状况解除之前的最长等待时间
响应满足软性驱逐阈值(Soft Eviction Threshold)而终止 Pod 时使用的最长宽限期(以秒为单位)。如果设置为负数,则遵循 Pod 的指定值
设置一组驱逐阈值(例如:memory.available<1.5Gi
)。如果在相应的宽限期内达到该阈值,则会触发 Pod 驱逐操作
设置一组驱逐宽限期(例如,memory.available=1m30s
),对应于触发软性 Pod 驱逐操作之前软性驱逐阈值所需持续的时间长短
Reserve
kubernetes 系统预留的资源配置,以一组 <资源名称>=<资源数量>
格式表示。(例如:cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid='100'
)。当前支持 cpu
、memory
和用于根文件系统的 ephemeral-storage
设置在指定的 QoS 级别预留的 Pod 资源请求,以一组 "资源名称=百分比"
的形式进行设置,例如 memory=50%
。当前仅支持内存(memory)。要求启用 QOSReserved
特性门控
用逗号分隔的一组 CPU 或 CPU 范围列表,给出为系统和 Kubernetes 保留使用的 CPU。此列表所给出的设置优先于通过 --system-reserved
和 --kube-reskube-reserved
所保留的 CPU 个数配置
以逗号分隔的 NUMA 节点内存预留列表。(例如 --reserved-memory 0:memory=1Gi,hugepages-1M=2Gi --reserved-memory 1:memory=2Gi
)。每种内存类型的总和应该等于--kube-reserved
、--system-reserved
和--eviction-threshold
系统预留的资源配置,以一组 资源名称=资源数量
的格式表示, (例如:cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid='100'
)。目前仅支持 cpu
和 memory
的设置
Image
逐一拉取镜像。建议不要在 docker 守护进程版本低于 1.9 或启用了 Aufs 存储后端的节点上更改默认值
设置突发性镜像拉取的个数上限,仅在 --registry-qps
大于 0 时使用
如此值大于 0,可用来限制镜像仓库的 QPS 上限。设置为 0,表示不受限制
Other
kubelet 进程可以打开的最大文件数量
指定 kubelet 向主控节点汇报节点状态的时间间隔。注意:更改此常量时请务必谨慎, 它必须与节点控制器中的 nodeMonitorGracePeriod
一起使用
设置每个 Pod 中的最大进程数目。如果为 -1,则 kubelet 使用节点可分配的 PID 容量作为默认值
configMapAndSecretChangeDetectionStrategy
是 ConfigMap 和 Secret Manager 的运行模式。合法值包括:
Get
:kubelet 从 API 服务器直接取回必要的对象;Cache
:kubelet 使用 TTL 缓存来管理来自 API 服务器的对象;Watch
:kubelet 使用 watch 操作来观察所关心的对象的变更
生产环境中如果存在大量使用 ConfigMap 或者 Secret 作为卷挂载到 Pod 中的场景时,Watch 策略会导致 kube-apiserver 中对应资源 Get 请求的 QPS 非常高