Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Study_note

[Service Mesh] Istio BookInfo 본문

Servic Mesh

[Service Mesh] Istio BookInfo

Study_note 2022. 11. 14. 20:03

Istio BookInfo

Istio를 설치하면 Istio뿐만 아니라 연습으로 생성할 수있는 야믈파일들을 같이주는데 해당 야믈들을 보면서 istio를 이해하면 좋다고 한다.

경로는 설치한 istio디렉토리/samples/bookinfo/platform/kube에 야믈 파일들인 존재한다.

 

트래픽 흐름

1. * 로 호스트를 전부 열어줘서 Gateway로 요청이 들어온다

2. 들어온 트래픽은 VirtualService를 통해서 productpage서비스로 접근

3. productpage에 설치되어있는 envoy를 통해 모든 서비스로 라운드로빈

(virtual service 가 없는 경우, envoy는 모든 서비스 인스턴스 간에 round robin 로드 밸런싱)

4. productpage가 필요한 리뷰서비스와 디테일 서비스 호출

5. 리뷰 서비스는 3가지 버전이 있고 이 중 2가지 버전이 뒤에 ratings를 호출 (검정별, 빨간별)

 

Client --> Istio Gateway --> Istio Virtual Service --> K8s Service

 

구축하는 형태는 아래와 같다

생성 순서

 

우선 모든 default 네임스페이스에 envoy를 설치하기 위해 라벨 설정

kubectl label namespace default istio-injection=enabled

 

후 아래 경로에서 해당 야믈파일들 생성

samples/bookinfo/platform/kube/bookinfo.yaml

samples/bookinfo/networking/bookinfo-gateway.yaml

 

bookinfo.yaml 아래와 같다

처음 보여준 그림 처럼 productpage, detail, rating, review (v1~v3)를 배포

배포할때 야믈파일을 확인해보면 서비스어카운트, 디플로이먼트, 서비스 생성를 생성하는거 확인 가능

 

 

bookinfo-gateway.yaml는 아래와 같다 

gateway 설명

호스트를 *로 지정해 모든 호스트를 받고 selector 타입으로 istio-gateway를 사용

 

VirtualService설명

위의 gateway의 메타데이터 이름을 지정해서 매핑 또한 호스트를 *로 지정해 모든 호스트 허용

match를 사용해서 매치되는 url만 route할 수 있게 적용

매치된 url 라우터를  생성했던 productpage 서비스와 매핑

 

gateway를 istio-gateway로 사용했기 때문에 istio-ingressgateway의 dns로 접근 하고 VirtualService 매치된 url 라우터를  생성했던 productpage 서비스와 매핑했기 때문에 istio-ingressgateway의 dns/roductpage로 접속

접속 가능

'Servic Mesh' 카테고리의 다른 글

[Service Mesh] Envoy 용어 및 xDS, ADS정리  (0) 2022.11.22
istio 생성 및 사이드카 인젝션  (0) 2022.11.03
Comments