■ ISTIO 아키텍쳐
: Istio 서비스메쉬는 논리적으로 데이터플레인과 컨트롤프레인으로 나뉜다.
⒧ 데이터플레인은 사이드카로 배포된 Envoy-Proxy의 집합으로 구성된다. 이러한 프록시는 마이크로서비스 간의 모든 네트워크 통신을 조정하고 제어한다. 또한 모든 Mesh Traffic에 대한 원격 분석을 수집하고 보고한다.
⑵ 컨트롤 플레인은 트래픽을 라우트하도록 프록시를 구성하고 관리한다.
■ 각 영역(Data/Control)별 핵심구성 요소에 대한 설명
⑴ Envoy(Proxy)
Envoy Proxy는 service mesh안의 모든 서비스들에 대한 모든 in/out bound 트래픽을 중재하기 위해 C++로 개발된 고성능 프록시 서버이다.
Envoy Proxy들은 데이터플레인 트래픽과 상호작용하는 유일한 Istio 컴포넌트이다. 또한 Envoy Proxy는 서비스에 대한 사이드카로 배포되어 다음과 같이 Envoy 기본 기능을 제공한다.
º Dynamic Service discovery
º Load Balancing
º TLS termination
º HTTP/2 and gRPC proxies
º Circuit breakers
º Health checks
º Staged rollouts with %-based traffic split
º Fault injection
º Many metrics
º 동적 Configuration API 제공
º 네트워크의 투명성을 목표
º 다양한 필터체인 지원
º L3/L4 필터
º HTTP L4 필터
(2) istio-proxy (sidecar, DataPlane)
º Golang으로 짜여져 있는 envoy를 래핑한 프록시
º envoy를 활용해 서비스앱의 사이드카 컨테이너로 활용
º 중앙 컨트롤플레인인 istiod와 통신하고 서비스 앱의 트래픽을 정해진 정책/필터에 따라 처리
º 관찰가시성을 위한 메트릭 제공
º 래핑 아이템으로 envoy를 택한 이유
- API 기반 Hot reload 기능
- 다양한 기능(L4, L7 필터 등)
- 친절한 네트워크 메트릭 제공(투명한 네트워크)
º Pod 내 네트워크 인터페이스를 컨테이너끼리 공유하여 iptables를 조작하여 inbound/outbound 트래픽 모두 istio-proxy가 처리
º 서비스 앱의 세밀한 네트워킹 설정에 대한 책임을 가져옴
(3) istiod (Control-Plane)
Istiod는 서비스 검색, 구성 및 인증서 관리를 제공한다.
Istiod는 트래픽 동작을 제어하는 고급 라우팅 규칙을 Envoy-Specific Configurations로 변환하고 런타임에 사이드카로 동기화 및 전파한다.(Sync)
또한 Istiod의 Pilot은 플랫폼별 서비스 검색 메커니즘을 추상화하고 Envoy API를 준수하는 모든 사이드카가 사용할 수 있는 표준 형식으로 통합한다.
'오픈소스 > ServiceMesh' 카테고리의 다른 글
[ISTIO] ISTIO란(1) (0) | 2022.11.08 |
---|