Overview
오늘은 Service Mesh를 구현할 수 있는 오픈소스 중 하나인 lstio를 공부해볼 예정이다.
Service Mesh에 대한 내용은 아래의 포스팅에 정리되어 있다.
2023.03.08 - [IaC/Service Mesh] - Service Mesh vs Api Gateway
lstio란?
Istio는 마이크로서비스 아키텍처의 관리, 보안 및 관찰 가능성을 단순화하는 것을 목표로 하는 오픈 소스 Service Mesh 플랫폼이다. C++로 개발된 고성능 프록시 사이드카이다.
2017년에 처음 출시된 Istio는 특히 Kubernetes와 같은 컨테이너화된 환경에서 마이크로 서비스를 배포, 확장 및 유지 관리할 때 발생하는 복잡성을 해결하기 위한 방법으로 Google, IBM 및 Lyft에서 개발하였다.
Istio의 주요 기능
트래픽 관리(Traffic Management)
- Istio는 마이크로서비스의 트래픽 라우팅, 로드 밸런싱 및 복원력에 대한 세밀한 제어를 제공한다. A/B 테스트, 카나리아 배포, 오류 주입과 같은 기능을 사용하여 애플리케이션의 복원력을 테스트할 수 있다.
보안(Security)
- Istio는 서비스 간 통신 암호화를 위한 상호 TLS(mTLS)를 포함하여 마이크로서비스를 위한 강력한 보안 기능을 제공한다. 또한 서비스에 대한 인증, 권한 부여 및 보안 ID 관리를 관리한다.
관측 가능성(Observability)
- Istio는 내장된 원격 측정, 로깅 및 모니터링 기능을 제공하여 마이크로서비스의 관측 가능성을 향상시킨다. 서비스에서 메트릭과 추적을 수집하여 개발자와 운영자가 애플리케이션의 성능, 안정성 및 효율성에 대한 통찰력을 얻을 수 있도록 한다.
확장성(Extensibility)
- Istio는 다양한 플러그인과 어댑터를 사용하여 확장 및 사용자 정의할 수 있으므로 조직에서 기존 도구 및 인프라와 통합할 수 있다.
Istio 구성 요소
Istio에서 Data Plane과 Control Plane은 서비스 메시의 통신, 구성 및 기능을 관리하기 위해 함께 작동하는 두 가지 필수 구성 요소이다.
Data Plane(데이터 플레인)
Data Plane은 서비스 메시의 각 마이크로서비스와 함께 배포되는 지능형 프록시 세트(Istio에서는 Envoy 프록시임)로 구성된다.이러한 프록시는 마이크로 서비스 간에 들어오고 나가는 모든 네트워크 트래픽을 가로채고 Control Plane에서 제공하는 구성을 기반으로 서비스 메시 내에서 라우팅, 로드 밸런싱 및 통신을 관리한다.
Data Plane은 또한 원격 측정 데이터를 수집하고 Control Plane에서 받은 정책을 적용한다.
- Control Plane은 운영자 또는 개발자로부터 높은 수준의 구성 및 정책을 받아 처리한다.
- 이러한 높은 수준의 구성은 Pilot, Mixer 및 Citadel과 같은 구성 요소에 의해 특정 프록시 구성으로 변환된다.
- Data Plane의 Envoy 프록시는 이러한 구성을 수신하여 마이크로서비스 간의 트래픽 흐름에 적용한다.
- 또한 Envoy 프록시는 제어 평면 구성 요소의 지시에 따라 원격 측정 데이터를 수집하고 정책을 시행한다
Envoy
- 마이크로서비스 간에 들어오고 나가는 모든 트래픽을 가로채는 고성능 경량 프록시이다. 서비스 메시 내에서 로드 밸런싱, 라우팅 및 통신을 관리한다.
Control Plane(컨트롤 플레인)
Control Plane은 서비스 메시의 전반적인 동작을 관리하고 구성하는 역할을 한다. 높은 수준의 정책, 트래픽 관리 규칙 및 보안 구성을 처리하고 이를 Data Plane의 프록시에 필요한 특정 구성으로 변환한다. Istio에서 컨트롤 플레인은 다음 구성 요소로 구성된다.
Pilot
- 서비스 메시의 동작을 관리하고 구성하는 구성 요소이다. 고급 라우팅 규칙을 Envoy별 구성으로 변환하고 이를 프록시에 전파한다. Pilot이 Mixer 기능까지 함께 수행한다.
- 트래픽 관리 규칙 및 서비스 검색 정보를 포함하여 서비스 메쉬의 구성을 관리한다.
- Service Discovery(서비스 검색)
- Traffic Management(트래픽 관리)
- Load Balancing(로드 밸런싱)
- Resilience(복원력)
- Traffic Splitting(트래픽 분할)
- Configuring TLS setting(TLS 셋팅)
- Cross-Platform Support(교차 플랫폼 지원)
Mixer(Removed) - Mixer has been removed from the Istio architecture since the release of Istio 1.5
- 정책 시행 및 원격 측정 수집 구성 요소이다. 액세스 제어, 속도 제한 및 할당량 관리 정책을 적용하고 프록시에서 원격 측정 데이터를 수집한다.
Citadel
- 서비스 간 통신을 위한 인증서 관리를 제공하여 상호 TLS 인증을 가능하게 하는 보안 구성 요소이다.
Galley
- Istio의 구성 데이터를 관리하고 서비스 메시 전체에서 일관성을 유지하는 구성 유효성 검사 및 배포 구성 요소이다.
- Istio configuration을 체크하고 yaml 파일을 Istio가 읽을 수 있게 변환시켜준다.
Reference
istio 아키텍처
istio란? IBM
istio 정리 참고 블로그
'IaC > Service Mesh' 카테고리의 다른 글
Istio 설치 및 실습 (0) | 2024.02.13 |
---|---|
Service Mesh vs Api Gateway (0) | 2023.03.08 |