How to disable DiskPressure Eviction?


#1

I have a k8s node to run some unimportant systems. They have very little visitors. I just want these systems keep alive.
But in some times, this node will be in DiskPressure=True state in k8s. It will cause pod eviction. But I want to disable it in this node.

So, how to disable disk pressure state collect in k8s? Or disable pod eviction in one node? Or how to config disk pressure eviction policy?

Important: Not OutofDisk

I have some eviction policy configs in kubelet config file, but it doesn’t work:

root@iZ2zedqpqs6wxj96i3trx8Z:~# cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
[Service]
Environment="KUBELET_EVICTION_POLICY_ARGS=--eviction-hard=memory.available<1Mi,nodefs.available<1Mi,nodefs.inodesFree<1,imagefs.available<1Mi,imagefs.inodesFree<1 --eviction-pressure-transition-period=360000s"
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"
Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"
Environment="KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10 --cluster-domain=cluster.local"
Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt"
Environment="KUBELET_CADVISOR_ARGS=--cadvisor-port=0"
Environment="KUBELET_CERTIFICATE_ARGS=--rotate-certificates=true --cert-dir=/var/lib/kubelet/pki"
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS $KUBELET_EVICTION_POLICY_ARGS

Thanks.


#2

As the DiskPressure can relate to some different parameters hitting the threshold: “Available disk space and inodes on either the node’s root filesystem or image filesystem has satisfied an eviction threshold”

If you are really sure that you want to avoid the eviction, you could probably just set the threshold for those up.


#3

How to set the threshold?

KUBELET_EVICTION_POLICY_ARGS=--eviction-hard=memory.available<1Mi,nodefs.available<1Mi,nodefs.inodesFree<1,imagefs.available<1Mi,imagefs.inodesFree<1 --eviction-pressure-transition-period=360000s"

After I set these threshold, it is no help to avoid DiskPressure evication.


#4

I’d have to reproduce that behaviour. Not sure when I’ll have time for it