Traefik Knative 문서
본문
Traefik & Knative
Knative 프로바이더를 사용하면 Traefik은 Knative의 Custom Resource Definitions(CRD)를 활용해 라우팅 구성을 얻어요.
Knative 개념과 리소스에 대한 자세한 내용은 공식 문서를 참고하세요.
Knative 프로바이더는 사양의 v1.19.0 및 v1.20.0 버전을 지원해요.
Knative Service 배포하기
Service 는 Knative 사양의 핵심 리소스로, Knative 애플리케이션으로 들어오는 트래픽의 진입점을 정의해요.
이는 트래픽을 관리·처리하는 Knative 네트워킹 컨트롤러를 지정하는 Ingress 와 연결되어, 트래픽이 적절한 Knative 백엔드 서비스로 전달되도록 보장해요.
다음 Service 매니페스트는 실행 중인 Traefik 컨트롤러가 들어오는 트래픽을 처리하도록 구성해요.
---
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- image: gcr.io/knative-samples/helloworld-go
env:
- name: TARGET
value: "Go Sample v1"
모든 것이 배포되면 HTTP 엔드포인트에 GET 요청을 보냈을 때 다음 응답을 받을 수 있어요:
$ curl http://helloworld-go.default.example.com
Hello Go Sample v1!
참고
example.com 도메인은 Traefik 컨트롤러를 배포할 때 구성된 공개 도메인이에요.
자세한 내용은 설치 구성을 확인하세요.
태그 기반 라우팅
Knative에서 백분율 기반 태그 라우팅을 추가하려면 Service 매니페스트에 traffic 섹션을 정의해 특정 태그와 백분율이 있는 여러 리비전을 포함할 수 있어요.
예시는 다음과 같아요:
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- image: gcr.io/knative-samples/helloworld-go
env:
- name: TARGET
value: "Go Sample v2"
traffic:
- tag: v1
revisionName: helloworld-go-00001
percent: 50
- tag: v2
revisionName: helloworld-go-00002
percent: 50
이 예시에서:
traffic섹션은 태그v1과v2를 가진 두 리비전(helloworld-go-00001및helloworld-go-00002)을 지정하며, 각각 트래픽의 50%를 받아요.tag필드는 태그를 사용해 특정 리비전으로 트래픽을 라우팅할 수 있게 해줘요.
태그가 지정된 리비전은 다음 URL로 접근할 수 있어요:
백분율 기반 라우팅에 접근하려면 기본 URL을 사용하세요:
HTTP/HTTPS
HTTP/HTTPS 구성에 대한 내용은 Knative 문서를 확인하세요.
프로덕션에서 Traefik OSS를 사용 중인가요?
업무에서 Traefik을 사용하고 있다면 엔터프라이즈급 API 게이트웨이 기능이나 Traefik OSS에 대한 상용 지원을 추가하는 것을 고려해 보세요.
-
API 게이트웨이 데모 영상 보기
-
24/7/365 OSS 지원 요청하기
Traefik OSS에 API 게이트웨이 기능을 추가하는 것은 빠르고 매끄러워요. 교체(rip and replace)가 필요 없고 모든 구성이 그대로 유지돼요. 짧은 영상으로 직접 확인해 보세요.