클라우드 컴퓨팅 & NoSQL/도커 & 쿠버네티스
KNative Auto scaling
Terry Cho
2019. 10. 21. 23:50
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)를 사용하게 된다.