7.2. Ingress 컨트롤러 분할을 위한 경로 생성
경로를 사용하면 URL에서 애플리케이션을 호스팅할 수 있습니다. 이 경우 호스트 이름이 설정되지 않고 경로는 대신 하위 도메인을 사용합니다. 하위 도메인을 지정하면 경로를 노출하는 Ingress 컨트롤러의 도메인을 자동으로 사용합니다. 여러 Ingress 컨트롤러에서 경로가 노출되는 경우 경로는 여러 URL에서 호스팅됩니다.
다음 절차에서는 hello-openshift
애플리케이션을 예제로 사용하여 Ingress 컨트롤러 분할에 대한 경로를 생성하는 방법을 설명합니다.
Ingress 컨트롤러 분할은 들어오는 트래픽 부하를 일련의 Ingress 컨트롤러에 균형 있게 분배하고 트래픽을 특정 Ingress 컨트롤러에 격리할 때 유용합니다. 예를 들어, 회사 A는 하나의 Ingress 컨트롤러로, 회사 B는 다른 Ingress 컨트롤러로 이동합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. - 프로젝트 관리자로 로그인되어 있습니다.
- 포트에서 트래픽을 수신 대기하는 포트 및 HTTP 또는 TLS 엔드포인트를 노출하는 웹 애플리케이션이 있습니다.
- 분할을 위해 Ingress 컨트롤러가 구성되어 있습니다.
프로세스
다음 명령을 실행하여
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-route.yaml
이라는 경로 정의를 생성합니다.분할을 위해 생성된 경로의 YAML 정의:
apiVersion: route.openshift.io/v1 kind: Route metadata: labels: type: sharded 1 name: hello-openshift-edge namespace: hello-openshift spec: subdomain: hello-openshift 2 tls: termination: edge to: kind: Service name: hello-openshift
다음 명령을 실행하여
hello-openshift-route.yaml
을 사용하여hello-openshift
애플리케이션에 대한 경로를 생성합니다.$ oc -n hello-openshift create -f hello-openshift-route.yaml
검증
다음 명령을 사용하여 경로의 상태를 가져옵니다.
$ oc -n hello-openshift get routes/hello-openshift-edge -o yaml
생성된
Route
리소스는 다음과 유사해야 합니다.출력 예
apiVersion: route.openshift.io/v1 kind: Route metadata: labels: type: sharded name: hello-openshift-edge namespace: hello-openshift spec: subdomain: hello-openshift tls: termination: edge to: kind: Service name: hello-openshift status: ingress: - host: hello-openshift.<apps-sharded.basedomain.example.net> 1 routerCanonicalHostname: router-sharded.<apps-sharded.basedomain.example.net> 2 routerName: sharded 3