π Horizontal Pod Autoscaler (HPA) in Kubernetes
β
Manual Scaling (μλ λ°©μ)
- Podμ CPU request = 250m, limit = 500m
- κ΄λ¦¬μκ°
kubectl top pod μΌλ‘ CPU μ¬μ©λμ μ§μ λͺ¨λν°λ§ν΄μΌ ν¨
- μ¬μ©λμ΄ 450mμ κ°κΉμμ§λ©΄ β
kubectl scale λ‘ μλμΌλ‘ Pod κ°μ λλ¦Ό
- λ¬Έμ μ :
- μ¬λμ΄ μ§μ κ³μ μ§μΌλ΄μΌ ν¨
- κΈκ²©ν νΈλν½ μ€νμ΄ν¬μλ λ°μ λΆκ°
β
Horizontal Pod Autoscaler (μλ λ°©μ)
- Podμ 리μμ€ μ¬μ©λμ μλμΌλ‘ κ°μ & Pod μ μ‘°μ
- λμ: Deployment, StatefulSet, ReplicaSet
- λͺ¨λν°λ§ μ§ν:
- CPU / Memory
- Custom Metrics (μ: μ ν리μΌμ΄μ
μ§ν)
- External Metrics (Datadog, Dynatrace κ°μ μΈλΆ λͺ¨λν°λ§ ν΄)
β
Imperative λ°©μ
kubectl autoscale deployment my-app \
--cpu-percent=50 \
--min=1 \
--max=10
- CPU μ¬μ©λμ΄ Pod limit λλΉ 50% μ΄κ³Όνλ©΄ Pod μΆκ°
- μ΅μ 1κ°, μ΅λ 10κ° λ²μ λ΄μμ μλ μ‘°μ
μν νμΈ:
kubectl get hpa
TARGETS μ΄μμ νμ¬ CPU μ¬μ©λ vs μκ³μΉ νμΈ