티스토리 뷰
1. 문제#1
1) 문제 시나리오:
- 클러스터에서 Deployment의 CPU 사용량을 기준으로 레플리카 수를 자동으로 조정하는 HPA를 구성해야함
(1) Deployment 생성
- stress-ng 이미지를 사용하여 Deploment 생성
- 이름: hpa-deployment
- 2개의 레플리카
(2) HPA
- CPU 사용량이 평균적으로 50%이상일때 레플리카 수를 자동으로 확장하도록 HPA를 구성
- 최소 레플리카 수:2, 최대 레플리카 수 5로 설정
(3) CPU 부하 생성:
- 기존 Pod 내부에서 부하테스트 도구(stress-ng)를 실행하여 CPU 부하를 생성
2) 해결과정
(1) YAML 작성
apiVersion: apps/v1
kind: Deployment
metadata:
name: hpa-deployment
spec:
replicas: 2
selector:
matchLabels:
app: hpa-app
template:
metadata:
labels:
app: hpa-app
spec:
containers:
- name: stress-ng
image: ghcr.io/arm-research/stress-ng #stress-ng 이미지사용
resources:
args: [] # 초기에는 부하가 없으므로 비워둔다.
requests:
cpu: "100m" # 최소 CPU 요청
limits:
cpu: "200m" # 최대 CPU 제한
(2) Deployment 생성
kubectl apply -f hpa-deployment.yaml
(3) HPA YAML 작성
#hpa.yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: hpa-deployment
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: hpa-deployment # 대상 deployment 이름
minReplicas: 2 #최소 레플리카 수
maxReplicas: 5 #최대 레플리카 수
metrics:
- type: Resource # 리소스 기반 메트릭 설정 (CPU)
resource:
name: cpu
target:
type: Utilization # CPU 사용량 기준으로 스케일링
averageUtilization: 50 # 평균 CPU 사용량 목표(50%)
(4) HPA 생성
kubectl apply -f hpa.yaml
(5) CPU 부하 테스트
- 실행중인 Pod 목록 확인
kubectl get pods --selector=app=hpa-app
NAME READY STATUS RESTARTS AGE
hpa-deployment-5b6d8c9d4f-abcde 1/1 Running 0 30s
hpa-deployment-5b6d8c9d4f-fghij 1/1 Running 0 30s
- stress-ng 도구를 사용하여 CPU 부하를 생성하기 위해 Pod에 접속
kubectl exec -it hpa-deployment-5b6d8c9d4f-abcde -- sh
- Pod 내부에서 CPU 부하를 생성 (두개의 CPU 코어에 부하를 생성하고 부하를 300초 동안 유지)
stress-ng --cpu 2 --timeout 300s
(6) 결과 확인
- HPA 상태 확인
kubectl get hpa hpa-deployment --watch
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
hpa-deployment Deployment/hpa-deployment 60% (avg) 2 5 3 30s
- 처음 레플리카가 2개였으나 현재 3개로 증가했음을 알 수 있다.
'쿠버네티스' 카테고리의 다른 글
CKA 기출문제 LoadBalancer (0) | 2025.01.01 |
---|---|
CKA 기출 문제 데몬셋 (0) | 2025.01.01 |
CKA 기출 문제 정리 Multi-container Pods (0) | 2025.01.01 |
쿠버네티스 기출 문제 정리 Topology Spread Constraints (0) | 2025.01.01 |
CKA 기출개념 정리 Job (0) | 2025.01.01 |