Istio는 클라우드 환경에서 Service Mesh를 구현할 수 있는 오픈소스 솔루션입니다. Service Mesh가 무엇이고 왜 사용되는지 궁금하시다면, 여기를 확인해보세요.
Istio를 사용하는 이유
Istio는 Service Mesh의 주요 기능들을 모두 지원하고 있는데요. Istio를 사용함으로써 얻을 수 있는 이점을 각 측면 별로 정리하면 아래와 같습니다.
- 가시성
- Service Mesh에서 발생하는 모든
Service
통신 관련 로그와 메트릭을 쉽게 모을 수 있음
- Service Mesh에서 발생하는 모든
- 트래픽 관리
- Service 사이의 트래픽과 API 요청을 별도의 레이어에서 제어 가능
Circuit Breaker
,Timeout
,Retry
와 같은Service
에 대한 속성을 별도 영역에서 쉽게 설정 가능
- 보안성
- 트래픽 허용 관련 Policy나 TLS 암호화, 인증 등의 기능 제공
- 도입 용이성
- Istio 생태계의 규모가 큰 덕분에 다양한 기술 문서나 적용 사례를 참고 가능
Istio의 동작 방식
Istio는 Service Mesh와 마찬가지로 데이터 플레인(Data Plane
)과 컨트롤 플레인(Control Plane
)으로 구성됩니다.
- 데이터 플레인
- Kubernetes의
Service
간의 통신을 담당 - Envoy라는 오픈소스 프록시를 각 Pod 내에 Sidecar로 배포
- Envoy 프록시가
Service
에 대해 발생하는 네트워크 트래픽을 가져와서 Istio의 각 기능을 수행 - Envoy 프록시는 컨트롤 플레인에서 Configuration한 설정이 일괄 적용됨
- Kubernetes의
- 컨트롤 플레인
Service
에 추가되는 프록시에 대한 Configuration을 담당하는 영역