Bird
Raised Fist0
Kubernetesdevops~5 mins

Cost optimization 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 cost optimization in Kubernetes?
To reduce cloud and infrastructure expenses by efficiently using resources like CPU, memory, and storage while maintaining application performance.
Click to reveal answer
beginner
How do resource requests and limits help in cost optimization?
They define the minimum and maximum CPU and memory a container can use, preventing over-provisioning and resource waste.
Click to reveal answer
intermediate
What is the role of the Kubernetes Horizontal Pod Autoscaler (HPA) in cost optimization?
HPA automatically adjusts the number of pod replicas based on CPU or custom metrics, ensuring you only use the resources needed.
Click to reveal answer
intermediate
Why is using Spot Instances or Preemptible VMs beneficial for Kubernetes cost optimization?
They offer cheaper compute capacity but can be interrupted, so they are good for fault-tolerant workloads to save costs.
Click to reveal answer
intermediate
What is the benefit of using namespaces and resource quotas in Kubernetes for cost control?
Namespaces isolate resources and resource quotas limit how much CPU and memory each namespace can use, preventing one team from overspending.
Click to reveal answer
Which Kubernetes feature helps automatically scale pods based on CPU usage?
AHorizontal Pod Autoscaler
BNode Affinity
CPersistent Volume Claim
DConfigMap
What happens if you set resource limits too high for your pods?
AKubernetes ignores the limits
BPods crash immediately
CPods run faster
DYou waste resources and increase costs
Why use Spot Instances in Kubernetes clusters?
AThey guarantee 100% uptime
BThey are cheaper but can be interrupted
CThey increase CPU speed
DThey provide unlimited storage
What is a resource quota in Kubernetes?
AA storage volume
BA type of pod
CA limit on resources a namespace can use
DA network policy
Which practice helps reduce idle nodes in a Kubernetes cluster?
ACluster autoscaling
BUsing ConfigMaps
CSetting pod labels
DCreating namespaces
Explain how resource requests and limits contribute to cost optimization in Kubernetes.
Think about how setting boundaries on resource use can save money.
You got /5 concepts.
    Describe the benefits and risks of using Spot Instances or Preemptible VMs in Kubernetes clusters for cost savings.
    Consider the trade-off between cost and reliability.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of setting resource requests and limits on Kubernetes pods for cost optimization?
      easy
      A. To disable autoscaling features in the cluster
      B. To control how much CPU and memory a pod can use, preventing waste
      C. To increase the number of pods running simultaneously
      D. To allow pods to use unlimited resources

      Solution

      1. Step 1: Understand resource requests and limits

        Requests define minimum resources a pod needs; limits set maximum usage.
      2. Step 2: Link resource control to cost optimization

        By setting these, Kubernetes schedules pods efficiently and avoids resource waste.
      3. Final Answer:

        To control how much CPU and memory a pod can use, preventing waste -> Option B
      4. Quick Check:

        Resource limits prevent waste = C [OK]
      Hint: Requests and limits control pod resource use to save costs [OK]
      Common Mistakes:
      • Thinking limits increase pod count
      • Confusing requests with autoscaling
      • Assuming unlimited resources save money
      2. Which of the following is the correct YAML snippet to set a CPU request of 500m and a memory limit of 256Mi for a container in Kubernetes?
      easy
      A. resources:\n requests:\n cpu: '500m'\n limits:\n memory: '256Mi'
      B. resources:\n limits:\n cpu: '500m'\n requests:\n memory: '256Mi'
      C. resources:\n requests:\n cpu: 500\n memory: 256
      D. resources:\n requests:\n cpu: '0.5'\n limits:\n memory: '256MB'

      Solution

      1. Step 1: Check correct YAML structure for resources

        Requests and limits must be under resources, with proper indentation and units.
      2. Step 2: Validate units and order

        CPU request '500m' means 0.5 CPU; memory limit '256Mi' is correct unit. resources:\n requests:\n cpu: '500m'\n limits:\n memory: '256Mi' matches this.
      3. Final Answer:

        resources:\n requests:\n cpu: '500m'\n limits:\n memory: '256Mi' -> Option A
      4. Quick Check:

        Correct YAML with proper units = B [OK]
      Hint: Requests before limits, use 'm' for CPU and 'Mi' for memory [OK]
      Common Mistakes:
      • Swapping requests and limits
      • Using wrong units like 'MB' instead of 'Mi'
      • Omitting quotes around values
      3. Given this Horizontal Pod Autoscaler (HPA) YAML snippet:
      apiVersion: autoscaling/v2
      kind: HorizontalPodAutoscaler
      metadata:
      name: web-app-hpa
      spec:
      scaleTargetRef:
      apiVersion: apps/v1
      kind: Deployment
      name: web-app
      minReplicas: 2
      maxReplicas: 5
      metrics:
      - type: Resource
      resource:
      name: cpu
      target:
      type: Utilization
      averageUtilization: 50

      What happens when CPU usage exceeds 50%?
      medium
      A. Pods restart automatically
      B. The number of pods decreases to 2 to save cost
      C. The number of pods increases up to 5 to handle load
      D. CPU limits are increased automatically

      Solution

      1. Step 1: Understand HPA behavior with CPU utilization

        HPA increases pod count when average CPU usage exceeds target utilization (50%).
      2. Step 2: Check min and max replicas

        Pods scale between 2 and 5 replicas based on load; exceeding 50% triggers scaling up.
      3. Final Answer:

        The number of pods increases up to 5 to handle load -> Option C
      4. Quick Check:

        CPU > 50% triggers scale up = A [OK]
      Hint: HPA scales pods up when CPU usage exceeds target [OK]
      Common Mistakes:
      • Thinking pods scale down on high CPU
      • Assuming pods restart on high CPU
      • Believing CPU limits auto-increase
      4. You notice your Kubernetes cluster is overspending because pods are not scaling down after load decreases. Which is the most likely cause?
      medium
      A. CPU requests are set higher than limits
      B. Resource limits are set too low
      C. Pods have no readinessProbe configured
      D. The Horizontal Pod Autoscaler has a high minReplicas value

      Solution

      1. Step 1: Analyze autoscaling parameters

        A high minReplicas prevents scaling below that number, causing overspending.
      2. Step 2: Evaluate other options

        Low limits or readiness probes don't directly prevent scaling down; CPU requests > limits is invalid.
      3. Final Answer:

        The Horizontal Pod Autoscaler has a high minReplicas value -> Option D
      4. Quick Check:

        High minReplicas blocks scale down = A [OK]
      Hint: Check minReplicas to allow scaling down [OK]
      Common Mistakes:
      • Confusing limits with requests
      • Ignoring minReplicas effect
      • Assuming readinessProbe affects scaling
      5. You want to optimize costs by automatically scaling your Kubernetes cluster nodes based on pod resource usage. Which combination of tools and settings should you use?
      hard
      A. Cluster Autoscaler with properly set pod resource requests and limits
      B. Manual node scaling with no pod resource limits
      C. Disable Horizontal Pod Autoscaler and increase node count permanently
      D. Set pod resource limits to zero and rely on node autoscaling

      Solution

      1. Step 1: Understand cluster autoscaling

        Cluster Autoscaler adjusts node count based on pod scheduling needs and resource requests.
      2. Step 2: Importance of pod resource requests and limits

        Proper requests and limits let the autoscaler know actual resource needs to scale nodes efficiently.
      3. Step 3: Evaluate other options

        Manual scaling wastes resources; disabling HPA or zero limits causes inefficiency or errors.
      4. Final Answer:

        Cluster Autoscaler with properly set pod resource requests and limits -> Option A
      5. Quick Check:

        Autoscaler + resource requests = cost savings [OK]
      Hint: Use Cluster Autoscaler plus pod requests/limits for best cost control [OK]
      Common Mistakes:
      • Relying on manual scaling only
      • Disabling autoscaling features
      • Setting resource limits to zero