How does kubernetes get the imagefs.available and nodefs.available eviction signals?

11/8/2021

Two signals(imagefs.available and nodefs.available) in link caught my attention. How does kubernetes or kubelet get these signals value? How can I manually look up these values in my nodes?

My cluster specification:

  • kubernetes v1.21.6 (vanilla)
  • containerd v1.5.7
  • 1 master node, 3 worker node
-- nulluisinverba
kubernetes

1 Answer

11/10/2021

As stated in the documentation, nodefs.available and imagefs.available are Eviction Signals, kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. They are set by default by Kubernetes.

The kubelet has the following default hard eviction thresholds: memory.available<100Mi nodefs.available<10% imagefs.available<15% nodefs.inodesFree<5%

There is no way to check the eviction policy info unless hard eviction thresholds are defined and set in kubelet config file.

You can only check the default thresholds by looking at kubelet flags.

kubelet --help | grep eviction
-- Bryan L
Source: StackOverflow