5.3. 트래픽 관리
Knative 애플리케이션에서 트래픽 분할을 생성하여 트래픽을 관리할 수 있습니다. 트래픽 분할은 Knative 서비스에서 관리하는 경로의 일부로 구성됩니다.
경로를 구성하면 요청을 다양한 버전의 서비스로 전송할 수 있습니다. 이 라우팅은 Service
오브젝트의 트래픽
사양에 따라 결정됩니다.
트래픽
사양 선언은 하나 이상의 버전으로 구성되며, 각각 전체 트래픽의 일부를 처리합니다. 각 버전으로 라우팅되는 트래픽의 백분율은 최대 100%를 추가해야 합니다. 이는 Knative 검증에 의해 확인됩니다.
트래픽
사양에 지정된 버전은 수정되거나 이름이 지정된 버전이거나 "latest" 버전을 가리킬 수 있으며, 이는 서비스의 모든 버전 목록의 헤드를 추적할 수 있습니다. 새 버전이 생성되는 경우 "latest" 버전은 업데이트하는 부동 참조 유형입니다. 각 버전에는 해당 버전의 추가 액세스 URL을 생성하는 태그가 연결될 수 있습니다.
트래픽
사양은 다음을 통해 수정할 수 있습니다.
-
Service
오브젝트의 YAML을 직접 편집합니다. -
Knative(
kn
) CLI--traffic
플래그 사용. - OpenShift Container Platform 웹 콘솔 사용.
Knative 서비스를 생성할 때 기본 traffic
사양 설정이 없습니다.
5.3.1. 트래픽 사양 예
다음 예에서는 traffic
의 100%가 서비스의 최신 버전으로 라우팅되는 트래픽 사양을 보여줍니다. status
에서 latestRevision
의 최신 버전의 이름을 볼 수 있습니다.
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: example-service namespace: default spec: ... traffic: - latestRevision: true percent: 100 status: ... traffic: - percent: 100 revisionName: example-service
다음 예에서는 traffic
의 100%가 current
로 태그가 지정된 버전으로 라우팅되고 해당 버전의 이름이 example-service
로 지정된 트래픽 사양을 보여줍니다. 트래픽이 라우팅되지 않더라도 latest
로 태그된 버전을 사용할 수 있습니다.
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: example-service namespace: default spec: ... traffic: - tag: current revisionName: example-service percent: 100 - tag: latest latestRevision: true percent: 0
다음 예제에서는 traffic
사양의 버전 목록을 확장하여 여러 버전으로 트래픽을 분할하는 방법을 보여줍니다. 이 예제에서는 50%의 트래픽을 현재
태그된 버전으로, 후보로
태그된 버전에 대한 트래픽의 50%를 보냅니다. 트래픽이 라우팅되지 않더라도 latest
로 태그된 버전을 사용할 수 있습니다.
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: example-service namespace: default spec: ... traffic: - tag: current revisionName: example-service-1 percent: 50 - tag: candidate revisionName: example-service-2 percent: 50 - tag: latest latestRevision: true percent: 0