Bird
Raised Fist0
Kubernetesdevops~5 mins

Resource monitoring best practices in Kubernetes - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is the main goal of resource monitoring in Kubernetes?
To track the usage of CPU, memory, and other resources by pods and nodes to ensure efficient operation and avoid resource exhaustion.
Click to reveal answer
beginner
Why should you set resource requests and limits for containers in Kubernetes?
Setting requests ensures the scheduler knows how much resource to reserve, and limits prevent containers from using more than allowed, protecting cluster stability.
Click to reveal answer
beginner
What tool is commonly used for monitoring Kubernetes clusters and visualizing metrics?
Prometheus is widely used to collect metrics, and Grafana is used to create dashboards for visualization.
Click to reveal answer
intermediate
How does setting resource limits help prevent the 'noisy neighbor' problem?
Limits prevent one container from consuming excessive resources, which could degrade performance for other containers sharing the same node.
Click to reveal answer
intermediate
What is the benefit of using Horizontal Pod Autoscaler (HPA) in resource monitoring?
HPA automatically adjusts the number of pod replicas based on observed CPU or custom metrics, helping maintain performance under varying loads.
Click to reveal answer
Which Kubernetes resource setting defines the guaranteed minimum CPU or memory for a container?
AResource request
BResource limit
CPod priority
DNode selector
What happens if a container exceeds its resource limit in Kubernetes?
AIt is throttled or terminated
BIt automatically scales up
CIt gets more resources from the node
DNothing, it continues running
Which tool is best suited for collecting and storing Kubernetes metrics?
AKubeadm
BPrometheus
CDocker
DHelm
What is the purpose of setting resource limits in Kubernetes pods?
ATo allow unlimited resource usage
BTo increase pod startup speed
CTo prevent resource overuse by containers
DTo define pod network policies
How does Horizontal Pod Autoscaler decide to scale pods?
ABased on manual triggers only
BBased on pod age
CBased on node count
DBased on CPU or custom metrics usage
Explain why setting resource requests and limits is important in Kubernetes resource monitoring.
Think about how Kubernetes manages resources to keep the cluster stable.
You got /4 concepts.
    Describe how Prometheus and Grafana work together in Kubernetes monitoring.
    One tool gathers data, the other shows it clearly.
    You got /4 concepts.

      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