Bird
Raised Fist0
Kubernetesdevops~20 mins

Limit ranges for defaults in Kubernetes - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
LimitRange Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
1:30remaining
Default CPU limit from LimitRange
Given this LimitRange YAML applied in a namespace, what is the default CPU limit for a pod container without explicit limits?
Kubernetes
apiVersion: v1
kind: LimitRange
metadata:
  name: cpu-limit-range
spec:
  limits:
  - default:
      cpu: 500m
    defaultRequest:
      cpu: 250m
    type: Container
A500m
B250m
CNo default CPU limit is set
D1000m
Attempts:
2 left
💡 Hint
Look at the 'default' field under 'limits' for CPU.
❓ Configuration
intermediate
2:00remaining
Set default memory request and limit
Which YAML snippet correctly sets a default memory request of 128Mi and a default memory limit of 256Mi for containers in a namespace?
A
apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limits
spec:
  limits:
  - default:
      memory: 128Mi
    defaultRequest:
      memory: 256Mi
    type: Container
B
apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limits
spec:
  limits:
  - default:
      memory: 256Mi
    defaultRequest:
      memory: 128Mi
    type: Pod
C
apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limits
spec:
  limits:
  - defaultRequest:
      memory: 256Mi
    default:
      memory: 128Mi
    type: Container
D
apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limits
spec:
  limits:
  - defaultRequest:
      memory: 128Mi
    default:
      memory: 256Mi
    type: Container
Attempts:
2 left
💡 Hint
Remember defaultRequest is the minimum guaranteed, default is the max limit.
❓ Troubleshoot
advanced
2:30remaining
Pod creation fails due to LimitRange defaults
A pod without resource limits fails to create in a namespace with this LimitRange: apiVersion: v1 kind: LimitRange metadata: name: limit-range spec: limits: - default: cpu: 200m memory: 256Mi max: cpu: 100m memory: 128Mi type: Container What is the reason for the failure?
AThe default max CPU and memory exceed the max allowed, causing a conflict.
BThe pod lacks explicit resource requests, which are mandatory despite defaults.
CThe LimitRange type should be 'Pod' not 'Container'.
DThe default values are lower than the minimum required, causing rejection.
Attempts:
2 left
💡 Hint
Check if default values are within max limits.
🔀 Workflow
advanced
2:00remaining
Applying LimitRange to enforce defaults
You want to enforce default CPU and memory limits on all containers in a namespace without requiring users to specify them. Which workflow step is correct?
AModify the pod spec to include default resource limits in the cluster configuration file.
BCreate a LimitRange with 'default' values for CPU and memory, then apply it to the namespace with kubectl apply.
CUse a PodSecurityPolicy to enforce default CPU and memory limits.
DSet resource quotas with default CPU and memory limits in the namespace.
Attempts:
2 left
💡 Hint
LimitRange is designed to set default resource limits.
✅ Best Practice
expert
3:00remaining
Best practice for setting LimitRange defaults
Which is the best practice when setting default resource limits in a LimitRange to avoid pod failures and resource starvation?
ASet default limits very high to avoid pod failures due to limit exceeded errors.
BSet default requests equal to default limits to prevent any resource bursting.
CSet default requests lower than expected usage and default limits slightly above typical usage to allow burst.
DDo not set default requests or limits; let users specify all resource values explicitly.
Attempts:
2 left
💡 Hint
Think about balancing resource guarantees and flexibility.

Practice

(1/5)
1. What is the main purpose of a LimitRange in a Kubernetes namespace?
easy
A. To schedule pods on specific nodes
B. To set default and maximum resource limits for containers in that namespace
C. To create network policies for pods
D. To manage persistent storage volumes

Solution

  1. Step 1: Understand LimitRange role

    A LimitRange defines default, minimum, and maximum resource limits for containers in a namespace.
  2. Step 2: Compare with other options

    Network policies, scheduling, and storage are managed by other Kubernetes resources, not LimitRange.
  3. Final Answer:

    To set default and maximum resource limits for containers in that namespace -> Option B
  4. Quick Check:

    LimitRange controls resource limits = C [OK]
Hint: LimitRange controls resource limits, not networking or storage [OK]
Common Mistakes:
  • Confusing LimitRange with NetworkPolicy
  • Thinking LimitRange schedules pods
  • Assuming LimitRange manages storage
2. Which of the following is the correct YAML snippet to set a default CPU request of 100m using a LimitRange?
easy
A. apiVersion: v1\nkind: LimitRange\nmetadata:\n name: cpu-default\nspec:\n limits:\n - default:\n cpu: 100m\n type: Container
B. apiVersion: v1\nkind: LimitRange\nmetadata:\n name: cpu-default\nspec:\n limits:\n - defaultRequest:\n cpu: 100m\n type: Container
C. apiVersion: v1\nkind: LimitRange\nmetadata:\n name: cpu-default\nspec:\n limits:\n - defaultLimit:\n cpu: 100m\n type: Container
D. apiVersion: v1\nkind: LimitRange\nmetadata:\n name: cpu-default\nspec:\n limits:\n - defaultCpu:\n cpu: 100m\n type: Container

