5.7.2. 라우터
OpenShift Container Platform 관리자는 OpenShift Container Platform 클러스터의 노드에 라우터 를 배포할 수 있으므로 개발자가 생성한 경로를 외부 클라이언트에서 사용할 수 있습니다. OpenShift Container Platform의 라우팅 계층은 플러그형이며, 기본적으로 여러 라우터 플러그인이 제공되고 지원됩니다.
라우터 구성에 대한 자세한 내용은 클러스터 구성 가이드를 참조하십시오.
라우터는 서비스 선택기를 사용하여 서비스를 지원하는 서비스와 엔드포인트를 찾습니다. 라우터와 서비스 모두 로드 밸런싱을 제공하는 경우 OpenShift Container Platform은 라우터 로드 밸런싱을 사용합니다. 라우터는 서비스의 IP 주소에서 관련 변경 사항을 감지하고 그에 따라 구성을 조정합니다. 이 기능은 사용자 지정 라우터를 통해 API 오브젝트를 외부 라우팅 솔루션으로 변경하는 데 유용합니다.
요청 경로는 호스트 이름의 DNS를 하나 이상의 라우터로 확인하는 것으로 시작됩니다. 제안된 방법은 여러 라우터 인스턴스에서 지원하는 하나 이상의 가상 IP(VIP) 주소를 가리키는 와일드카드 DNS 항목을 사용하여 클라우드 도메인을 정의하는 것입니다. 클라우드 도메인 외부의 이름과 주소를 사용하는 경로에는 개별 DNS 항목을 구성해야 합니다.
라우터보다 VIP 주소가 적으면 주소 수에 해당하는 라우터가 활성 상태이며 나머지는 패시브 입니다. 패시브 라우터는 핫-대기 라우터라고도 합니다. 예를 들어 VIP 주소 2개와 라우터 3개가 있는 경우 "active-active-passive" 구성이 있습니다. 라우터 VIP 구성에 대한 자세한 내용은 High Availability 를 참조하십시오.
경로는 라우터 집합 간에 분할 할 수 있습니다. 관리자는 클러스터 전체에서 분할을 설정할 수 있으며 사용자는 프로젝트에서 네임스페이스에 대한 분할을 설정할 수 있습니다. 운영자가 분할을 통해 여러 라우터 그룹을 정의할 수 있습니다. 그룹의 각 라우터는 트래픽의 하위 집합만 제공합니다.
OpenShift Container Platform 라우터는 라우터에 직접 구분 정보를 전달하는 프로토콜을 통해 외부 호스트 이름 매핑 및 서비스 엔드포인트의 부하 분산을 제공합니다. 라우터에서 보낼 위치를 결정하려면 호스트 이름이 프로토콜에 있어야 합니다.
라우터 플러그인은 기본적으로 호스트 포트 80(HTTP) 및 443(HTTPS)에 바인딩할 수 있다고 가정합니다. 즉, 라우터를 해당 포트가 사용하지 않는 노드에 배치해야 합니다. 또는 ROUTER_SERVICE_ HTTP_PORT 및
환경 변수를 설정하여 다른 포트에서 수신 대기하도록 라우터를 구성할 수 있습니다.
ROUTER_SERVICE_HTTPS_PORT
라우터가 호스트 노드의 포트에 바인딩되므로 라우터가 호스트 네트워킹(기본값)을 사용하는 경우 해당 포트에서 수신 대기하는 하나의 라우터만 각 노드에 있을 수 있습니다. 클러스터 네트워킹은 모든 라우터가 클러스터의 모든 포드에 액세스할 수 있도록 구성됩니다.
라우터는 다음과 같은 프로토콜을 지원합니다.
- HTTP
- HTTPS(SNI 포함)
- WebSockets
- SNI 포함 TLS
WebSocket 트래픽은 동일한 경로 규칙을 사용하며 다른 트래픽과 동일한 TLS 종료 유형을 지원합니다.
보안 연결을 설정하려면 클라이언트와 서버에 공통된 암호를 협상해야 합니다. 시간이 지남에 따라 더욱 새롭고 안전한 암호를 사용할 수 있게 되며 클라이언트 소프트웨어로 통합됩니다. 이전 클라이언트가 사용되지 않게 되면 더 오래되고 안전하지 않은 암호를 삭제할 수 있습니다. 기본적으로 라우터는 사용 가능한 광범위한 클라이언트를 지원합니다. 원하는 클라이언트를 지원하고 덜 안전한 암호를 포함하지 않는 선택한 암호 집합을 사용하도록 라우터를 구성할 수 있습니다.
5.7.2.1. 템플릿 라우터
템플릿 라우터 는 다음과 같은 기본 라우터 구현에 특정 인프라 정보를 제공하는 라우터 유형입니다.
- 엔드포인트 및 경로를 감시하는 래퍼입니다.
- 사용 가능한 형식으로 저장되는 엔드포인트 및 경로 데이터.
- 내부 상태를 구성 가능 템플릿에 전달하고 템플릿 실행.
- 다시 로드 스크립트 호출.