검색

1.14. 트래픽 관리 구성

download PDF

Red Hat OpenShift Service Mesh를 사용하면 서비스 간 트래픽 흐름 및 API 호출을 제어할 수 있습니다. 서비스 메시의 일부 서비스는 메시 내에서 통신해야 하며 다른 서비스는 숨겨야 할 수 있습니다. 트래픽을 관리하여 특정 백엔드 서비스를 숨기고, 서비스를 노출하며, 테스트 또는 버전 관리 배포를 생성하거나 서비스 세트에 보안 계층을 추가합니다.

이 안내서는 Bookinfo 샘플 애플리케이션을 참조하여 예제 애플리케이션에 라우팅 예제를 제공합니다. Bookinfo 애플리케이션을 설치하여 이러한 라우팅 예제가 작동하는 방법을 알아봅니다.

1.14.1. 라우팅 튜토리얼

Service Mesh Bookinfo 샘플 애플리케이션은 각각 여러 가지 버전이 있는 네 개의 마이크로 서비스로 구성됩니다. Bookinfo 샘플 애플리케이션을 설치한 후에는 reviews 마이크로 서비스의 세 가지 버전이 동시에 실행됩니다.

브라우저에서 Bookinfo 앱 /product 페이지에 액세스하여 여러 번 새로 고침하면 북 리뷰 출력에 별점이 포함된 경우도 있고 그렇지 않은 경우도 있습니다. 라우팅할 명시적인 기본 서비스 버전이 없으면 서비스 메시는 사용 가능한 모든 버전으로 차례대로 요청을 라우팅합니다.

이 튜토리얼은 모든 트래픽을 마이크로 서비스의 v1(버전 1)으로 라우팅하는 규칙을 적용하는 데 도움이 됩니다. 나중에 HTTP 요청 헤더의 값을 기반으로 트래픽을 라우팅하는 규칙을 적용할 수 있습니다.

사전 요구 사항

  • 다음 예제에서 작동하도록 Bookinfo 샘플 애플리케이션을 배포하십시오.

1.14.1.1. 가상 서비스 적용

다음 절차에서 가상 서비스는 마이크로 서비스의 기본 버전을 설정하는 가상 서비스를 적용하여 모든 트래픽을 각 마이크로 서비스의 v1로 라우팅합니다.

절차

  1. 가상 서비스를 적용합니다.

    $ oc apply -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.1/samples/bookinfo/networking/virtual-service-all-v1.yaml
  2. 가상 서비스를 적용했는지 확인하려면 다음 명령을 사용하여 정의된 경로를 표시합니다.

    $ oc get virtualservices -o yaml

    이 명령은 kind: VirtualService의 리소스를 YAML 형식으로 반환합니다.

reviews 서비스 버전 1을 포함하여 서비스 메시를 Bookinfo 마이크로 서비스 v1 버전으로 라우팅하도록 구성했습니다.

1.14.1.2. 새 경로 구성 테스트

Bookinfo 앱의 /productpage를 다시 새로 고침하여 새 구성을 테스트합니다.

절차

  1. GATEWAY_URL 매개변수 값을 설정합니다. 이 변수를 사용하여 나중에 Bookinfo 제품 페이지의 URL을 찾을 수 있습니다. 이 예제에서 컨트롤 플레인 프로젝트는 istio-system입니다.

    export GATEWAY_URL=$(oc -n istio-system get route istio-ingressgateway -o jsonpath='{.spec.host}')
  2. 다음 명령을 실행하여 제품 페이지의 URL을 검색합니다.

    echo "http://$GATEWAY_URL/productpage"
  3. 브라우저에서 Bookinfo 사이트를 엽니다.

페이지의 리뷰 부분은 새로 고침 횟수와 관계없이 별점 없이 표시됩니다. 이는 리뷰 서비스의 모든 트래픽을 reviews:v1 버전으로 라우팅하도록 서비스 메시를 구성했기 때문이며, 이 서비스 버전은 별점 서비스에 액세스할 수 없습니다.

이제 서비스 메시가 트래픽을 하나의 서비스 버전으로 라우팅합니다.

1.14.1.3. 사용자 ID 기반 경로

특정 사용자의 모든 트래픽이 특정 서비스 버전으로 라우팅되도록 경로 구성을 변경합니다. 이 경우 jason이라는 사용자의 모든 트래픽은 서비스 reviews:v2로 라우팅됩니다.

서비스 메시에는 사용자 ID에 대한 특별한 기본 이해가 없습니다. 이 예제는 productpage 서비스가 모든 아웃바운드 HTTP 요청에 대한 사용자 정의 end-user 헤더를 검토 서비스에 추가한다는 사실에 의해 활성화됩니다.

절차

  1. 다음 명령을 실행하여 Bookinfo 샘플 애플리케이션에서 사용자 기반 라우팅을 활성화하도록 설정합니다.

    $ oc apply -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.1/samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml
  2. 다음 명령을 실행하여 규칙이 생성되었는지 확인합니다. 이 명령은 kind: VirtualService의 모든 리소스를 YAML 형식으로 반환합니다.

    $ oc get virtualservice reviews -o yaml
  3. Bookinfo 앱의 /productpage에서 암호없이 jason으로 로그인합니다.

    1. 브라우저를 새로 고침합니다. 별점은 각 리뷰 옆에 표시됩니다.
  4. 다른 사용자로 로그인합니다(원하는 이름 선택). 브라우저를 새로 고침합니다. 이제 별이 사라졌습니다. Jason을 제외한 모든 사용자에 대해 트래픽이 reviews:v1으로 라우팅됩니다.

사용자 ID를 기반으로 트래픽을 라우팅하도록 Bookinfo 샘플 애플리케이션을 성공적으로 구성했습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.