DevOps/Kubernetes

서비스 메시

우드의개발개발 2024. 10. 30. 15:54

서비스 메시란

 

서비스 메시는 마이크로 아키텍처 환경에서 코드의 변경 없이 서비스 간 통신을 담당하는 레이어이다. 여기서 서비스란 마이크로서비스 아키텍처에서 특정 기능을 제공하는 독립적인 소프트웨어 컴포넌트를 의미한다. 주로 담당하는 기능은 아래와 같다.

 

- Traffic Management (트래픽 관리)

- Security (보안)

- Observability (모니터링 + 로깅)

- Service Discovery (서비스 간 통신)

 

서비스 메시 구성요소

서비스 메시의 구성 요소로 컨트롤 플레인과 데이터 플레인이 있으며 각기 다른 역할과 기능을 갖고 있다.

 

컨트롤 플레인 (Control Plane):

 

관리 및 조정: 네트워크, 서비스, 또는 클러스터의 구성, 정책, 및 규칙을 정의하고 관리합니다.

메타데이터 처리: 서비스 간의 통신을 조정하기 위해 필요한 메타데이터를 처리합니다.

정책 배포: 보안 정책, 라우팅 규칙, 트래픽 관리 정책 등을 설정하고 이를 서비스에 배포합니다.

예시: Istio의 Pilot, Linkerd의 Controller 등.

 

데이터 플레인 (Data Plane)

 

트래픽 처리: 실제 애플리케이션 트래픽(요청 및 응답)을 처리합니다.

로깅 및 모니터링: 트래픽에 대한 로깅, 모니터링, 트래픽 관리(예: 로드 밸런싱, 리트라이, 타임아웃 등)를 수행합니다.

프록시 역할: 서비스 간의 통신을 위해 프록시 서버가 데이터 플레인에 위치합니다.

예시: Envoy, Linkerd 프로키시 등.

 

 

 

이스티오 / Istio

 

서비스 메시 중에서 대표적 오픈소스인 이스티오에 대해 보자. 이스티오는 크게 3가지로 구성된다. Citadel, Pilot, Galley 이다. 세개의 컴포넌트는 Istiod 라는 서비스 데몬 형태로 인스턴스화된다. 데이터 플레인 진영에는 서비스 별로 Istio Agent가 구성된다. Istio Agent는 설정 관련 값을 envoy로 전달한다. envoy는 고성능 L7프록시로 마이크로서비스 간 통신을 처리한다.

 

Istio와 Envoy

Istio가 서비스 메쉬의 전체적의 프레임워크이고 Envoy 같은 여러 프록시를 포함한다. Envoy는 서비스 메쉬에서 사용할 수 있는 하나의 프록시로  Istio 외 다른 플랫폼에도 사용할 수 있다.

 

Istio 구성 요소

Citadel

보안 관리: 서비스 간의 통신을 보호하기 위한 인증 및 권한 부여 기능을 제공한다.

TLS 암호화: 서비스 간의 연결을 TLS로 암호화하여 보안을 강화한다.

 

Pilot

서비스 발견 및 라우팅: Istio의 핵심 컴포넌트로, 서비스 간의 통신을 위한 라우팅 규칙을 정의하고 적용한다.

프록시 구성: Envoy 프록시에 대한 구성 정보를 제공한다.

 

Galley

설정 파일이 유효한지 검증하는 기능을 수행한다.

 

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

트러블슈팅  (1) 2024.11.06
인그레스 컨트롤러  (0) 2024.10.30
쿠버네티스 클러스터와 네트워크  (0) 2024.10.29
Kubernetes Image  (0) 2024.10.29
Service Account 관련 주요 사항  (0) 2024.10.29