6장. Kourier 및 Istio 인그레스
OpenShift Serverless에서는 다음 두 가지 수신 솔루션을 지원합니다.
- Kourier
- Red Hat OpenShift Service Mesh를 사용하는 Istio
기본값은 Kourier입니다.
6.1. Kourier 및 Istio 인그레스 솔루션
6.1.1. Kourier
Kourier는 OpenShift Serverless의 기본 수신 솔루션입니다. 다음과 같은 속성이 있습니다.
- envoy 프록시를 기반으로 합니다.
- 단순하고 가벼움이 있습니다.
- Serverless에서 기능 집합을 제공하는 데 필요한 기본 라우팅 기능을 제공합니다.
- 기본 관찰 기능 및 메트릭을 지원합니다.
- Knative 서비스 라우팅의 기본 TLS 종료를 지원합니다.
- 제한된 구성 및 확장 옵션만 제공합니다.
6.1.2. OpenShift Service Mesh를 사용하는 Istio
Istio를 OpenShift Serverless의 수신 솔루션으로 사용하면 Red Hat OpenShift Service Mesh가 제공하는 기능을 기반으로 하는 추가 기능 세트가 활성화됩니다.
- 모든 연결 간의 기본 mTLS
- 서버리스 구성 요소는 서비스 메시의 일부입니다.
- 추가 관찰 기능 및 메트릭
- 인증 및 인증 지원
- Red Hat OpenShift Service Mesh에서 지원하는 사용자 정의 규칙 및 구성
그러나 추가 기능은 더 높은 오버헤드와 리소스 소비를 제공합니다. 자세한 내용은 Red Hat OpenShift Service Mesh 설명서를 참조하십시오.
Istio 요구 사항 및 설치 지침은 Serverless 문서의 "OpenShift Serverless를 사용하여 서비스 메시 통합" 섹션을 참조하십시오.
6.1.3. 트래픽 구성 및 라우팅
Kourier 또는 Istio 사용 여부에 관계없이 Knative 서비스의 트래픽은 net-kourier-controller
또는 net-istio-controller
에 의해 knative-serving
네임스페이스에 구성됩니다.
컨트롤러는 KnativeService
및 해당 하위 사용자 정의 리소스를 읽고 수신 솔루션을 구성합니다. 두 수신 솔루션 모두 트래픽 경로의 일부가 되는 수신 게이트웨이 Pod를 제공합니다. 두 수신 솔루션은 모두 Envoy를 기반으로 합니다. 기본적으로 Serverless에는 각 KnativeService
오브젝트에 대해 두 개의 경로가 있습니다.
-
OpenShift 라우터에서 전달하는 클러스터 외부 경로 (예:
myapp-namespace.example.com
) -
클러스터 도메인을 포함하는 클러스터 로컬 경로 (예:
myapp.namespace.svc.cluster.local
) 이 도메인은 Knative 또는 기타 사용자 워크로드에서 Knative 서비스를 호출하는 데 사용할 수 있습니다.
수신 게이트웨이는 serve 모드 또는 프록시 모드에서 요청을 전달할 수 있습니다.
- serve 모드에서 요청은 Knative 서비스의 Queue-Proxy 사이드카 컨테이너로 직접 이동합니다.
-
프록시 모드에서 요청은 먼저
knative-serving
네임스페이스의 Activator 구성 요소를 통과합니다.
모드 선택은 Knative, Knative 서비스 및 현재 트래픽의 구성에 따라 달라집니다. 예를 들어 Knative 서비스가 0으로 스케일링되면 새 Knative 서비스 Pod가 시작될 때까지 버퍼 역할을 하는 Activator 구성 요소로 요청이 전송됩니다.