5.2. 자동 스케일링

Knative Serving에서는 애플리케이션이 들어오는 수요와 일치하도록 자동 확장 또는 자동 스케일링 을 제공합니다. 예를 들어 애플리케이션에서 트래픽을 수신하지 않고 scale-to-zero가 활성화된 경우 Knative Serving에서 애플리케이션을 복제본 0으로 축소합니다. scale-to-zero가 비활성화된 경우 애플리케이션은 클러스터의 애플리케이션에 대해 구성된 최소 복제본 수로 확장됩니다. 애플리케이션에 대한 트래픽이 늘어나는 경우 요구에 맞게 복제본을 확장할 수도 있습니다.

Knative 서비스에 대한 자동 스케일링 설정은 클러스터 관리자가 구성하는 글로벌 설정 또는 개별 서비스에 대해 구성된 프로비저닝별 설정일 수 있습니다. 서비스의 YAML 파일을 수정하거나 Knative(kn) CLI를 사용하여 OpenShift Container Platform 웹 콘솔을 사용하여 서비스 단위 설정을 수정할 수 있습니다.

참고

서비스에 대해 설정한 제한 또는 대상은 애플리케이션의 단일 인스턴스에 대해 측정됩니다. 예를 들어 target 주석을 50 으로 설정하면 자동 스케일러가 애플리케이션을 스케일링하여 각 버전에서 50개의 요청을 처리하도록 구성합니다.

5.2.1. 스케일 바운드

바인딩을 스케일링하면 언제든지 애플리케이션을 제공할 수 있는 최소 및 최대 복제본 수가 결정됩니다. 콜드 시작 또는 컴퓨팅 비용을 제어하는 데 도움이 되도록 애플리케이션의 스케일 바인드를 설정할 수 있습니다.

5.2.1.1. 최소 스케일링 바운드

애플리케이션을 제공할 수 있는 최소 복제본 수는 min-scale 주석에 따라 결정됩니다. 스케일을 0으로 설정하지 않으면 min-scale 값이 기본값으로 1 로 설정됩니다.

다음 조건이 충족되는 경우 min-scale 값은 0 개 복제본으로 설정됩니다.

  • min-scale 주석이 설정되지 않음
  • 0으로 스케일링할 수 있습니다
  • 클래스 KPA 사용

min-scale 주석이 있는 서비스 사양의 예

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: example-service
  namespace: default
spec:
  template:
    metadata:
      annotations:
        autoscaling.knative.dev/min-scale: "0"
...

5.2.1.1.1. Knative CLI를 사용하여 min-scale 주석 설정

Knative(kn) CLI를 사용하여 min-scale 주석을 설정하면 YAML 파일을 직접 수정하는 것보다 더 간소화되고 직관적인 사용자 인터페이스가 제공됩니다. kn service 명령을 --scale-min 플래그와 함께 사용하여 서비스의 min-scale 값을 생성하거나 수정할 수 있습니다.

사전 요구 사항

  • Knative Serving이 클러스터에 설치되어 있습니다.
  • Knative(kn) CLI가 설치되어 있습니다.

절차

  • --scale-min 플래그를 사용하여 서비스의 최소 복제본 수를 설정합니다.

    $ kn service create <service_name> --image <image_uri> --scale-min <integer>

    명령 예

    $ kn service create example-service --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest --scale-min 2

5.2.1.2. 최대 스케일 바운드

애플리케이션을 제공할 수 있는 최대 복제본 수는 max-scale 주석에 따라 결정됩니다. max-scale 주석을 설정하지 않으면 생성된 복제본 수에 대한 상한이 없습니다.

max-scale 주석이 있는 서비스 사양의 예

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: example-service
  namespace: default
spec:
  template:
    metadata:
      annotations:
        autoscaling.knative.dev/max-scale: "10"
...

5.2.1.2.1. Knative CLI를 사용하여 max-scale 주석 설정

Knative(kn) CLI를 사용하여 max-scale 주석을 설정하면 YAML 파일을 직접 수정하는 것보다 더 간소화되고 직관적인 사용자 인터페이스가 제공됩니다. kn service 명령을 --scale-max 플래그와 함께 사용하여 서비스의 max-scale 값을 생성하거나 수정할 수 있습니다.

사전 요구 사항

  • Knative Serving이 클러스터에 설치되어 있습니다.
  • Knative(kn) CLI가 설치되어 있습니다.

절차

  • --scale-max 플래그를 사용하여 서비스의 최대 복제본 수를 설정합니다.

    $ kn service create <service_name> --image <image_uri> --scale-max <integer>

    명령 예

    $ kn service create example-service --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest --scale-max 10