1.8. 경로 및 수신
경로와 인그레스는 모두 애플리케이션을 외부 트래픽에 노출하는 데 사용됩니다. 그러나 약간 다른 목적을 지원하며 기능이 다릅니다.
1.8.1. 라우트 링크 복사링크가 클립보드에 복사되었습니다!
경로는 외부 클라이언트가 이름으로 서비스에 도달할 수 있도록 호스트 이름에 서비스를 노출하는 OpenShift Container Platform 리소스에 고유합니다.
경로는 호스트 이름을 서비스에 매핑합니다. 경로 이름 매핑을 사용하면 외부 클라이언트가 호스트 이름을 사용하여 서비스에 액세스할 수 있습니다. 경로는 서비스로 전송되는 트래픽에 대한 로드 밸런싱을 제공합니다. 경로에 사용되는 호스트 이름은 라우터의 IP 주소로 확인됩니다. 그런 다음 경로는 트래픽을 적절한 서비스로 전달합니다. 또한 경로는 SSL/TLS를 사용하여 클라이언트와 서비스 간의 트래픽을 암호화할 수도 있습니다.
1.8.2. Ingress 링크 복사링크가 클립보드에 복사되었습니다!
Ingress는 로드 밸런싱, SSL/TLS 종료 및 이름 기반 가상 호스팅을 포함하여 고급 라우팅 기능을 제공하는 리소스입니다. Ingress에 대한 몇 가지 주요 사항은 다음과 같습니다.
- HTTP/HTTPS 라우팅: Ingress를 사용하여 클러스터 내 서비스에 대한 HTTP 및 HTTPS 트래픽을 라우팅하는 규칙을 정의할 수 있습니다.
- 로드 밸런싱: NGINX 또는 HAProxy와 같은 Ingress 컨트롤러는 사용자 정의 규칙을 기반으로 트래픽 라우팅 및 로드 밸런싱을 관리합니다.
- SSL/TLS 종료: SSL/TLS 종료는 백엔드 서비스에 전달하기 전에 수신되는 SSL/TLS 트래픽을 해독하는 프로세스입니다.
- 다중 도메인 및 경로: Ingress는 여러 도메인 및 경로에 대한 라우팅 트래픽을 지원합니다.
1.8.3. 경로 및 수신 비교 링크 복사링크가 클립보드에 복사되었습니다!
경로는 수신에 비해 유연성 및 고급 기능을 제공합니다. 이렇게 하면 복잡한 라우팅 시나리오에 적합한 경로가 생성됩니다. 특히 기본 외부 액세스 요구 사항을 위해 경로를 설정하고 사용하는 것이 더 쉽습니다. Ingress는 종종 간단하고 간단한 외부 액세스에 사용됩니다. 경로는 고급 라우팅 및 SSL/TLS 종료가 필요한 더 복잡한 시나리오에 사용됩니다.
1.8.4. 예: 웹 애플리케이션을 노출하도록 경로 및 수신 구성 링크 복사링크가 클립보드에 복사되었습니다!
웹 애플리케이션은 OpenShift Container Platform 클러스터에서 실행되고 있습니다. 외부 사용자가 애플리케이션에 액세스할 수 있도록 설정하려고 합니다. 애플리케이션은 특정 도메인 이름을 통해 액세스할 수 있어야 하며 TLS를 사용하여 트래픽을 안전하게 암호화해야 합니다. 다음 예제에서는 웹 애플리케이션을 외부 트래픽에 안전하게 노출하도록 경로와 수신을 모두 구성하는 방법을 보여줍니다.
1.8.4.1. 경로 구성 링크 복사링크가 클립보드에 복사되었습니다!
새 프로젝트를 생성합니다.
oc new-project webapp-project
$ oc new-project webapp-project
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 웹 애플리케이션을 배포합니다.
oc new-app nodejs:12~https://github.com/sclorg/nodejs-ex.git --name=webapp
$ oc new-app nodejs:12~https://github.com/sclorg/nodejs-ex.git --name=webapp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 경로를 사용하여 서비스를 노출합니다.
oc expose svc/webapp --hostname=webapp.example.com
$ oc expose svc/webapp --hostname=webapp.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TLS를 사용하여 경로를 보호합니다.
인증서 및 키를 사용하여 TLS 시크릿을 생성합니다.
oc create secret tls webapp-tls --cert=path/to/tls.crt --key=path/to/tls.key
$ oc create secret tls webapp-tls --cert=path/to/tls.crt --key=path/to/tls.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TLS 시크릿을 사용하도록 경로를 업데이트합니다.
oc patch route/webapp -p '{"spec":{"tls":{"termination":"edge","certificate":"path/to/tls.crt","key":"path/to/tls.key"}}}'
$ oc patch route/webapp -p '{"spec":{"tls":{"termination":"edge","certificate":"path/to/tls.crt","key":"path/to/tls.key"}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.8.4.2. 수신 구성 링크 복사링크가 클립보드에 복사되었습니다!
ingress 리소스를 생성합니다.
Ingress 컨트롤러가 클러스터에 설치되어 실행 중인지 확인합니다.
웹 애플리케이션에 대한 서비스를 생성합니다. 아직 생성되지 않은 경우 애플리케이션을 서비스로 노출합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ingress 리소스를 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TLS를 사용하여 수신을 보호합니다.
인증서 및 키를 사용하여 TLS 시크릿을 생성합니다.
oc create secret tls webapp-tls --cert=path/to/tls.crt --key=path/to/tls.key -n webapp-project
$ oc create secret tls webapp-tls --cert=path/to/tls.crt --key=path/to/tls.key -n webapp-project
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TLS 시크릿을 사용하도록 수신 리소스를 업데이트합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow