k3s中控制evicted pods数量
1. 问题
当节点出现资源压力时,kubernetes会自动驱赶pod,被驱赶的pod会被打上evicted标记,但并不马上回收。触发回收的阈值默认是12500,导致节点上出现大量无效的pod,资源正常以后也需要很长时间进行恢复。
2. 解决方案
2.1. 批量删除evicted pods的方法
# 在主节点上执行
kubectl get pods -n <namespace> | grep -i evicted | awk '{print $1}' | xargs kubectl delete pod -f -n <namespace>
2.2. 修改pod回收阈值
在k3s主节点修改或新建配置文件:/etc/rancher/k3s/config.yaml
设置下面的参数
kube-controller-manager-arg:
- 'terminated-pod-gc-threshold=10'
重启k3s集群
应该是所有节点都需要重启,暂未验证。
License:
CC BY 4.0