Lab 12.1 - Resource Management Configuration
Lab Objectives
By the end of this lab, you will be able to:
- Understand Requests and Limits.
- Configure CPU and memory resources.
- Understand QoS (Quality of Service) classes.
- Configure Resource Quotas and Limit Ranges.
Estimated Duration
45-60 minutes
Prerequisites
- kubectl installed and configured.
- Working local Kubernetes cluster.
Part 1: Configuring Requests and Limits
Step 1.1: Create a Pod with Resources
Create pod-with-resources.yaml:
apiVersion: v1
kind: Pod
metadata:
name: resource-pod
spec:
containers:
- name: app
image: nginx:1.20
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 256Mi
Apply:
kubectl apply -f pod-with-resources.yaml
Verify:
kubectl describe pod resource-pod
Part 2: QoS Classes
Step 2.1: Understanding the Classes
Pods are classified as:
- Guaranteed: Requests = Limits for both CPU and memory.
- Burstable: At least one resource with Request < Limit.
- BestEffort: No Requests or Limits.
Test different scenarios.
Part 3: Resource Quotas
Step 3.1: Create a Resource Quota
Create resource-quota.yaml:
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-quota
namespace: default
spec:
hard:
requests.cpu: "2"
requests.memory: 4Gi
limits.cpu: "4"
limits.memory: 8Gi
pods: "10"
Apply:
kubectl apply -f resource-quota.yaml
Part 4: Limit Ranges
Step 4.1: Create a Limit Range
Create limit-range.yaml:
apiVersion: v1
kind: LimitRange
metadata:
name: mem-limit-range
namespace: default
spec:
limits:
- default:
memory: 512Mi
cpu: 500m
defaultRequest:
memory: 256Mi
cpu: 100m
type: Container
Lab Summary
In this lab, you configured resource management with Requests, Limits, Resource Quotas, and Limit Ranges.
Next Steps
The next lab will show you how to configure horizontal and vertical autoscaling.
Lab 12.2: Horizontal and Vertical Autoscaling
Lab created on: December 2024