2

How does Kubernetes schedule deployments that don't define memory or cpu request/limit?

i.e. spec.containers[].resources is missing from the deployment.

When calling kubectl describe node node_name on a node running such pod the resources section displays the following:

Name       CPU Requests CPU Limits  Memory Requests  Memory Limits
Pod_Name       0 (0%)      0 (0%)       0 (0%)         0 (0%)

What does it mean?

I couldn't find any documentation.

Some Helm chart default configuration are missing the resources section and I don't know what is the effect.

glerman
  • 103
  • 1
  • 5

1 Answers1

4

If a container requests a resource, Kubernetes will only schedule it on a node that can give it that resource. Limits, on the other hand, make sure a container never goes above a certain value. The container is only allowed to go up to the limit, and then it is restricted.

Without any mention of requests and limits a pod can get scheduled to a node which does not have resources to satisfy's the pods need and the pod can get killed when no more resource is available in the node.

The output is showing 0 because there is no requests and limits in the deployment yaml.

Arghya Sadhu
  • 41,002
  • 9
  • 78
  • 107