[오픈소스] Istio

    728x90
    반응형

    Istio

    What is Istio?

    클라우드 네이티브 애플리케이션의 서비스 메쉬를 구축하기 위한 오픈 소스 플랫폼이다.

    Istio의 핵심은 Service 로 가는 모든 통신의 경로를 통제하고 모니터링하는 것이다.

    출처: https://istio.io/latest/about/service-mesh/

     

    Istio의 주요기능

    1. 트래픽 관리: 서비스 간의 트래픽 흐름을 제어하고, Routing, LB, Timeout 등의 정책을 설정할 수 있다.
    2. 보안: 서비스 간의 통신을 암호화하고, 인증 및 권한 부여를 지원하여 보안을 강화할 수 있다.
    3. 모니터링 및 로깅: 서비스의 성능을 모니터링하고, Metry, Log, Tracing을 수집하여 문제를 진단할 수 있도록 돕는다.
    4. 서비스간의 분리: 네트워크와 애플리케이션의 복잡성을 줄여주어 개발자들이 비즈니스 로직에 집중할 수 있게 한다.

     

    Istio Architecture

    Istio는 크게 Data plane, Control plane으로 나뉘어져 있다.
    Data Plane은 주로 Envoy 프록시를 통해 구성되며, 실제 서비스 간의 트래픽을 처리하고, 요청을 라우팅하며, 다양한 기능을 수행한다.
    Control plane은 Data plane의 설정, 관리, 조정 및 모니터링과 Telemetry를 담당한다.

     

    Control plane의 구성요소

    1. Pilot
    2. Mixer
    3. Citadel

    Istio 1.7 이후, Control plane의 주요 기능이 Istiod에 통합되었다.

    서비스 디스커버리: MSA에서 하나의 서비스가 다른 서비스의 위치(Ip, Port)를 자동으로 찾아내는 기능이다.

    Telemetry: MSA간의 네트워크 연결성을 추적하고 기록하는 기능이다.


    Service Mesh

    What is Service Mesh?

    애플리케이션의 다양한 부분들이 서로 데이터를 공유하는 방식을 제어하는 방법이다.
    MSA에서 복잡한 서비스 간 통신을 처리하는 중앙 집중식 전용 인프라 계층을 제공한다.
    사이드카 패턴을 사용하여 각 서비스에 프록시(서비스 간의 모든 통신을 관리하며 필요한 기능을 수행)를 배치한다.

    출처: https://www.tibco.com/ko/reference-center/what-is-a-service-mesh

     

    서비스 메쉬의 장점

    1. 서비스 간의 연결, 보안, 모니터링, 트래픽 관리 등을 자동화하고 단순화할 수 있다.
    2. 각 서비스의 코드와 독립적이므로 네트워크 경계를 넘어 여러 서비스 관리 시스템에서 작동할 수 있다.

    Sidecar Pattern

    What is Sidecar Pattern?

    애플리케이션 컨테이너와 독립적으로 동작하는 별도의 컨테이너를 붙이는 패턴이다.

    애플리케이션 코드와 인프라 코드 간의 결합도를 낮추고, 각 컴포넌트의 관리와 배포를 용이하게 한다.

    위 애플리케이션과 동일한 수명 주기를 공유하므로 상위 애플리케이션과 함께 만들어지고 사용 중지된다.
    컨테이너가 기존에 존재하는 다른 컨테이너의 기능을 향상시키는 방법으로 협업을 가능하게 한다.

    출처: https://www.redhat.com/ko/topics/microservices/what-is-a-service-mesh

     

    출처: https://thenewstack.io/why-do-you-need-istio-when-you-already-have-kubernetes/


    In Kubernetes

    Istio와 Envoy의 관계

    Envoy는 Istio의 핵심 구성 요소다. 고성능의 오픈 소스 L7프록시(애플리케이션 레이어)로, 서비스 간의 통신을 관리하고 처리한다.

    Istio는 Envoy를 관리하고 구성하는 상위 계층으로, 다양한 기능을 추가하여 MSA의 전반적인 운영을 지원한다.

     

    Istio와 Envoy의 관계

    1. Envoy는 Istio에서 사이드카 프록시로 사용되며, MSA인스턴스 옆에 배치되어 모든 트래픽을 가로채고 관리한다.
    2. Istio는 Envoy를 기반으로 구축된 서비스 메쉬 플랫폼으로, MSA의 복잡성을 관리하는 데 용이하다.
    3. Kubernetes에서는 Envoy가 Pod에 Sidecar형태로 배포된다.
    4. Telemetry를 측정하기 위해 Envoy를 사용한다. Telemetry를 이용해 kiali나 jaeger 같은 모니터링 툴로 서비스끼리의 네트워크 연결을 모니터링할 수 있다.

     

    728x90
    반응형

    댓글