KubeDaemonSetMisScheduled #
Meaning #
A number of pods of daemonset are running where they are not supposed to run.
Impact #
Service degradation or unavailability. Excessive resource usage where they could be used by other apps.
Diagnosis #
Usually happens when specifying wrong pod nodeSelector/taints/affinities or node (node pools) were tainted and existing pods were not scheduled for eviction.
- Check daemonset status via
kubectl -n $NAMESPACE describe daemonset $NAME
. - Check DaemonSet update strategy
- Check the status of the pods which belong to the replica sets under the deployment.
- Check pod template parameters such as:
- pod priority - maybe it was evicted by other more important pods
- affinity rules - maybe due to affinities and not enough nodes it is not possible to schedule pods
- Check node taints and labels
- Check logs for node-feature-discovery and other supporting tools such as gpu-feature-discovery
Mitigation #
Update DaemonSet and apply change, delete pods manually.