KNative 를 보던중에, Autoscaling 처리를 어떻게 하는지 확인해보니,
기본은 Knative instance (한 Pod 겠지) 당 처리할 수 있는 concurrent request 수를 정해놓고, 이를 넘을 경우에 auto scaling 하는 방식이다. CPU가 아니라 connection 수를 통해서 한다.
containerConcurrency
limits the amount of concurrent requests are allowed into the application at a given time (hard limit), and is configured in the revision template.
스케일링 설정은
spec:
template:
metadata:
autoscaling.knative.dev/minScale: "2"
autoscaling.knative.dev/maxScale: "10"
min, max 값을 지정하는데, min 이 0 이면 콜드 스타트가 발생할 수 있기 때문에, 0 보다는 큰 수를 주는 것이 좋다.
디폴트가 이 concurrent connection 수를 이용하는 방식인데, CPU 베이스도 가능하다.
spec:
template:
metadata:
autoscaling.knative.dev/metric: concurrency
autoscaling.knative.dev/class: hpa.autoscaling.knative.dev
위의 metric 모드를 사용하게 되면, concurrency 모드를 사용하게 되고, class 모드를 사용하게되면, HPA (Horizontal Pod Autoscaler)를 사용하게 된다.
'클라우드 컴퓨팅 & NoSQL > 도커 & 쿠버네티스' 카테고리의 다른 글
쿠버네티스에서 도메인 이름 설정 방법 (0) | 2019.11.11 |
---|---|
도커 볼륨 (0) | 2019.11.10 |
구글 GKE 네트워크 기본 보안 (0) | 2019.10.18 |
효율적인 도커 이미지 만들기 #2 - 도커 레이어 캐슁을 통한 빌드/배포 속도 높이기 (0) | 2019.10.10 |
효율적인 도커 이미지 만들기 #1 - 작은 도커 이미지 (1) | 2019.10.08 |