Bird
Raised Fist0
Kubernetesdevops~5 mins

Memory requests and limits in Kubernetes - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a memory request in Kubernetes?
A memory request is the amount of memory a container is guaranteed to have. Kubernetes uses this to decide which node can run the container.
Click to reveal answer
beginner
What happens if a container exceeds its memory limit in Kubernetes?
If a container uses more memory than its limit, Kubernetes may terminate the container to protect the node's stability.
Click to reveal answer
intermediate
Why should you set both memory requests and limits?
Setting both helps Kubernetes schedule containers efficiently and prevents any container from using too much memory and affecting others.
Click to reveal answer
intermediate
How does Kubernetes use memory requests during scheduling?
Kubernetes checks if a node has enough free memory to meet the container's memory request before placing it there.
Click to reveal answer
beginner
What is the difference between memory request and memory limit?
Memory request is the minimum memory guaranteed to a container. Memory limit is the maximum memory the container can use before being terminated.
Click to reveal answer
What does the memory request specify in a Kubernetes pod?
AThe minimum memory guaranteed to the container
BThe maximum memory the container can use
CThe total memory of the node
DThe CPU usage limit
What happens if a container exceeds its memory limit?
AThe container is terminated by Kubernetes
BThe container is given more memory automatically
CNothing happens, it continues running
DThe node shuts down
Why is it important to set memory requests?
ATo increase network bandwidth
BTo limit CPU usage
CTo help Kubernetes schedule pods on nodes with enough memory
DTo set disk space limits
If a pod has a memory request of 500Mi and a limit of 1Gi, what does this mean?
AThe pod can only use 500Mi memory
BThe pod is guaranteed 500Mi memory and can use up to 1Gi
CThe pod must use exactly 1Gi memory
DThe pod has no memory limits
What is the risk of not setting memory limits?
AThe container will use less memory
BThe container will not start
CThe pod will be scheduled on the wrong node
DA container might use too much memory and crash the node
Explain how memory requests and limits work together in Kubernetes to manage container memory.
Think about how Kubernetes decides where to place containers and what happens if they use too much memory.
You got /4 concepts.
    Describe why setting memory requests and limits is important for a stable Kubernetes cluster.
    Consider what happens if one container uses too much memory without limits.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the memory request specify in a Kubernetes pod configuration?
      easy
      A. The total memory available on the node
      B. The maximum amount of memory the container can use
      C. The amount of memory the container has currently used
      D. The minimum amount of memory guaranteed for the container

      Solution

      1. Step 1: Understand memory request meaning

        Memory request is the minimum memory Kubernetes guarantees to a container so it can run without being killed due to lack of memory.
      2. Step 2: Differentiate from memory limit

        Memory limit is the max memory allowed, not the minimum guaranteed.
      3. Final Answer:

        The minimum amount of memory guaranteed for the container -> Option D
      4. Quick Check:

        Memory request = minimum guaranteed memory [OK]
      Hint: Requests = minimum guaranteed memory, limits = max allowed [OK]
      Common Mistakes:
      • Confusing memory request with memory limit
      • Thinking request is the max memory
      • Assuming request is current usage
      2. Which of the following is the correct way to specify memory requests and limits in a Kubernetes pod YAML?
      easy
      A. resources: requests: memory: "256Mi" limits: memory: "512Mi"
      B. resources: memory: request: 256 limit: 512
      C. memory: requests: 256Mi limits: 512Mi
      D. resources: requests: mem: 256Mi limits: mem: 512Mi

      Solution

      1. Step 1: Recall correct YAML structure for resources

        In Kubernetes, memory requests and limits are under resources.requests.memory and resources.limits.memory with values as strings including units like "Mi".
      2. Step 2: Check each option for syntax correctness

        resources: requests: memory: "256Mi" limits: memory: "512Mi" matches the correct syntax. Options A, B, and C use wrong keys or structure.
      3. Final Answer:

        resources: requests: memory: "256Mi" limits: memory: "512Mi" -> Option A
      4. Quick Check:

        Correct YAML keys and units = resources: requests: memory: "256Mi" limits: memory: "512Mi" [OK]
      Hint: Use resources.requests.memory and resources.limits.memory keys [OK]
      Common Mistakes:
      • Using wrong keys like 'mem' or 'memory' outside resources
      • Omitting quotes or units for memory values
      • Swapping 'request' and 'requests'
      3. Given this pod spec snippet:
      resources:
        requests:
          memory: "128Mi"
        limits:
          memory: "256Mi"
      What happens if the container tries to use 300Mi of memory?
      medium
      A. The container is allowed to use 300Mi without issues
      B. The container is throttled but not killed
      C. The container is killed by Kubernetes for exceeding the memory limit
      D. The container's memory usage is capped at 256Mi but continues running

      Solution

      1. Step 1: Understand memory limit enforcement

        Memory limit is the maximum memory a container can use. If it exceeds this, Kubernetes kills the container.
      2. Step 2: Apply to given values

        The limit is 256Mi. Using 300Mi exceeds this limit, so the container will be terminated.
      3. Final Answer:

        The container is killed by Kubernetes for exceeding the memory limit -> Option C
      4. Quick Check:

        Memory usage > limit = container killed [OK]
      Hint: Memory over limit kills container, not throttled [OK]
      Common Mistakes:
      • Thinking container is throttled instead of killed
      • Confusing requests with limits
      • Assuming container can burst beyond limit safely
      4. You set memory requests to 512Mi and limits to 256Mi in your pod YAML. What is the problem?
      medium
      A. Memory limits cannot be lower than 256Mi
      B. Memory requests cannot be higher than memory limits
      C. This configuration is valid and will work fine
      D. Requests and limits must be equal

      Solution

      1. Step 1: Recall relationship between requests and limits

        Memory requests must be less than or equal to memory limits. Requests are minimum guaranteed, limits are max allowed.
      2. Step 2: Analyze given values

        Requests = 512Mi, Limits = 256Mi. Requests are higher than limits, which is invalid and causes an error.
      3. Final Answer:

        Memory requests cannot be higher than memory limits -> Option B
      4. Quick Check:

        Requests ≤ Limits rule violated [OK]
      Hint: Requests must be ≤ limits, else config error [OK]
      Common Mistakes:
      • Setting requests higher than limits
      • Assuming limits can be lower than requests
      • Thinking requests and limits can be any values
      5. You want to ensure your pod always has at least 200Mi memory but never uses more than 400Mi. How should you set memory requests and limits in the pod spec?
      hard
      A. requests.memory: "200Mi" and limits.memory: "400Mi"
      B. requests.memory: "400Mi" and limits.memory: "200Mi"
      C. requests.memory: "200Mi" only, no limits
      D. limits.memory: "400Mi" only, no requests

      Solution

      1. Step 1: Identify minimum guaranteed memory

        Minimum memory guaranteed is set by requests.memory, so set it to 200Mi.
      2. Step 2: Identify maximum allowed memory

        Maximum memory allowed is set by limits.memory, so set it to 400Mi.
      3. Step 3: Verify correct order

        Requests must be ≤ limits, so 200Mi ≤ 400Mi is valid.
      4. Final Answer:

        requests.memory: "200Mi" and limits.memory: "400Mi" -> Option A
      5. Quick Check:

        Requests = 200Mi, Limits = 400Mi [OK]
      Hint: Requests = min guaranteed, limits = max allowed [OK]
      Common Mistakes:
      • Swapping requests and limits values
      • Setting only requests or only limits
      • Setting requests higher than limits
      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