Pods & Nodes constraints can make the scheduling job challengin. When there is no node for a pod to run on, the pod fails with a FailedScheduling which causes a negative impact, espcially during scaling and rollout of a new version.
- During scale up, many pods spawn to support the load, however if there are no available nodes in the cluster, the users will not be served.
- An applicaiton pod requests a large amount of memory, which is unavailable, causing rollout to fail.
Komodor detects anytime a pod is failed to schedule and creates an event with a clear explanation for why it's failed to schedule?
Komodor shows the failed deploy events on the timeline:
For each deploy events you have the full information about the deploy:
Note: This pod requires 500Gi of memory, please makes sure your autoascaler doesn't allow this size of nodes.
-
Apply an healthy deployment:
kubectl apply -f https://raw.githubusercontent.com/komodorio/komodor-tutorials/master/failure-scenarios/failed-to-schedule-pods/healthy-deploy.yaml
-
Apply failed-scheduling.yaml
kubectl apply -f https://raw.githubusercontent.com/komodorio/komodor-tutorials/master/failure-scenarios/failed-to-schedule-pods/failed-scheduling.yaml
It takes at least 10 minutes for Kubernetes to mark this deploy as failed.
-
Go to the relevant service in Komodor and click on the deploy event created.