-
[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) 간 또는 서비스 간 커뮤니케이션을 보안할 수 있다.
출처
'인프라&운영체제 > Istio' 카테고리의 다른 글
[Istio] 세분화된 url 라우팅을 위한 Virtual Service 작성방법 (0) 2022.02.23 [Istio] gateway tls 설정 방법 (0) 2022.01.29 [Istio] gateway 사용법 (0) 2022.01.29