cloud bee

kubernetes istio Architecture 본문

이론 및 개념정리/kubernetes

kubernetes istio Architecture

who you 2022. 10. 22. 16:25

istio architecture

 

istio architecture는 위 사진과 같다. 처음에 architecture를 확인하였을 때 이해가 가지 않았다. 하지만 kubernetes 실습을 통해서 어떤 식으로 동작하는지 어느 정도 이해를 하여 글을 남기게 되었다. 

 

실습은 다음과 같은 사이트를 통해 진행되었다 https://istio.io/latest/docs/examples/bookinfo/ 

 

Bookinfo Application

Deploys a sample application composed of four separate microservices used to demonstrate various Istio features.

istio.io

 

이 사이트에 접속하면 sample app에 관한 것을 확인할 수 있다.

istio 동작 구조

해당 사이트의 sample file의 동작 구조이다. 사진을 살펴보면 requests 요청을 ingress로 전송을 한다. 해당 ingress는 외부에서 내부로 접속하는 로드밸런서라고 생각하면 된다. < ingress URL >/productpage라는 페이지로 requests 요청을 전송하면 Envoy proxy를 통해 Product 페이지가 반환이 되고, 아래사진과 같이 reviews, details 항목이 표시된 걸 볼 수 있다.

 

접속할때 표시되는 페이지 이다.

BookInfo 서비스 설치를 하기 위해선 istio의 sidecar injection을 활성화해야 한다.

Istio는 Pod의 envoy를 sidecar 패턴으로 삽입하며 트래픽을 컨트롤하기 때문이다. 활성화하기 위해선 kubernetes에서 다음과 같은 명령어를 입력해야 한다. kubectl label namespace default istio-injection=enabled 

활성화를 하였다면 아까 위에 링크 걸어둔 사이트로 접근하여 application service를 시작하면 된다.

 

--> 여기까지가 실습하였던 내용이다.

 

이해한 토대를 바탕으로 위에서도 올려두었던 아키텍처의 내용을 어느 정도 이해하게 되었다.

istio mesh

우선 ingress(Load Balancer)로 proxy 서버를 접근한다. service A-> service B로 가는 트래픽을 통해 내부의 있는 트래픽들이 Egress Traffic로 빠져나가게 된다. 즉 프록시의 프록시를 거쳐 내부 -> 외부로 트래픽이 빠져나간다.

 

Control plane를 통해 해당 Data Plane를 컨트롤할 수 있다. Data Plane은 Service와 proxy가 위치한 곳이다.

해당 아키텍처의 Control Plane의 구성요소는 다음과 같다.

 

1. Pilot(파일럿)

  • Envoy에 대한 configuration 관리를 담당하는 역할을 수행한다.
  • 트래픽의 경로를 컨트롤한다. ex) 서비스 <-> 서비스
  • 서비스의 장애전파를 막기 위해 써킷 브레이커, Timeout 등의 기능을 제공한다.

2. Citadel(시타델)

  • 보안과 연관 있는 기능들을 수행하는 모듈이다.
  • TLS(SSL) 방식으로 통신 암호화 및, 인증서 관리가 가능하다.
  • user authentication을 통해 service/end user 간의 autoentication을 강화한다.

3. Galley(갤러리)

  • Istio의 구성을 확인하고 체크한다.
  • istio가 이해할 수 있는 형태로 kubernetes의 yaml파일을 변환한다.

 

Comments