Bird
Raised Fist0
Kubernetesdevops~10 mins

Resource quotas per namespace in Kubernetes - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a resource quota named mem-quota in the dev namespace.

Kubernetes
kubectl create quota mem-quota --hard=[1] --namespace=dev
Drag options to blanks, or click blank then click option'
Amemory=1Gi
Bcpu=2
Cpods=5
Dstorage=10Gi
Attempts:
3 left
💡 Hint
Common Mistakes
Using CPU or pod limits instead of memory for this quota.
Omitting the namespace flag.
2fill in blank
medium

Complete the YAML snippet to define a resource quota limiting pods to 10 in the test namespace.

Kubernetes
apiVersion: v1
kind: ResourceQuota
metadata:
  name: pod-quota
  namespace: test
spec:
  hard:
    pods: [1]
Drag options to blanks, or click blank then click option'
A5
B10
C15
D20
Attempts:
3 left
💡 Hint
Common Mistakes
Setting the value too low or too high.
Confusing pod count with CPU or memory limits.
3fill in blank
hard

Fix the error in this command to apply a resource quota YAML file named quota.yaml to the prod namespace.

Kubernetes
kubectl apply -f [1] --namespace=prod
Drag options to blanks, or click blank then click option'
Aquota.json
Bquota.yml
Cquota.yaml
Dquota.txt
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong file extensions like .json or .txt.
Misspelling the file name.
4fill in blank
hard

Fill both blanks to create a resource quota YAML that limits CPU to 2 cores and memory to 4Gi in the staging namespace.

Kubernetes
apiVersion: v1
kind: ResourceQuota
metadata:
  name: cpu-mem-quota
  namespace: staging
spec:
  hard:
    cpu: [1]
    memory: [2]
Drag options to blanks, or click blank then click option'
A2
B4Gi
C1Gi
D3
Attempts:
3 left
💡 Hint
Common Mistakes
Using units for CPU like '2Gi'.
Setting memory without units.
5fill in blank
hard

Fill all three blanks to create a resource quota YAML that limits pods to 3, CPU to 1, and memory to 2Gi in the qa namespace.

Kubernetes
apiVersion: v1
kind: ResourceQuota
metadata:
  name: qa-quota
  namespace: qa
spec:
  hard:
    pods: [1]
    cpu: [2]
    memory: [3]
Drag options to blanks, or click blank then click option'
A3
B1
C2Gi
D4
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up the order of values.
Forgetting units for memory.

Practice

(1/5)
1. What is the main purpose of a ResourceQuota in a Kubernetes namespace?
easy
A. To limit the amount of resources like CPU and memory used in that namespace
B. To increase the CPU speed of all pods in the namespace
C. To delete unused pods automatically
D. To backup data stored in the namespace

Solution

  1. Step 1: Understand ResourceQuota purpose

    A ResourceQuota sets limits on resource usage like CPU, memory, pods, and storage within a namespace.
  2. Step 2: Compare options with purpose

    Only To limit the amount of resources like CPU and memory used in that namespace correctly describes limiting resource usage. Other options describe unrelated actions.
  3. Final Answer:

    To limit the amount of resources like CPU and memory used in that namespace -> Option A
  4. Quick Check:

    ResourceQuota limits resources = D [OK]
Hint: ResourceQuota controls resource limits per namespace [OK]
Common Mistakes:
  • Thinking ResourceQuota speeds up pods
  • Confusing quotas with backups
  • Assuming quotas delete pods automatically
2. Which of the following is the correct YAML snippet to define a CPU limit of 2 cores in a ResourceQuota?
easy
A. hard: limits.cpu: "2"
B. resources: limits: cpu: "2"
C. hard: cpu: "2"
D. hard: limits.cpu: 2

Solution

  1. Step 1: Recall ResourceQuota syntax for limits

    ResourceQuota uses the hard field with resource names like limits.cpu as keys and string values.
  2. Step 2: Check each option's syntax

    hard: limits.cpu: "2" correctly uses hard: with limits.cpu: "2". resources: limits: cpu: "2" uses wrong keys, C misses limits., D uses number instead of string.
  3. Final Answer:

    hard: limits.cpu: "2" -> Option A
  4. Quick Check:

    ResourceQuota hard limits use string values with resource keys [OK]
