1장. 라우트
1.1. 기본 경로 생성 링크 복사링크가 클립보드에 복사되었습니다!
암호화되지 않은 HTTP가 있는 경우 경로 오브젝트를 사용하여 기본 경로를 만들 수 있습니다.
1.1.1. HTTP 기반 경로 생성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에 따라 hello-openshift 애플리케이션을 예제로 사용하여 웹 애플리케이션에 대한 간단한 HTTP 기반 경로를 생성할 수 있습니다.
공용 URL에서 애플리케이션을 호스팅할 경로를 생성할 수 있습니다. 경로는 애플리케이션의 네트워크 보안 구성에 따라 보안 또는 비보안일 수 있습니다. HTTP 기반 경로는 기본 HTTP 라우팅 프로토콜을 사용하고 안전하지 않은 애플리케이션 포트에 서비스를 노출하는 비보안 경로입니다.
사전 요구 사항
-
OpenShift CLI(
oc)를 설치합니다. - 관리자로 로그인했습니다.
- 포트에서 트래픽을 수신하는 포트와 TCP 끝점을 노출하는 웹 애플리케이션이 있습니다.
프로세스
다음 명령을 실행하여
hello-openshift라는 프로젝트를 생성합니다.$ oc new-project hello-openshift다음 명령을 실행하여 프로젝트에 Pod를 생성합니다.
$ oc create -f https://raw.githubusercontent.com/openshift/origin/master/examples/hello-openshift/hello-pod.json다음 명령을 실행하여
hello-openshift라는 서비스를 생성합니다.$ oc expose pod/hello-openshift다음 명령을 실행하여
hello-openshift애플리케이션에 대한 비보안 경로를 생성합니다.$ oc expose svc hello-openshift
검증
생성한
경로리소스가 있는지 확인하려면 다음 명령을 실행합니다.$ oc get routes -o yaml hello-openshift생성된 비보안 경로에 대한 YAML 정의의 예
apiVersion: route.openshift.io/v1 kind: Route metadata: name: hello-openshift spec: host: www.example.com port: targetPort: 8080 to: kind: Service name: hello-openshift다음과 같습니다.
host-
서비스를 가리키는 별칭 DNS 레코드를 지정합니다. 이 필드는 유효한 DNS 이름(예:
www.example.com)일 수 있습니다. DNS 이름은 DNS952 하위 도메인 규칙을 따라야 합니다. 지정하지 않으면 경로 이름이 자동으로 생성됩니다. targetPort이 경로가 가리키는 서비스에서 선택한 Pod의 대상 포트를 지정합니다.
참고기본 수신 도메인을 표시하려면 다음 명령을 실행합니다.
$ oc get ingresses.config/cluster -o jsonpath={.spec.domain}
1.1.2. 경로 기반 라우터 링크 복사링크가 클립보드에 복사되었습니다!
경로 기반 라우터는 URL과 비교할 수 있는 경로 구성 요소를 지정하며 이를 위해 라우트의 트래픽이 HTTP 기반이어야 합니다. 따라서 동일한 호스트 이름을 사용하여 여러 경로를 제공할 수 있으며 각각 다른 경로가 있습니다. 라우터는 가장 구체적인 경로를 기반으로 하는 라우터와 일치해야 합니다.
다음 표에서는 경로 및 액세스 가능성을 보여줍니다.
| 경로 | 비교 대상 | 액세스 가능 |
|---|---|---|
| www.example.com/test | www.example.com/test | 제공됨 |
| www.example.com | 없음 | |
| www.example.com/test 및 www.example.com | www.example.com/test | 제공됨 |
| www.example.com | 제공됨 | |
| www.example.com | www.example.com/text | 예 (경로가 아닌 호스트에 의해 결정됨) |
| www.example.com | 제공됨 |
경로가 있는 보안되지 않은 라우터
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: route-unsecured
spec:
host: www.example.com
path: "/test"
to:
kind: Service
name: service-name
- 1
- 경로는 경로 기반 라우터에 대해 추가된 유일한 속성입니다.
라우터가 해당 경우 TLS를 종료하지 않고 요청 콘텐츠를 읽을 수 없기 때문에 패스스루 TLS를 사용할 때 경로 기반 라우팅을 사용할 수 없습니다.