Difference between "cpu" and "requests.cpu"

10/15/2019

I am trying to create a resource quota for a namespace in kubernetes. While writing the yaml file for the Resource Quota, what should I specify for the cpu requests - "cpu" or "requests.cpu" ? Also, is there any official documentation which specifies the difference between the two? I went through openshift docs which specify that both of these are same and can be used interchangeably.

-- long long int
kubernetes

2 Answers

10/15/2019

You can use the cpu form if you follow the Kubernetes documentation.

The difference between adding requests or limit before memory or cpu in quota is described here: https://kubernetes.io/docs/concepts/policy/resource-quotas/#requests-vs-limits

The final results is the same but if you use the requests or limit you will have to have each containers in pod having those specified.

-- night-gold
Source: StackOverflow

10/15/2019

requests.cpu is used for ResourceQuota which can be applied at the namespace level.

apiVersion: v1
kind: ResourceQuota
metadata:
  name: mem-cpu-demo
spec:
  hard:
    requests.cpu: "1"
    requests.memory: 1Gi
    limits.cpu: "2"
    limits.memory: 2Gi

where as cpu is applied at pod level.

apiVersion: v1
kind: Pod
metadata:
  name: quota-mem-cpu-demo
spec:
  containers:
  - name: quota-mem-cpu-demo-ctr
    image: nginx
    resources:
      limits:
        memory: "800Mi"
        cpu: "800m" 
      requests:
        memory: "600Mi"
        cpu: "400m"

for further details please refer to the below link.

https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/

-- dassum
Source: StackOverflow