[Istio] 사이드카, 데이터 플레인, 컨트롤 플레인

y001·2025년 5월 17일
post-thumbnail

서비스 메시란?

서비스 메시란 마이크로서비스 간 통신을 관찰하고 제어할 수 있는 네트워크 계층을 말한다. 일반적인 Kubernetes 환경에서는 포드 간 통신이 단순하게 직접 연결되며, 요청 실패나 지연 원인을 파악하기 어렵다.

기존 구조의 한계

아래 그림처럼 컨테이너 간 직접 네트워크 호출이 이루어지지만, 통신 경로의 가시성이나 제어는 부족하다. 이 구조만으로는 트래픽 흐름, 에러 발생 위치, 지연 원인 등을 파악하기 어렵다.

서비스 메시의 도입

서비스 메시를 도입하면 다음과 같은 추가 계층이 통신 흐름에 삽입된다. 이 계층은 모든 네트워크 요청을 가로채고, 메트릭 수집, 트래픽 제어, 보안 정책 등을 적용할 수 있다.

이와 같은 구조를 통해 각 요청은 Mesh Logic을 거쳐 흐르게 되며, 이 로직은 요청 전후에 다양한 처리를 수행할 수 있다.


Istio는 어떻게 동작하는가?

Istio는 각 포드(Pod)에 **프록시 컨테이너(Envoy)**를 함께 주입하여 서비스 메시를 구현한다. 이 프록시는 사이드카(Sidecar) 형태로 배치되며, 본 컨테이너에서 나가는 모든 트래픽은 먼저 프록시를 거치게 된다.

사이드카 프록시 구조

다음은 Istio가 메시를 구현하는 방식이다. 본 컨테이너 외에 프록시 컨테이너가 함께 배치된다.

이 구조를 통해 마이크로서비스 간의 모든 통신은 사이드카 프록시를 통해 흐르게 되며, 여기서 메트릭 수집, 트래픽 제어, 보안 인증 등의 로직이 실행된다.


Istio의 구조: 데이터 플레인과 컨트롤 플레인

Istio는 크게 두 개의 영역으로 나뉜다.

데이터 플레인 (Data Plane)

  • 각 Pod에 주입된 Envoy Proxy들이 데이터 플레인을 구성한다.
  • 이들은 실제 네트워크 요청을 전송하고 수신하며, 요청에 대한 모니터링이나 인증, 제어 로직을 수행한다.

컨트롤 플레인 (Control Plane)

  • istiod라는 핵심 컴포넌트를 중심으로 구성된다.
  • 이 컴포넌트는 프록시에게 정책을 전달하고, 서비스 디스커버리, 인증서 발급, 트래픽 설정 등을 담당한다.
  • 최신 Istio에서는 과거의 복잡한 컴포넌트(pilot, citadel, galley 등)를 하나로 통합하여 단순화되었다.

0개의 댓글