2.8.6. Bookinfo 예제 애플리케이션
Bookinfo 예제 애플리케이션에서는 OpenShift Container Platform에서 Red Hat OpenShift Service Mesh 2.2.3 설치를 테스트할 수 있습니다.
Bookinfo 애플리케이션은 온라인 서점의 단일 카탈로그 항목과 유사하게 한 권의 책에 대한 정보를 표시합니다. 애플리케이션은 도서 설명, 도서 세부 정보(ISBN, 페이지 수, 기타 정보), 도서 리뷰가 설명된 페이지를 표시합니다.
Bookinfo 애플리케이션은 이러한 마이크로 서비스로 구성됩니다.
-
productpage
마이크로 서비스는details
및reviews
마이크로 서비스를 호출하여 페이지를 채웁니다. -
details
마이크로 서비스에는 도서 정보가 포함되어 있습니다. -
reviews
마이크로 서비스에는 도서 리뷰가 포함되어 있습니다. 이를ratings
마이크로 서비스라고도 합니다. -
ratings
마이크로 서비스에는 도서 리뷰와 함께 제공되는 도서 순위 정보가 포함되어 있습니다.
리뷰 마이크로 서비스의 세 가지 버전이 있습니다.
-
버전 v1에서는
ratings
서비스를 호출하지 않습니다. -
버전 v2는
ratings
서비스를 호출하고 각 평가를 1~5개의 검정별로 표시합니다. -
버전 v3은
ratings
서비스를 호출하고 각 평가를 1~5개의 빨강별로 표시합니다.
2.8.6.1. Bookinfo 애플리케이션 설치
이 튜토리얼에서는 프로젝트를 생성하고, Bookinfo 애플리케이션을 해당 프로젝트에 배포하고, 서비스 메시에서 실행 중인 애플리케이션을 확인하여 샘플 애플리케이션을 생성하는 방법을 안내합니다.
사전 요구 사항
- OpenShift Container Platform 4.1 이상이 설치되었습니다.
- Red Hat OpenShift Service Mesh 2.2.3이 설치되었습니다.
-
OpenShift CLI(
oc
)에 액세스합니다. -
cluster-admin
역할이 있는 계정.
Bookinfo 샘플 애플리케이션은 IBM Z 및 IBM Power Systems에 설치할 수 없습니다.
이 섹션의 명령은 Service Mesh Control Plane 프로젝트가 istio-system
이라고 가정합니다. 다른 네임스페이스에 컨트롤 플레인을 설치한 경우 실행하기 전에 각 명령을 편집합니다.
절차
-
OpenShift Container Platform 웹 콘솔에 cluster-admin 권한이 있는 사용자로 로그인합니다. Red Hat OpenShift Dedicated를 사용하는 경우
dedicated-admin
역할의 계정이 있어야 합니다. -
홈
프로젝트를 클릭합니다. - 프로젝트 만들기를 클릭합니다.
프로젝트 이름으로
bookinfo
를 입력하고, 디스플레이 이름, 설명을 입력한 다음 생성을 클릭합니다.대신 CLI에서 이 명령을 실행하여
bookinfo
프로젝트를 생성할 수 있습니다.$ oc new-project bookinfo
-
Operators
설치된 Operator를 클릭합니다. -
프로젝트 메뉴를 클릭하고 Service Mesh Control Plane 네임스페이스를 사용합니다. 이 예제에서는
istio-system
을 사용합니다. - Red Hat OpenShift Service Mesh Operator를 클릭합니다.
Istio Service Mesh 멤버 목록 탭을 클릭합니다.
- 이미 Istio Service Mesh 멤버 롤을 생성한 경우, 이름을 클릭한 다음 YAML 탭을 클릭하여 YAML 편집기를 엽니다.
-
ServiceMeshMemberRoll
을 생성하지 않은 경우 ServiceMeshMemberRoll 생성을 클릭합니다.
- Members를 클릭한 다음 Value 필드에 프로젝트 이름을 입력합니다.
생성을 클릭하여 업데이트된 서비스 메시 멤버 롤을 저장합니다.
또는 다음 예제를 YAML 파일에 저장합니다.
Bookinfo ServiceMeshMemberRoll example servicemeshmemberroll-default.yaml
apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default spec: members: - bookinfo
다음 명령을 실행하여 해당 파일을 업로드하고
istio-system
네임스페이스에ServiceMeshMemberRoll
리소스를 만듭니다. 이 예제에서istio-system
은 Service Mesh Control Plane 프로젝트의 이름입니다.$ oc create -n istio-system -f servicemeshmemberroll-default.yaml
다음 명령을 실행하여
ServiceMeshMemberRoll
이 성공적으로 생성되었는지 확인합니다.$ oc get smmr -n istio-system -o wide
STATUS
열이Configured
인 경우 설치가 성공적으로 완료된 것입니다.NAME READY STATUS AGE MEMBERS default 1/1 Configured 70s ["bookinfo"]
CLI에서
bookinfo.yaml
파일을 적용하여 'bookinfo' 프로젝트에 Bookinfo 애플리케이션을 배포합니다.$ oc apply -n bookinfo -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.2/samples/bookinfo/platform/kube/bookinfo.yaml
출력은 다음과 유사합니다.
service/details created serviceaccount/bookinfo-details created deployment.apps/details-v1 created service/ratings created serviceaccount/bookinfo-ratings created deployment.apps/ratings-v1 created service/reviews created serviceaccount/bookinfo-reviews created deployment.apps/reviews-v1 created deployment.apps/reviews-v2 created deployment.apps/reviews-v3 created service/productpage created serviceaccount/bookinfo-productpage created deployment.apps/productpage-v1 created
bookinfo-gateway.yaml
파일을 적용하여 수신 게이트웨이를 생성합니다.$ oc apply -n bookinfo -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.2/samples/bookinfo/networking/bookinfo-gateway.yaml
출력은 다음과 유사합니다.
gateway.networking.istio.io/bookinfo-gateway created virtualservice.networking.istio.io/bookinfo created
GATEWAY_URL
매개변수 값을 설정합니다.$ export GATEWAY_URL=$(oc -n istio-system get route istio-ingressgateway -o jsonpath='{.spec.host}')