Closed NayeonKeum closed 2 years ago
Reactive 방식으로 특정 주기마다 metrics server로부터 자원 사용량을 확인하여 미리 지정해둔 threshold를 넘어가면 스케일링이 됨
특정 구간의 사용량을 예측하여 미리 스케일링함으로써 HPA에서 발생하는 대기 시간 문제를 해결함
Collect | Update | Predict |
---|---|---|
애플리케이션 메트릭을 수집하여 중앙 집중식 시계열 데이터베이스로 보내 수집된 메트릭을 활용하고 분석 단계에서 사용 | Collector에서 특정 구간의 데이터를 쿼리하여 학습시킨 모델에 적용. 예측된 다음 시점의 워크로드에 대하여 설정한 알고리즘을 바탕으로 다음 시점의 파드 수 예측 | Kubernetes 엔진(kube-apiserver)은 예측 단계로부터 명령을 받아 Pod의 복제본 수를 변경 |
Autoscaling하려는 deployment로부터 생성된 파드들의 CPU 사용량을 합산해 해당 서비스의 총 CPU 사용량을 수집
사용자가 정해둔 CPU limit을 기준으로 딥러닝 모델은 특정 시점의 Pod 개수를 예측
Kubernetes 엔진(kube-apiserver)은 Automatic Scaler의 명령을 통해 적절한 Pod 복제본 수 변경
표준 LSTM과 달리 입력이 양방향으로 흐르고, 양방향의 정보를 활용 시퀀스의 양방향에서 순차적 종속성을 모델링하는 도구 정보 흐름의 방향을 반대로 하는 LSTM 레이어를 추가
최적의 파라미터 및 손실함수 결정
학습된 모델, Kubernetes에서 제공하는 기본 Autoscaler HPA, 오픈소스 Predictice HPA, 총 세 가지 모델에 랜덤으로 발생시킨 트래픽으로 성능 비교 예측 정확도를 바탕으로 개발한 모델의 스케일링 효과를 검증
{{ 이미지 첨부 }}
{{ 시연 영상 첨부 }}
개발 과정 자동화
더 없으면 머지 함니다
시연 영상은 제외 해도 되지 않을까?
시연 영상은 제외 해도 되지 않을까?
나는 길지 않고 작동한다는게 보여서 있어도 나쁘지 않을거라고 생각했어..!
오키오키
굿!
작업 내용
참고 사항
resolves: #39