跳转至

参数配置

Pod Deletion

--unhealthy-zone-threshold
# default 0.55

仅当给定区域中处于非就绪状态的节点(最少 3 个)的占比高于此值时, 才将该区域视为不健康

--large-cluster-size-threshold
# default  50

node-lifecycle-controller 在执行 Pod 驱逐操作逻辑时, 基于此标志所设置的节点个数阈值来判断所在集群是否为大规模集群。当集群规模小于等于此规模时, --secondary-node-eviction-rate 会被隐式重设为 0

--node-eviction-rate
# default 0.1

当某区域健康时,在节点故障的情况下每秒删除 Pods 的节点数。请参阅 --unhealthy-zone-threshold 以了解“健康”的判定标准。这里的区域(zone)在集群并不跨多个区域时指的是整个集群。0.1 代表每 10s 驱逐一台节点,在 Taint Based Eviction 模式下,这个频率是用来控制为 Node 设置 Taint 的,并不是控制最终驱逐 Pod 的

--node-monitor-grace-period
# default 40s

在将一个 Node 标记为不健康之前允许其无响应的时长上限。必须比 kubelet 的 nodeStatusUpdateFrequency 大 N 倍;这里 N 指的是 kubelet 发送节点状态的重试次数

--node-monitor-period
# default 5s

node-lifecycle-controller 对节点状态进行同步的周期

--node-startup-grace-period
# default 1m

在节点启动期间,节点可以处于无响应状态;但超出此标志所设置的时长仍然无响应则该节点被标记为不健康

--secondary-node-eviction-rate
# default 0.01

当一个区域不健康造成节点失效时,每秒钟从此标志所给的节点上删除 Pod 的节点个数。参见 --unhealthy-zone-threshold 以了解“健康与否”的判定标准。在只有一个区域的集群中,区域指的是整个集群。如果集群规模小于 --large-cluster-size-threshold 所设置的节点个数时, 此值被隐式地重设为 0

--terminated-pod-gc-threshold
# default 12500

在已终止 Pod 垃圾收集器删除已终止 Pod 之前,可以保留的已终止 Pod 的个数上限。若此值小于等于 0,则相当于禁止垃圾回收已终止的 Pod。主要影响 Job 创建出来的 Pod,或者不按照官网文档指导非得给非 Job 的 Pod 设置 activeDeadlineSeconds 的 Pod。影响集群中的 Pod 数量,可能会存在大量 Completed 的 Pod,如果客户端使用不当,有可能给 kube-apiserver 内存造成压力。生产环境建议调小这个值

Performance

--concurrent-*-syncs

这是一类参数的统称,代表对应资源的 controller 并行执行时的 worker 数量,按需调整即可,影响 workload 的处理速度