AWS CodeBuild 를 통한 store, delivery 서비스 배포
컨터이너 리소스 CPU 200m 설정
HPA(Horizonal Pod Autoscale)를 cpu임계치=20%, 최대Pod수=3, 최저Pod수=1 로 설정
kubectl autoscale deployment team4-store --cpu-percent=20 --min=1 --max=3
siege 컨테이너 배포 후 siege 컨테이너 내부에서 동시사용자 1명, 20초간 부하 테스트를 실행
kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
name: siege
spec:
containers:
- name: siege
image: apexacme/siege-nginx
EOF
kubectl exec -it siege -- /bin/bash
siege -c1 -t10S -v http://team4-store:8080/profile/products
CPU 리소스가 20%를 넘어서자 HPA 이벤트가 발생하고 Replicas=3 으로 AutoScale 실행
쿨타임 이후 다시 3->1 로 Replica Set 변경
Self-healing (Liveness Probe)
Liveness Probe 설정 후 재배포 실행
livenessProbe:
httpGet:
path: /actuator/health
port: 8080
initialDelaySeconds: 120
timeoutSeconds: 2
periodSeconds: 5
failureThreshold: 5
Spring-Boot 설정문제로 재배포 된 컨테이너 내부 오류 발생
Liveness Probe 실패로 컨테이너 재시작 이벤트 발생
Zero-Downtime Deploy (Readiness Probe)
HPA 제거
kubectl delete hpa team4-store
Readiness Probe 미설정 배포 시 siege 테스트 결과가 Availability 69.94% 임을 확인
Readiness Probe 설정 후 재배포 실행
readinessProbe:
httpGet:
path: /actuator/health
port: 8080
initialDelaySeconds: 10
timeoutSeconds: 2
periodSeconds: 5
failureThreshold: 10
Readiness Probe 설정 이후 배포 시 siege 테스트 결과가 Availability 100% 임을 확인