Hint: ResourceQuota limits use 'hard' with string values [OK]
Common Mistakes:
  • Using numeric values instead of strings
  • Omitting 'limits.' prefix in resource keys
  • Placing limits under wrong YAML keys
3. Given this ResourceQuota YAML applied to namespace dev:
apiVersion: v1
kind: ResourceQuota
metadata:
  name: dev-quota
  namespace: dev
spec:
  hard:
    pods: "3"
    requests.cpu: "1"
    requests.memory: "1Gi"
What happens if you try to create a 4th pod in dev namespace?
medium
A. The pod will be created normally without any error
B. The pod will be created but with limited CPU
C. The pod creation will fail due to exceeding the pod count quota
D. The pod will be created but memory will be limited to 1Gi

Solution

  1. Step 1: Understand pod count limit in ResourceQuota

    The quota limits pods to 3 in the dev namespace.
  2. Step 2: Effect of creating 4th pod

    Creating a 4th pod exceeds the pod count quota, so Kubernetes rejects the creation with an error.
  3. Final Answer:

    The pod creation will fail due to exceeding the pod count quota -> Option C
  4. Quick Check:

    Pod count quota exceeded = creation fails [OK]
Hint: Pod count quota blocks pods beyond limit [OK]
Common Mistakes:
  • Assuming pod is created with limited resources
  • Thinking quota only warns but allows creation
  • Confusing CPU/memory limits with pod count
4. You applied this ResourceQuota YAML but it fails to create:
apiVersion: v1
kind: ResourceQuota
metadata:
  name: test-quota
  namespace: test
spec:
  hard:
    cpu: "2"
    memory: "4Gi"
What is the likely error?
medium
A. Missing 'apiVersion' field
B. Namespace 'test' does not exist
C. Values should be numbers, not strings
D. Resource keys 'cpu' and 'memory' are invalid; should use 'limits.cpu' and 'limits.memory'

Solution

  1. Step 1: Check resource keys in ResourceQuota

    ResourceQuota requires full resource names like limits.cpu or requests.memory, not just cpu or memory.
  2. Step 2: Validate YAML fields

    API version is present, namespace existence is unrelated to syntax error, and values must be strings (which they are).
  3. Final Answer:

    Resource keys 'cpu' and 'memory' are invalid; should use 'limits.cpu' and 'limits.memory' -> Option D
  4. Quick Check:

    Use full resource keys like limits.cpu [OK]
Hint: Use full resource keys like limits.cpu in quotas [OK]
Common Mistakes:
  • Using short keys like 'cpu' instead of 'limits.cpu'
  • Assuming missing namespace causes syntax error
  • Using numeric values instead of strings
5. You want to limit a namespace to 5 pods and 2Gi memory requests, but allow unlimited CPU. Which ResourceQuota YAML snippet achieves this?
hard
A. spec: hard: pods: "5" requests.memory: "2Gi" requests.cpu: "0"
B. spec: hard: pods: "5" requests.memory: "2Gi"
C. spec: hard: pods: "5" requests.memory: "2Gi" limits.cpu: "unlimited"
D. spec: hard: pods: "5" requests.memory: "2Gi" requests.cpu: "-1"

Solution

  1. Step 1: Understand ResourceQuota limits

    To limit pods and memory requests, specify those keys under hard. Omitting CPU means no limit on CPU.
  2. Step 2: Evaluate options for CPU limits

    spec: hard: pods: "5" requests.memory: "2Gi" omits CPU limits, allowing unlimited CPU. Options A, C, D try to set CPU limits with invalid or restrictive values.
  3. Final Answer:

    spec: hard: pods: "5" requests.memory: "2Gi" -> Option B
  4. Quick Check:

    Omit CPU limit to allow unlimited CPU [OK]
Hint: Omit resource in quota to allow unlimited usage [OK]
Common Mistakes:
  • Setting CPU limit to 0 or negative disables pods
  • Using 'unlimited' as a value (not valid)
  • Trying to limit CPU when unlimited is desired
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard