k8s修改 Kubelet 配置文件,避免乱驱逐!!!
2026/7/23 2:06:57 网站建设 项目流程

这个文件是kubelet基础服务文件。但是,请先不要急着直接改这个文件里面的ExecStart

修改时一定要记得做备份!!!!!!

⚠️ 重要提醒:不要直接改这里(99% 无效)

如果你是用kubeadm安装的集群(大部分情况都是),这个文件里的ExecStart会被另一个“覆盖文件”(Drop-in file)给忽略掉
那个覆盖文件通常在/etc/systemd/system/kubelet.service.d/10-kubeadm.conf,它会清空这里的设置并用自己的参数启动。

所以,想要修改驱逐阈值,有以下两种真正有效的方法:


方法一:修改 Kubelet 配置文件(✅ 推荐,最稳妥)

这是官方推荐的方式。请检查你的节点上有没有/var/lib/kubelet/config.yaml这个文件。

1. 编辑配置文件

vim/var/lib/kubelet/config.yaml

2. 在文件末尾(或者合适的位置)添加evictionHard配置
注意缩进(YAML格式),要和apiVersion同级,或者直接加在文件最后(确保没有重复的 key):

evictionHard:memory.available:"100Mi"# 内存剩 100Mi 才驱逐nodefs.available:"5%"# 磁盘剩 5% 才驱逐nodefs.inodesFree:"5%"imagefs.available:"5%"# 镜像盘剩 5% 才驱逐

3. 重启生效

systemctl daemon-reload systemctl restart kubelet

方法二:修改环境变量文件(✅ 仅次于配置文件)

如果你非要通过启动参数改,或者找不到 config.yaml,请修改/etc/sysconfig/kubelet(CentOS)或者/etc/default/kubelet(Ubuntu)。

1. 编辑环境文件

vim/etc/sysconfig/kubelet# 如果文件不存在,就新建一个

2. 添加 KUBELET_EXTRA_ARGS
在里面写入:

KUBELET_EXTRA_ARGS="--eviction-hard=memory.available<100Mi,nodefs.available<5%,imagefs.available<5%"

3. 重启生效

systemctl daemon-reload systemctl restart kubelet

方法三:如果你非要改你发的这个文件(❌ 不推荐)

只有在你确定没有安装kubeadm,且没有/etc/systemd/system/kubelet.service.d/目录的情况下,改这里才有用。

修改ExecStart这一行,把参数接在后面:

[Service] # 修改下面这一行,加上 --eviction-hard 参数 ExecStart=/usr/bin/kubelet --eviction-hard=memory.available<100Mi,nodefs.available<5%,imagefs.available<5% Restart=always StartLimitInterval=0 RestartSec=10

改完后执行:

systemctl daemon-reload systemctl restart kubelet

总结

建议直接用方法一(改config.yaml)。如果你改了你发的那个文件但重启后发现没效果,肯定是因为被kubeadm的配置覆盖了,请回头用方法一或方法二。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询