Scooter-2022 / AI-HPA

딥러닝 기반 Kubernetes Autoscaler 성능 개선 프로젝트
1 stars 3 forks source link

컴포넌트들 통신 규격 #8

Closed bconfiden2 closed 2 years ago

bconfiden2 commented 2 years ago

내용

Collect, Predict, Update 컴포넌트 사이에 필요한 데이터 명세 맞추기

NayeonKeum commented 2 years ago

되는대로 최대한 빨리 Collect에서 Predict로 보낼 데이터 명세 알려줘!

bconfiden2 commented 2 years ago

predict 모듈에서 http 프로토콜로 API 서버 열어놓는거 어때

스케일러가 프로메테우스에 쿼리 날려서 해당 서비스의 트래픽 받아온 다음, predict가 열어놓은 서버에 포스트로 값 넘겨주고 레플리카 수 반환받아오는 방식으로!

API 명세만 합의해놓으면 독립적으로 진행할 수 있을 것 같은데?

NayeonKeum commented 2 years ago

/model/{id}/predict

{
  "usage_data": <list>,
  "curr_pods": <num>,
}


/model/{id}/result

{
  "result": <num>,
}
bconfiden2 commented 2 years ago

소켓 통신하는거 그대로 냅두고, 모델이랑 스케일러를 파드로 나누지 말고 같은 파드 내에서 컨테이너로 나누자

컨테이너끼리 통신하는거는 그냥 localhost 로 가능한 걸로 확인해서 문제도 없을 것 같고, 스케일러랑 모델부분이랑 독립적으로 진행하기 더 편해서!

http 안쓰고 소켓통신이니까 클라이언트가 요청하는 방식만 알려주든지 아님 클라이언트 코드를 커밋해줘!

bconfiden2 commented 2 years ago

나중에 스케일러쪽도 api 호출이 아니라 Go에서 제공되는 라이브러리 사용하는 방식으로 다시 짤 예정이라,

소켓 통신 방식으로 짜더라도 클라이언트 쪽을 다시 짜야 해서 그냥 처음부터 다시 하고 있을게!

시간되면 서버쪽도 fastapi 로 구현해놓을게