为什么Kubernetes给我的节点设置磁盘压力污点?

时间:2020-10-31 19:19:47

标签: kubernetes kubelet

如何弄清楚为什么设置了异味?

这是我从kubelet配置中逐出的配置:

Kubelet配置:

kubeletArguments:
  eviction-soft:
  - memory.available<100Mi
  - nodefs.available<100Mi
  - nodefs.inodesFree<1%
  - imagefs.available<100Mi
  - imagefs.inodesFree<1%
  eviction-soft-grace-period:
  - memory.available=1m30s
  - nodefs.available=1m30s
  - nodefs.inodesFree=1m30s
  - imagefs.available=1m30s
  - imagefs.inodesFree=1m30s
  eviction-hard:
  - memory.available<100Mi
  - nodefs.available<100Mi
  - nodefs.inodesFree<1%
  - imagefs.available<100Mi
  - imagefs.inodesFree<1%

dh -f输出显示20GiB的总可用空间中有3.8GiB。 (配置为> 100Mi),因此不会达到软驱逐阈值或硬驱逐阈值。 df -i表示仅使用了20%的inode。

我试图通过发出sudo journalctl -u kubelet -b | grep pressure来找出原因,但没有发现有用的信息。也许有人可以建议更好的关键字?

1 个答案:

答案 0 :(得分:2)

已解决。 原来,我使用了错误的语法来配置阈值。这是设置这些值的正确方法:

evictionSoft:
  memory.available: "100Mi"
  nodefs.available: "100Mi"
  nodefs.inodesFree: "1%"
  imagefs.available: "100Mi"
  imagefs.inodesFree: "1%"
evictionSoftGracePeriod:
  memory.available: 5m
  nodefs.available: 5m
  nodefs.inodesFree: 5m
  imagefs.available: 5m
  imagefs.inodesFree: 5m
evictionHard:
  memory.available: "100Mi"
  nodefs.available: "100Mi"
  nodefs.inodesFree: "1%"
  imagefs.available: "100Mi"
  imagefs.inodesFree: "1%"

(在我的情况下,配置文件位于/var/lib/kubelet/config.yaml

然后,需要重新启动kubelet: sudo systemctl restart kubelet

以下是获取kubelet日志以检查其启动是否正确的有用命令:journalctl -u kubelet --since "1min ago"