(01)Install metrics-server (required for CPU metrics)
Linux
1kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml2kubectl get deployment metrics-server -n kube-systemAuto-scale Deployments based on CPU utilization (1–3 replicas at 50% CPU)
hpa.yml
HPA for two microservices — scales on CPU averageUtilization 50%
1apiVersion: autoscaling/v22kind: HorizontalPodAutoscaler3metadata:4 name: hpa-springapi-svc-a5spec:6 scaleTargetRef:7 apiVersion: apps/v18 kind: Deployment9 name: service-a10 minReplicas: 111 maxReplicas: 312 metrics:13 - type: Resource14 resource:15 name: cpu16 target:17 type: Utilization18 averageUtilization: 5019---20apiVersion: autoscaling/v221kind: HorizontalPodAutoscaler22metadata:23 name: hpa-springapi-svc-b24spec:25 scaleTargetRef:26 apiVersion: apps/v127 kind: Deployment28 name: service-b29 minReplicas: 130 maxReplicas: 331 metrics:32 - type: Resource33 resource:34 name: cpu35 target:36 type: Utilization37 averageUtilization: 50Step 01
1kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml2kubectl get deployment metrics-server -n kube-system1kubectl apply -f hpa.yml2kubectl get hpa3kubectl describe hpa hpa-springapi-svc-a4watch kubectl get pods