Kubernetes deployment without resources requests/limits

6/22/2020

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
kubernetes
kubernetes-deployment
kubernetes-helm

1 Answer

6/22/2020

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
Source: StackOverflow