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 Controller는 사용자가 정의한 규칙에 따라 트래픽 라우팅과 부하 분산을 관리합니다.
  • SSL/TLS 종료: SSL/TLS 종료는 백엔드 서비스로 전달하기 전에 들어오는 SSL/TLS 트래픽을 해독하는 프로세스입니다.
  • 여러 도메인 및 경로: Ingress는 여러 도메인과 경로에 대한 트래픽 라우팅을 지원합니다.

1.8.3. 경로와 Ingress 비교

경로는 진입보다 더 많은 유연성과 고급 기능을 제공합니다. 이를 통해 복잡한 경로 시나리오에 적합한 경로가 만들어집니다. 특히 기본적인 외부 접근 요구 사항의 경우 경로를 설정하고 사용하는 것이 더 간단합니다. Ingress는 보다 간단하고 직접적인 외부 접근을 위해 자주 사용됩니다. 경로는 고급 라우팅과 SSL/TLS 종료가 필요한 보다 복잡한 시나리오에 사용됩니다.

1.8.4. 예: 웹 애플리케이션을 노출하기 위한 경로 및 인그레스 구성

OpenShift Container Platform 클러스터에서 웹 애플리케이션이 실행되고 있습니다. 외부 사용자가 애플리케이션에 접근할 수 있도록 하려고 합니다. 애플리케이션은 특정 도메인 이름을 통해 접근할 수 있어야 하며, 트래픽은 TLS를 사용하여 안전하게 암호화되어야 합니다. 다음 예제에서는 웹 애플리케이션을 외부 트래픽에 안전하게 노출하기 위해 경로와 유입을 모두 구성하는 방법을 보여줍니다.

1.8.4.1. 경로 구성

  1. 새 프로젝트를 생성합니다.

    $ oc new-project webapp-project
  2. 웹 애플리케이션을 배포합니다.

    $ oc new-app nodejs:12~https://github.com/sclorg/nodejs-ex.git --name=webapp
  3. 경로를 사용하여 서비스를 노출합니다.

    $ oc expose svc/webapp --hostname=webapp.example.com
  4. TLS를 사용하여 경로를 보호합니다.

    1. 인증서와 키를 사용하여 TLS 비밀번호를 생성합니다.

      $ oc create secret tls webapp-tls --cert=path/to/tls.crt --key=path/to/tls.key
    2. TLS 비밀번호를 사용하도록 경로를 업데이트합니다.

      $ oc patch route/webapp -p '{"spec":{"tls":{"termination":"edge","certificate":"path/to/tls.crt","key":"path/to/tls.key"}}}'

1.8.4.2. 인그레스 구성

  1. 인그레스 리소스를 생성합니다.

    클러스터에 Ingress Controller가 설치되어 실행 중인지 확인하세요.

  2. 웹 애플리케이션에 대한 서비스를 만듭니다. 아직 만들어지지 않았다면 애플리케이션을 서비스로 공개합니다.

    apiVersion: v1
    kind: Service
    metadata:
      name: webapp-service
      namespace: webapp-project
    spec:
      selector:
        app: webapp
      ports:
        - protocol: TCP
          port: 80
          targetPort: 8080
  3. 인그레스 리소스를 생성합니다.

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: webapp-ingress
      namespace: webapp-project
      annotations:
        kubernetes.io/ingress.class: "nginx"
    spec:
      rules:
        - host: webapp.example.com
          http:
            paths:
              - path: /
                pathType: Prefix
                backend:
                  service:
                    name: webapp-service
                    port:
                      number: 80
  4. TLS를 사용하여 침투를 보호하세요.

    1. 인증서와 키를 사용하여 TLS 비밀번호를 생성합니다.

      $ oc create secret tls webapp-tls --cert=path/to/tls.crt --key=path/to/tls.key -n webapp-project
    2. TLS 비밀번호를 사용하도록 ingress 리소스를 업데이트합니다.

      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: webapp-ingress
        namespace: webapp-project
      spec:
        tls: 
      1
      
          - hosts:
              - webapp.example.com
            secretName: webapp-tls 
      2
      
        rules:
          - host: webapp.example.com
            http:
              paths:
                - path: /
                  pathType: Prefix
                  backend:
                    service:
                      name: webapp-service
                      port:
                        number: 80
      1
      TLS 섹션은 TLS 설정을 지정합니다.
      2
      secretName 필드는 TLS 인증서와 키가 포함된 Kubernetes 비밀의 이름입니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동