Bird
Raised Fist0
Kubernetesdevops~20 mins

Resource monitoring best practices in Kubernetes - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Resource Monitoring Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding Kubernetes Resource Requests and Limits

In Kubernetes, what is the primary purpose of setting resource requests and limits for containers?

ATo define the exact amount of CPU and memory a container must always use during its lifetime.
BTo allow containers to use unlimited resources without restrictions.
CTo specify the minimum and maximum CPU and memory a container can use, helping the scheduler place pods and prevent resource overuse.
DTo automatically scale the number of pods based on resource usage.
Attempts:
2 left
💡 Hint

Think about how Kubernetes decides where to put pods and how it avoids one pod using too much resource.

💻 Command Output
intermediate
2:00remaining
Interpreting kubectl top pod Output

What is the output of the following command if the pod web-server-1 is using 150m CPU and 200Mi memory?

kubectl top pod web-server-1
A
NAME           CPU(cores)   MEMORY(bytes)
web-server-1   150m         200Mi
Bweb-server-1 150 200
C
NAME           CPU(cores)   MEMORY(bytes)
web-server-1   0.15         0.2
DError: pod web-server-1 not found
Attempts:
2 left
💡 Hint

Look at the units kubectl top uses for CPU and memory.

🔀 Workflow
advanced
3:00remaining
Setting Up Prometheus for Kubernetes Monitoring

Which sequence of steps correctly describes setting up Prometheus to monitor Kubernetes cluster metrics?

A1,2,3,4
B1,3,2,4
C2,1,3,4
D1,2,4,3
Attempts:
2 left
💡 Hint

Think about deploying the operator first, then defining what to monitor, then configuring Prometheus, and finally viewing metrics.

Troubleshoot
advanced
2:00remaining
Troubleshooting Missing Metrics in Kubernetes Monitoring

You installed Prometheus in your Kubernetes cluster, but no metrics appear for your application pods. Which is the most likely cause?

AThe Prometheus Operator is running but Prometheus is not installed.
BThe ServiceMonitor resource is missing or incorrectly configured for the application pods.
CThe Kubernetes API server is down.
DThe application pods are using too much CPU and memory.
Attempts:
2 left
💡 Hint

Think about how Prometheus knows which pods to monitor.

Best Practice
expert
2:30remaining
Best Practice for Alerting on Resource Usage in Kubernetes

What is the best practice for setting alerts on CPU and memory usage in a Kubernetes cluster to avoid false alarms?

ASet alerts only on maximum resource limits defined in pod specs.
BSet very low thresholds to catch any small increase in resource usage immediately.
CDisable alerts and rely on manual checks to avoid false alarms.
DSet alert thresholds based on historical usage patterns and include a duration to avoid firing alerts on short spikes.
Attempts:
2 left
💡 Hint

Think about how to balance alert sensitivity and noise.

Practice

(1/5)
1. Why is it important to set resource requests and limits in Kubernetes pods?
easy
A. To ensure pods get the resources they need and prevent resource conflicts
B. To make pods run slower and use more CPU
C. To disable monitoring tools automatically
D. To allow unlimited resource usage without restrictions

Solution

  1. Step 1: Understand resource requests and limits

    Resource requests define the minimum resources a pod needs, and limits set the maximum it can use.
  2. Step 2: Recognize the effect on cluster stability

    Setting these prevents pods from using too many resources and causing conflicts or crashes.
  3. Final Answer:

    To ensure pods get the resources they need and prevent resource conflicts -> Option A
  4. Quick Check:

    Resource requests and limits = prevent conflicts [OK]
Hint: Requests = minimum, limits = maximum resources [OK]
Common Mistakes:
  • Thinking limits slow down pods intentionally
  • Believing requests disable monitoring
  • Assuming unlimited usage is safe
2. Which command correctly shows current CPU and memory usage of pods in Kubernetes?
easy
A. kubectl monitor pods
B. kubectl get pods --usage
C. kubectl top pods
D. kubectl describe pods --metrics

Solution

  1. Step 1: Identify the command for resource usage

    The kubectl top pods command shows CPU and memory usage of pods.
  2. Step 2: Check other options for correctness

    Other commands are invalid or do not show usage metrics.
  3. Final Answer:

    kubectl top pods -> Option C
  4. Quick Check:

    Usage command = kubectl top pods [OK]
Hint: Use 'kubectl top pods' to see pod resource usage [OK]
Common Mistakes:
  • Using 'kubectl get pods --usage' which is invalid
  • Confusing 'describe' with usage metrics
  • Assuming 'kubectl monitor' is a valid command
3. Given this command output:
NAME          CPU(cores)   MEMORY(bytes)
myapp-pod-1   150m         200Mi
myapp-pod-2   300m         400Mi

What is the total CPU usage of both pods?
medium
A. 300m
B. 450m
C. 150m
D. 600m

Solution

  1. Step 1: Add CPU usage values from both pods

    150m + 300m = 450m CPU cores.
  2. Step 2: Confirm units and sum

    Both values are in millicores (m), so sum is 450m.
  3. Final Answer:

    450m -> Option B
  4. Quick Check:

    150m + 300m = 450m [OK]
Hint: Add CPU millicores values directly [OK]
Common Mistakes:
  • Adding memory values instead of CPU
  • Confusing 450m with 600m
  • Ignoring units and summing incorrectly
4. You set resource limits on a pod, but kubectl top pods shows usage exceeding those limits. What is the likely cause?
medium
A. The pod has no resource requests set
B. The pod is using burstable QoS and can exceed limits temporarily
C. Resource limits are not enforced by Kubernetes by default
D. The metrics server is not installed or reporting incorrect data

Solution

  1. Step 1: Understand resource limits enforcement

    Kubernetes enforces limits strictly; pods cannot exceed set limits.
  2. Step 2: Consider metrics server role

    If usage shows above limits, metrics server may be missing or reporting wrong data.
  3. Final Answer:

    The metrics server is not installed or reporting incorrect data -> Option D
  4. Quick Check:

    Incorrect metrics = wrong usage shown [OK]
Hint: Check metrics server if usage exceeds limits [OK]
Common Mistakes:
  • Thinking Kubernetes allows exceeding limits
  • Confusing QoS classes with limit enforcement
  • Ignoring metrics server installation
5. You want to monitor resource usage trends over time for your Kubernetes cluster. Which approach is best?
hard
A. Set resource requests and limits, then use a monitoring tool like Prometheus
B. Use kubectl top repeatedly and save output manually
C. Only set resource limits without monitoring tools
D. Rely on kubectl describe to check resource usage daily

Solution

  1. Step 1: Understand monitoring needs over time

    Manual commands show current usage but not trends or history.
  2. Step 2: Use monitoring tools with resource limits

    Setting requests/limits ensures stable usage; tools like Prometheus collect and visualize trends.
  3. Final Answer:

    Set resource requests and limits, then use a monitoring tool like Prometheus -> Option A
  4. Quick Check:

    Requests + monitoring tool = best practice [OK]
Hint: Combine limits with Prometheus for trend monitoring [OK]
Common Mistakes:
  • Relying on manual commands for long-term trends
  • Skipping resource requests or limits
  • Using describe command for usage stats