Istio는 클라우드 환경에서 Service Mesh를 구현할 수 있는 오픈소스 솔루션입니다. Service Mesh가 무엇이고 왜 사용되는지 궁금하시다면, 여기를 확인해보세요.

Istio를 사용하는 이유

IstioService Mesh의 주요 기능들을 모두 지원하고 있는데요. Istio를 사용함으로써 얻을 수 있는 이점을 각 측면 별로 정리하면 아래와 같습니다.

  • 가시성
    • Service Mesh에서 발생하는 모든 Service 통신 관련 로그와 메트릭을 쉽게 모을 수 있음
  • 트래픽 관리
    • Service 사이의 트래픽과 API 요청을 별도의 레이어에서 제어 가능
    • Circuit Breaker, Timeout, Retry와 같은 Service에 대한 속성을 별도 영역에서 쉽게 설정 가능
  • 보안성
    • 트래픽 허용 관련 PolicyTLS 암호화, 인증 등의 기능 제공
  • 도입 용이성
    • Istio 생태계의 규모가 큰 덕분에 다양한 기술 문서나 적용 사례를 참고 가능

Istio의 동작 방식

Istio는 Service Mesh와 마찬가지로 데이터 플레인(Data Plane)과 컨트롤 플레인(Control Plane)으로 구성됩니다.

  • 데이터 플레인
    • Kubernetes의 Service 간의 통신을 담당
    • Envoy라는 오픈소스 프록시를 각 Pod 내에 Sidecar로 배포
    • Envoy 프록시Service에 대해 발생하는 네트워크 트래픽을 가져와서 Istio의 각 기능을 수행
    • Envoy 프록시컨트롤 플레인에서 Configuration한 설정이 일괄 적용
  • 컨트롤 플레인
    • Service에 추가되는 프록시에 대한 Configuration을 담당하는 영역

References