Community

마이크로서비스 아키텍처 설계 또는 구현을 위해 분산 네트워킹 구현시 사용하는 istio를 이해하기에 좋은 글입니다. 기획자/개발자/운영자분들은 한번 읽어보시길 추천드립니다! > Istio란 -

마이크로서비스 아키텍처 설계 또는 구현을 위해 분산 네트워킹 구현시 사용하는 istio를 이해하기에 좋은 글입니다. 기획자/개발자/운영자분들은 한번 읽어보시길 추천드립니다! > Istio란 - Istio를 도입하면 쿠버네티스의 복잡성을 줄일 수 있다. - MicroService Architecture의 분산 네트워크 환경(Kubernetes)에서 각 app들의 네트워크 연결을 쉽게 설정할 수 있도록 지원하는 기술이다. - Istio는 Envoy를 Data Plane으로 사용하고 이를 control해주는 오픈 소스 솔루션이다. - Envoy를 이용해서 Service Mash를 구현하기 위해서는 Envoy로 구성된 Data Plane을 control할 솔루션이 필요하다. -> Service Mesh를 활용한 네트워크 구성시 장점 // Kubernetes 환경의 네트워크(service Mesh) 관리에서 가장 많이 사용되는 오픈 소스가 istio이다. > Istio Architecture > Istio의 내부 핵심 구성 1. Data Plane - 실제로 트래픽을 받아 처리해주는 파트다. - Service의 Sidecar 형태로 구성된 Proxy들을 가리킨다. - Data Plane은 Control Plane에 의해 통제된다. - Istio에서는 envoy를 sidecar proxy로 사용한다. 2. Control Plane - Data Plane을 컨트롤하는 구성 요소를 가리킨다. - Pilot, Mixer, Citadel, Galley 등으로 구성되어 있다. > 기능 1. 트래픽 통제 버전별로 트래픽 양 조절 또는 네트워크 패킷 내용 기반의 라우팅 기능 제공 1) 트래픽 분할 2) 컨텐츠 기반의 트래픽 분할 2. 서비스간 안정성 제공 (Resilience) Pilot은 트래픽 통제를 통해서 서비스 호출에 대한 안정성을 제공한다. 1) 헬스체크 및 서비스 디스커버리 2) Retry, Timeout, Circuit breaker 3. 보안 서비스에 대한 보안 기능을 추가해준다. 1) 통신 보안, 2) 서비스 인증과 인가, 3) 서비스간 인증, 4) 서비스와 사용자간 인증, 5) 인가를 통한 권한 통제 (Authorization) 4. 모니터링 마이크로 서비스에서 문제점중의 하나는 서비스가 많아 지면서 어떤 서비스가 어떤 서비스를 부르는지 의존성을 알기가 어렵고, 각 서비스를 개별적으로 모니터링 하기가 어렵다는 문제가 있다. Istio는 네트워크 트래픽을 모니터링함으로써, 서비스간에 호출 관계가 어떻게 되고, 서비스의 응답 시간, 처리량등의 다양한 지표를 수집하여 모니터링할 수 있다.

알림

알림이 없습니다