개요

마이크로 서비스 아키텍처로 구성된 서비스가 확장되다 보면, 관리하는 서비스가 많아져 서비스 간의 트래픽, 라우팅 관리가 어려워지는 순간이 찾아오게 된다. 이때 Istio라는 오픈 서비스 메쉬를 도입하면, 상호작용하는 마이크로서비스의 네트워크를 관리하고, 이를 통해 보안, 트래픽 관리, 모니터링 등의 기능을 사용할 수 있다. 따라서 Istio는 애플리케이션 코드와는 독립적으로 이러한 기능을 구현할 수 있도록 도와주며, 개발자는 비즈니스 로직에 집중할 수 있게 해준다.

 

아키텍처는 다음과 같다. 

 

Data Plane 

Data Plane은 마이크로 서비스와 프록시로 결합된 서비스들로 구성된다. 마이크로 서비스에 배포되어 트래픽을 가로채 모든 트래픽을 통제한다. Data Plane의 Envoy 프록시를 통해서 서비스를 호출할 경우에는 호출하는 서비스의 IP주소는 파일럿(Pilot)에 저장된 앤드포인트 정보를 활용한다. 

 

Envoy 프록시는 C++로 개발된 고성능 프록시 사이드카고 아래와 같은 기능을 담당한다.

- TCP, HTTP1, HTTP2, gRPC 프로토콜 지원

- TLS client certification

- L7 라우팅 지원 및 URL 기반, 부하 분산 조절

- Auto retry / Circuit Breaker 지원

 

Control plane

istiod의 내부에 Pilot Citadel Galley가 존재한다. 

 

Pilot

- 제어 평면으로, 서비스 간의 통신을 구성하고, Envoy를 통해 트래픽을 라우팅한다. (서비스 헬스체크 및 서비스 발견 기능도 포함)

 

Citadel

- 보안 관리 기능으로, 서비스 간의 통신을 안전하게 유지하기 위해 인증 및 권한 부여를 담당한다. 

 

Galley

- 구성 관리 역할을 하며, 정책을 정의하고 유효성을 검사한다.

 

트래픽 관리, 보안, 모니터링 및 로깅에 대해서 하나씩 알아보자. 

본인은 minikube로 구성한다. 

 

'DevOps > Kubernetes' 카테고리의 다른 글

Istio 정복하기 #3 - Istio Ingress Gateway - 하  (0) 2025.03.20
Istio 정복하기 #2 - Istio Ingress Gateway - 상  (0) 2025.03.20
Kubernetes ReplicaSet, Deployment  (0) 2023.01.17
Kubernetes Pod  (0) 2023.01.08
Kubernetes 구성 요소  (0) 2023.01.07