
서비스 메시란 마이크로서비스 간 통신을 관찰하고 제어할 수 있는 네트워크 계층을 말한다. 일반적인 Kubernetes 환경에서는 포드 간 통신이 단순하게 직접 연결되며, 요청 실패나 지연 원인을 파악하기 어렵다.
아래 그림처럼 컨테이너 간 직접 네트워크 호출이 이루어지지만, 통신 경로의 가시성이나 제어는 부족하다. 이 구조만으로는 트래픽 흐름, 에러 발생 위치, 지연 원인 등을 파악하기 어렵다.
서비스 메시를 도입하면 다음과 같은 추가 계층이 통신 흐름에 삽입된다. 이 계층은 모든 네트워크 요청을 가로채고, 메트릭 수집, 트래픽 제어, 보안 정책 등을 적용할 수 있다.

이와 같은 구조를 통해 각 요청은 Mesh Logic을 거쳐 흐르게 되며, 이 로직은 요청 전후에 다양한 처리를 수행할 수 있다.
Istio는 각 포드(Pod)에 **프록시 컨테이너(Envoy)**를 함께 주입하여 서비스 메시를 구현한다. 이 프록시는 사이드카(Sidecar) 형태로 배치되며, 본 컨테이너에서 나가는 모든 트래픽은 먼저 프록시를 거치게 된다.
다음은 Istio가 메시를 구현하는 방식이다. 본 컨테이너 외에 프록시 컨테이너가 함께 배치된다.

이 구조를 통해 마이크로서비스 간의 모든 통신은 사이드카 프록시를 통해 흐르게 되며, 여기서 메트릭 수집, 트래픽 제어, 보안 인증 등의 로직이 실행된다.
Istio는 크게 두 개의 영역으로 나뉜다.
istiod라는 핵심 컴포넌트를 중심으로 구성된다.