Solution

  1. Step 1: Check LimitRange syntax for default

    The correct key to set default resource requests or limits is default under limits.
  2. Step 2: Validate the YAML snippet

    apiVersion: v1\nkind: LimitRange\nmetadata:\n name: cpu-default\nspec:\n limits:\n - default:\n cpu: 100m\n type: Container uses default: with cpu: 100m correctly under limits and type: Container.
  3. Final Answer:

    Option A is the correct YAML snippet -> Option A
  4. Quick Check:

    Use default key for defaults in LimitRange [OK]
Hint: Use 'default' key under limits to set default resources [OK]
Common Mistakes:
  • Using incorrect keys like defaultRequest or defaultLimit
  • Misplacing keys outside limits array
  • Wrong indentation in YAML
3. Given this LimitRange YAML applied in a namespace:
apiVersion: v1
kind: LimitRange
metadata:
  name: mem-default
spec:
  limits:
  - default:
      memory: 256Mi
    type: Container

What will be the memory request for a container without any memory request specified?
medium
A. No memory request will be set
B. Pod creation will fail due to missing memory request
C. Memory request will be unlimited
D. 256Mi memory request will be applied by default

Solution

  1. Step 1: Understand default in LimitRange

    The default memory value sets the memory request if the container does not specify one.
  2. Step 2: Apply to container without memory request

    Since the container has no memory request, Kubernetes applies the default 256Mi memory request from LimitRange.
  3. Final Answer:

    256Mi memory request will be applied by default -> Option D
  4. Quick Check:

    Default resource applies if container omits it [OK]
Hint: Default applies only if container omits resource request [OK]
Common Mistakes:
  • Assuming no default means no request
  • Thinking pod creation fails without explicit request
  • Confusing default with max or min limits
4. You applied this LimitRange YAML:
apiVersion: v1
kind: LimitRange
metadata:
  name: cpu-limit
spec:
  limits:
  - max:
      cpu: 500m
    type: Container

Your pod container requests 600m CPU. What will happen?
medium
A. Pod will be created with 600m CPU request
B. Pod will ignore LimitRange and use 600m CPU
C. Pod creation will fail due to exceeding max CPU limit
D. Pod CPU request will be automatically reduced to 500m

Solution

  1. Step 1: Understand max limit enforcement

    LimitRange max limits set the maximum allowed resource request or limit for containers.
  2. Step 2: Check pod CPU request against max

    The pod requests 600m CPU, which exceeds the max 500m CPU set by LimitRange.
  3. Step 3: Kubernetes behavior on violation

    Kubernetes rejects pod creation if resource requests exceed LimitRange max limits.
  4. Final Answer:

    Pod creation will fail due to exceeding max CPU limit -> Option C
  5. Quick Check:

    Exceeding max limit causes pod creation failure [OK]
Hint: Requests above max limit cause pod creation failure [OK]
Common Mistakes:
  • Assuming Kubernetes auto-adjusts resource requests
  • Thinking pod ignores LimitRange max limits
  • Confusing max limit with default value
5. You want all containers in a namespace to have a default CPU request of 200m and a default memory request of 512Mi, but also want to ensure no container can request more than 1 CPU or 1Gi memory. Which LimitRange YAML snippet correctly enforces this?
hard
A. apiVersion: v1\nkind: LimitRange\nmetadata:\n name: resource-limits\nspec:\n limits:\n - default:\n cpu: 200m\n memory: 512Mi\n max:\n cpu: 1\n memory: 1Gi\n type: Container
B. apiVersion: v1\nkind: LimitRange\nmetadata:\n name: resource-limits\nspec:\n limits:\n - defaultRequest:\n cpu: 200m\n memory: 512Mi\n maxLimit:\n cpu: 1\n memory: 1Gi\n type: Container
C. apiVersion: v1\nkind: LimitRange\nmetadata:\n name: resource-limits\nspec:\n limits:\n - defaultCpu:\n cpu: 200m\n memory: 512Mi\n maxCpu:\n cpu: 1\n memory: 1Gi\n type: Container
D. apiVersion: v1\nkind: LimitRange\nmetadata:\n name: resource-limits\nspec:\n limits:\n - default:\n cpu: 200m\n memory: 512Mi\n maxRequest:\n cpu: 1\n memory: 1Gi\n type: Container

Solution

  1. Step 1: Identify correct keys for defaults and max

    The correct keys are default for default requests and max for maximum allowed resources under limits.
  2. Step 2: Validate YAML structure

    apiVersion: v1\nkind: LimitRange\nmetadata:\n name: resource-limits\nspec:\n limits:\n - default:\n cpu: 200m\n memory: 512Mi\n max:\n cpu: 1\n memory: 1Gi\n type: Container correctly uses default and max keys with proper resource names and type: Container.
  3. Step 3: Check other options for invalid keys

    Options B, C, and D use invalid keys like defaultRequest, maxLimit, defaultCpu, or maxRequest which are not valid in LimitRange spec.
  4. Final Answer:

    Option A correctly enforces default and max resource limits -> Option A
  5. Quick Check:

    Use 'default' and 'max' keys for defaults and max limits [OK]
Hint: Use 'default' and 'max' keys under limits for defaults and max limits [OK]
Common Mistakes:
  • Using invalid keys like defaultRequest or maxLimit
  • Mixing up default and max keys
  • Incorrect YAML indentation or structure
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