전공영역 공부 기록

istio 공식샘플 - book application

악분 2022. 3. 23. 23:15
반응형

안녕하세요. 이 글은 istio공식문서에서 제공하는 book application설치 방법을 설명합니다.

 

1. book application이란?

istio는 istio를 잘 이해할 수 있도록 book application 샘플을 제공합니다. 마이크로서비스로 개발되어 있어서 다양한 언어로 개발되어 있습니다.

 

book application을 istio에 적용하면 아래와 같습니다.

① 사용자는 Ingress gateway를 통해 Product page 애플리케이션에 접근합니다. Product Page는 상품소개 페이지입니다.

② Product Page는 Review(상품 리뷰), Detail(상품 설명)애플리케이션을 호출하여 응답결과를 한 페이지 보여줍니다.

③ Review는 버전이 버전 1, 2, 3이 존재하고 Product Page는 Review버전을 로드밸런싱 합니다.

④ Review 버전 2,3은 Rating(상품평점)애플리케이선을 호출하여 응답결과를 화면에 출력합니다.

출처: https://istio.io/latest/docs/examples/bookinfo/

 

2. Book application 설치

설치 방법은 매우 쉽습니다. 공식문서에 있는 내용을 복사&붙여넣기 하시면 됩니다. 

공식문서 링크: https://istio.io/latest/docs/examples/bookinfo/

 

2.1 default namespace injection설정

default namespace에 라벨을 설정하여 injection상태를 활성화합니다.

kubectl label namespace default istio-injection=enabled

 

2.2 pod, service 배포

istio git프로젝트를 clone합니다.

git clone https://github.com/istio/istio.git

 

istio에서 제공하는 샘플.yaml을 kubectl로 배포합니다.

cd istio
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

 

2.3 pod, service 배포확인

pod가 running상태인지 확인합니다.

kubectl get pods

 

rating pod에서 productpage pod를 호출해서 product page에 잘 접근이 되는지 확인합니다. 정상응답은 Simple Book App이 화면에 출력됩니다.

kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -sS productpage:9080/productpage | grep -o "<title>.*</title>"

 

2.4 Ingress gateway 배포

외부에서 서비스 메시를 통하여 마이크로서비스를 접근하기 위해 ingress gateway를 배포합니다.

kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

 

2.5 외부에서 ingress gateway호출

gateway, virtualservice를 확인합니다.

 kubectl get gw,virtualservice

 

직접 호출해보기 위해, ingress gateway주소를 환경변수로 저장합니다.

kubectl -n istio-system get svc,po -l istio=ingressgateway
export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT

 

productpage를 ingress gateway로 호출해보세요!.

 curl -s "http://${GATEWAY_URL}/productpage" | grep -o "<title>.*</title>"

 

2.6 Destination Rule배포

Review애플리케이션을 버전별로 관리하기 위해 Destination Rule을 배포합니다.

kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml

 

리뷰 버전별 호출 확인은 웹브라우저로 확인할 수 있습니다. 버전에 따라 리뷰색깔이 다르거나 없을 수 있습니다.

리뷰가 검은색

 

리뷰가 빨간색

반응형

'전공영역 공부 기록' 카테고리의 다른 글

Istio 아키텍처  (0) 2022.03.26
pod강제 삭제  (0) 2022.03.24
쿠버네티스 노드당 pod갯수 제한확인  (0) 2022.03.21
istio injection 설정  (0) 2022.03.21
istio operator  (0) 2022.03.21