인프라/시스템 구축

[ istio ] istio 이란?

김붕어87 2023. 4. 13. 14:08
반응형
개요
istio는 MSA(마이크로서비스)간 데이터 공유를 제어하는 오픈 소스 서비스 메쉬 플랫폼이다.

istio 기능
- MSA 서비스간 통신(트래픽 라우팅, 부하 분산 등)
- 보안 (인증, 인가, 암호화 등)
- 모니터링
- 로깅

istio은 다양한 기능을 제공하지만 기술 습득의 많은 시간이 필요합니다.

 

 

[ istio 아키텍처 ]

[ istio 아키텍처 설명 ]

구분 설명
data plane
데이터 플레인은 사이드카로 배포된 istio-proxy(envoy)들로 구성된다.
istio-proxy를 통해서 MSA간의 모든 네트워크 통신을 제어한다.
트래픽의 내용을 수집 및 분석한다.
control plane
 
컨트롤 플레인은 트래픽을 라우팅하도록 istio-proxy(envoy)를 관리하고 구성한다.
istio1.4 버전은 파일럿(pilot), 믹서(mixer), 시타델(citadel), 갤리(galley)로 구성되어 있지만,
istio1.5 이상 버전부터는 4개의 모듈이 istiod 한 개의 모듈로 통합되었다.
pilot
 
envoy 설정 관리를 수행하는 모듈
envoy가 호출하는 서비스의 주소를 얻을 수 있는 service discover 기능
서비스 트래픽 라우팅 기능
서비스 안정성을 위해 서비스 간 호출 시 Time out, Retry, Circuit Breaker 기능
mixer 서비스 매쉬 엑세스 컨트롤 및 정책 관리 수행
envoy와 다른 서비스에서 모니터링 지표 수집
citadel
 
보안 관련 기능
사용자 인증을 통해서 서비스/앤드 유저 간의 인증
TLS(SSL) 통신 암호화와 인증서 관리
galley
 
istio configure 구성 설정 검증 및 배포 관리
Validation, ingrestion, processing, distribution 기능

 

[ istio 기능 ]

1. Traffic Management

간편한 규칙(Rule) 설정과 트래픽 라우팅(Traffic Routing) 기능을 통해서 서비스 간의 트래픽 흐름과 API 호출을 제어

Circuit Breakers, Time out, Retry, Fault injection, mirroring, Locality LoadBalancing 기능

백분율(weight) 기반으로 트래픽을 분할하여, Blue/Green test, Canary, staged 배포 작업을 지원

“Kind: VirtualService” 리소스를 배포해서 트래픽 관리를 설정할 수 있다.

 

 

2. Security 

Authentication(인증), Authorization(권한), TLS, Certificate Management 기능

 

 

3. Observability (모니터링)

Metrics(수집), Logs 기능

모니터링(Jaeger, Zipkin, Lightstep, Kiali 등)

 

 

[ istio 작동 방법 ]

  • istio 트래픽 흐름

 

 

 

  • 트래픽 분할

다른 버전의 pod를 배포하고, 버전 별로 트래픽의 양(weight)을 설정할 수 있다.

ex) current version에 95% 트래픽을 보내고, Canary version에 5% 트래픽을 보내서

새로운 버전의 기능 테스트가 가능하다.

 

 

  • 컨텐츠 기반의 트래픽 분할

Content-based routing (HTTP header, request URL, 등)으로 트래픽을 설정할 수 있다.

ex) HTTP 헤더의 User-agent 필드로 Android와 iPhone 구분해서 트래픽을 라우팅 한다.

 
 

 

 

 

 

반응형

'인프라 > 시스템 구축' 카테고리의 다른 글

[ EKS ] Nginx-Ingress  (0) 2023.04.18
[ istio ] Install  (0) 2023.04.13
[ EKS ] karpenter  (0) 2023.04.06
[ EKS ] ClusterAutoscaler (CA)  (0) 2023.04.06
[ EKS ] VPA  (0) 2023.04.06