Bird
Raised Fist0
Kubernetesdevops~5 mins

Limit ranges for defaults in Kubernetes - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a LimitRange in Kubernetes?
A LimitRange is a Kubernetes resource that sets default resource limits and requests for containers in a namespace. It helps control how much CPU and memory each container can use.
Click to reveal answer
beginner
How does a LimitRange set default resource limits?
A LimitRange can specify default CPU and memory limits and requests. If a container does not specify these, Kubernetes applies the defaults from the LimitRange automatically.
Click to reveal answer
intermediate
What happens if a container requests resources outside the LimitRange?
If a container requests resources less than the minimum or more than the maximum defined in the LimitRange, Kubernetes rejects the pod creation with an error.
Click to reveal answer
intermediate
Example YAML snippet to set default CPU and memory limits using LimitRange?
apiVersion: v1 kind: LimitRange metadata: name: default-limits spec: limits: - default: cpu: 500m memory: 256Mi defaultRequest: cpu: 250m memory: 128Mi type: Container
Click to reveal answer
beginner
Why use LimitRanges for defaults in a Kubernetes namespace?
LimitRanges help ensure fair resource use, prevent resource starvation, and avoid unexpected high resource consumption by setting sensible defaults and limits for containers.
Click to reveal answer
What does a LimitRange resource in Kubernetes do?
ASets default and max resource limits for containers in a namespace
BManages network policies for pods
CSchedules pods to nodes
DStores container images
If a container does not specify resource requests, what happens when a LimitRange with defaults exists?
AThe container runs without any resource limits
BThe pod is rejected
CKubernetes applies the default resource requests and limits from the LimitRange
DThe pod is scheduled to a random node
What happens if a container requests more CPU than the maximum in the LimitRange?
AKubernetes ignores the request and schedules the pod
BThe pod is scheduled but marked as pending
CThe container is throttled after starting
DPod creation is rejected with an error
Which type field is used in LimitRange to set defaults for containers?
APod
BContainer
CNode
DNamespace
Why is it important to set default resource limits in Kubernetes?
ATo prevent resource overuse and ensure fair sharing
BTo speed up pod scheduling
CTo increase network bandwidth
DTo store logs efficiently
Explain what a LimitRange is and how it helps manage resources in a Kubernetes namespace.
Think about how Kubernetes controls CPU and memory usage for containers.
You got /4 concepts.
    Describe what happens when a container's resource requests do not match the limits set by a LimitRange.
    Consider Kubernetes behavior when resource requests are outside allowed ranges.
    You got /4 concepts.

      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