반응형
개요
istio는 MSA(마이크로서비스)간 데이터 공유를 제어하는 오픈 소스 서비스 메쉬 플랫폼이다.
istio 기능
- MSA 서비스간 통신(트래픽 라우팅, 부하 분산 등)
- 보안 (인증, 인가, 암호화 등)
- 모니터링
- 로깅
istio은 다양한 기능을 제공하지만 기술 습득의 많은 시간이 필요합니다.
- istio 공식 홈페이지 : https://istio.io/latest/about/service-mesh/#what-is-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 |