티스토리 뷰

Traffic Management


Overview


이 포스팅은 Istio가 어떻게 트래픽 관리를 하는지에 대한 개요입니다. 


Pilot and Envoy


Istio에서 트래픽 관리를 위해 사용되는 핵심 요소는 Pilot입니다. Pilot은 Istio 서비스 메시에 배포된 모든 Envoy 프록시를 관리하고 구성합니다. Pilot은 Envoy 프록시들 간의 트래픽을 라우팅하고자 할 때 어떤 룰을 사용할지 지정하고 timeout, retires, circuit breaker와 같은 failure recovery 기능을 설정합니다. 또한 메시 내 모든 서비스의 정형화된 모델을 유지하고 이를 Envoy가 검색 서비스를 통해 메시 내 다른 인스턴스에 대한 정보를 찾아내는데 사용됩니다.


각 Envoy 인스턴스는 Pilot과 로드밸런싱 풀 내에 존재하는 다른 인스턴스들에게 주기적인 health check를 하여 얻어낸 정보를 기반으로 로드밸런싱 정보를 관리합니다. 또한 특정된 라우팅 룰을 따르는 동안 대상 인스턴스들 간의 트래픽을 분산하는 것을 지능적으로 제어합니다.


Traffic management benefits


Istio의 트래픽 관리 모델을 사용하게 되면 핵심적으로 트래픽 흐름과 인프라스트럭처 확장을 분리하게 되며 어떤 특정 Pod/VM이 트래픽을 받아야 하는가에 대한 결정 보다는 운영자가 원하는 트래픽 흐름을 Pilot을 통해 지정하게 된다는 것입니다 - Pilot과 Envoy 프록시는 나머지 것들을 돌보게 됩니다. 예를 들어 운영자는 Pilot을 통해 5%의 트래픽을 특정 서비스에서 canary version 서비스로 보낼 수 있습니다. 또는 요청하는 컨텐트에 따라 특정 버전으로 보낼 수 있습니다.




Traffic Management with Istio



이와 같이 인프라 확장에서 트래픽 흐름을 분리하면 Istio는 애플리케이션 코드와 상관없이 다양한 트래픽 관리 기능을 제공할 수 있습니다. 또한 A/B testing, gradual rollouts, canary release와 같은 동적인 Request routing 도 가능합니다. 또한 timeout, retry, circuit breaker 와 같은 failure recovery를 할 수 있으며 최종적으로 fault injection을 통해 서비스 들 간의 failure recovery 정책의 호환성을 검증할 수 있습니다. 이러한 기능들은 서비스 메시에 배포된 Envoy sidecar/proxy 를 통해 구현됩니다.


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함