인프라&운영체제/Istio

[Istio] Istio란?

희랍인 조르바 2022. 1. 28. 12:50

Istio 마이크로서비스 간 데이터 공유를 제어하는 기반을 제공하는 오픈소스 서비스 메쉬 플랫폼이다.

 

서비스 메쉬란?

애플리케이션의 다양한 부분들이 서로 데이터를 공유하는 방식을 제어하는 방법이다.

서비스 간 커뮤니케이션을 관리하는 다른 시스템들과 달리, 서비스 메쉬는 애플리케이션에 구축된 전용 인프라 계층을 말한다. 

 

서비스 메쉬는 애플리케이션 간 통신을 위해 프록시 방식으로 구축되는데,

서비스 메쉬에서는 아래처럼 요청이 자체 인프라 계층의 프록시를 통해 마이크로서비스 간에 라우팅된다.

 

 

그래서 서비스 메쉬를 구성하는 개별 프록시는 서비스 내부가 아니라 각 서비스와 함께 실행되므로 'sidecar'라고도 불린다.

 

 

서비스가 직접 서비스 간에 커뮤니케이션 통신을 통제하는 코딩을 직접하지 않아도 되기 때문에 개발자는 비즈니스 로직에 더욱 집중 할 수 있다.

 

서비스 메쉬에 대해 더 자세히 보고 싶다면 Click


Istio 아키텍쳐

Data Plane

sidecar 프록시를 배포하여 istio 기능을 지원한다.

이 sidecar 프록시는 위의 그림처럼 마이크로 서비스와 나란히 위치하며 다른 프록시에서의 요청을 라우팅한다 

이러한 프록시는 마이크로서비스 간 네트워크 통신을 가로채는 메쉬 네트워크를 형성한다. 

아래처럼 파드 내부의 앱 count가 1/1이 아닌 2/2인 이유는 sidecar 프록시가 동시에 떠있기 때문이다.

 

이러한 프록시를 istio에서는 envoy proxy라고 부른다.

 

Control Plane

컨트롤 플레인은 프록시를 관리 및 설정하여 트래픽을 라우팅하며, 구성 요소를 설정하여 정책을 실행하고 텔레메트리를 수집한다.

이러한 역할은 istio에서 istiod가 수행한다.

 


Istio concepts(혹은 핵심 기능)

traffic management(트래픽 관리)

Istio에서의 트래픽 라우팅 및 룰 설정을 통해 서비스 간 트래픽 흐름 및 API 호출을 제어할 수 있다.

 

Observability(관찰 가능성)

Istio의 추적, 모니터링 및 로깅 기능을 통해 서비스 메쉬 배포 환경에 대한 인사이트를 확보할 수 있다.

모니터링을 통해 서비스 활동이 성능 업스트림 및 다운스트림에 어떻게 영향을 미치는지 파악할 수 있다.

커스텀 대시보드(대표적으로 kiali)를 통해 모든 서비스의 성능을 확인할 수 있다.

 

Security capabilities(보안)

기본 통신 채널을 제공하고 스케일에 따른 인증, 권한 부여 및 서비스 통신 암호화를 관리한다.

Istio를 활용하면 애플리케이션 변경을 최소화하면서 여러 프로토콜 및 런타임 전반에서 정책을 일관되게 실행할 수 있다.

Istio와 쿠버네티스(또는 인프라) 네트워크 정책을 함께 사용하면 네트워크 및 애플리케이션 레이어에서 포드(pod) 간 또는 서비스 간 커뮤니케이션을 보안할 수 있다.

 

출처