Tolerations

Kubernetes Tolerations

Tolerations are a Kubernetes pod property that allow pods to tolerate certain node taints. Taints can be thought of as the opposite of Node affinity in that taints repel pods. Node taints are automatically applied by Kubernetes in response to node resources coming under contention. As Ondat provides storage to pods it should not be evicted during periods of resource contention, as any pods using Ondat volumes on the same node would need to be restarted.

As Ondat runs as a daemonset some Kubernetes tolerations are added by Kubernetes while others are automatically added by the Ondat operator.

For more information about tolerations, see the Kubernetes documentation.

tolerations:
# The unreachable and not-ready tolerations are added by Kubernetes to daemonsets automatically
- key: "node.kubernetes.io/unreachable"
  operator: "Exists"
  effect: "NoExecute"
- key: "node.kubernetes.io/not-ready"
  operator: "Exists"
  effect: "NoExecute"

# The following tolerations are added to the Ondat daemonset by the Ondat operator
- key: node.kubernetes.io/disk-pressure
  operator: Exists
- key: node.kubernetes.io/memory-pressure
  operator: Exists
- key: node.kubernetes.io/network-unavailable
  operator: Exists
- key: node.kubernetes.io/out-of-disk
  operator: Exists
- key: node.kubernetes.io/pid-pressure
  operator: Exists
- key: node.kubernetes.io/unschedulable
  operator: Exists

Adding Custom Tolerations

To add custom tolerations to the Ondat daemonset configure them in the StorageOSCluster resource.