베하 비티시보이즈 입니다.
이번글에서는 Istio에 대해서 알아보겠습니다.
istio는 서비스 메시를 관리하는 오픈 소스 소프트웨어입니다.
Istio는 마이크로서비스 아키텍처에서 실행되는 서비스 간 통신과 각 서비스의 행동을 관리하며
네트워크 트래픽을 보안, 라우팅, 부하 분산 등의 작업을 수행할 수 있습니다.
Istio는 Envoy와 같은 sidecar 프록시를 사용하여 애플리케이션 코드 수정 없이 인프라스트럭처 계층에서 행동을 제어할 수 있습니다.
그래서 Istio를 사용하게 되면 MSA의 분산 네트워크 환경에서 각 app들의 네트워크 연결을 쉽게 설정할 수 있게 됩니다.
Service Mesh란?
- 애플리케이션의 다양한 부분들이 서로의 데이터를 공유하는 방식을 제어하는 방법입니다.
- API등을 사용해서 마이크로 서비스간 통신을 안전하고, 빠르고, 신뢰할 수 있게 만들기 위해 설계된
전용 인프라 계층입니다.
Istio의 구조
마이크로 서비스 간의 모든 네트워크 통신을 담당할 수 있는 Proxy인 Envoy를 Sidecar 패턴으로 마이크로 서비스들에 배포한 다음, Proxy들이 설정 값 저장 및 관리/감독을 수행하고 Proxy들에 설정값을 전달하는 컨트롤러를 수행합니다.
그리고 Envoy Proxy를 Data Plane 이라고 하며, 이를 컨트롤 하는 부분을 Control Plane이라고 합니다.
Control Plane
- 트래픽 경로를 설정하고 관리하는 용도로 사용합니다.
- Pilot, Mixer, Citadel, Galley로 구성 되어 있으며 Istio 1.5버전부터는 4개의 모듈이 Istiod라는 하나의 모듈로 통합 되어있습니다.
Pilot(파일럿)
파일럿은 envoy에 대한 설정 관리를 하는 역할을 합니다.
서비스들의 엔드포인트들의 주소를 얻을 수 있는 서비스 디스커버리 기능을 제공합니다.
서비스에서 서비스로 호출하는 경로를 컨트롤할 수 있습니다.
Mixer(믹서)
믹서는 서비스 맥쉬 엑세스 컨트롤 및 정책 관리를 수행하며 각종 모니터링 지표를 수집합니다.
서비스의 총 처리량을 정책으로 지정하여 그 처리량 이상으로 요청을 못받게 하거나 특정 헤더값이 일치해야 요청을 받을 수 있게 하는 드으이 다양한 정책을 정의하고 이를 컨트롤 할 수 있습니다.
Citadel(시타델)
시타델은 보안에 관련된 기능을 담당하는 모듈입니다.
서비스를 사용하기 위한 사용자 인증(Authentication)과 인가(Authorization)을 담당합니다.
또한 Istio는 통신을 TLS(SSL)을 이용하여 암호화 할 수 있는데, TLS 암호화 또는 사용자 인증에 필요한 인증서를 관리하는 역할을 합니다.
Galley(갤리)
갤리는 Istio configuration을 체크합니다.
Kubernets Yaml파일을 Istio가 이해할 수 있는 형태로 변환 합니다.
Istiod
Istio 1.5이상 버전에서 제공되며 서비스 디스커버리, 설정관리, 인증관리 등을 수행합니다.
트래픽 동작을 제어하는 라우팅 규칙을 Envoy 전용 설정으로 변환하고 마이크로 서비스에 사이드카 방식으로 Envoy를 배포합니다.
또한 Envoy 설정 변경을 통해 서비스 메시 트래픽을 제어하니다.
내장된 Identity나 Credential Management를 통해서 강력한 서비스 간 인증 및 사용자 인증 기능을 지원합니다.
이상 Istio에 대해서 알아 보았습니다!
'INFRA > Operation' 카테고리의 다른 글
그라파나 Variables 설정 (0) | 2023.09.27 |
---|---|
Kubernetes ETCD란? (0) | 2023.09.01 |
그라파나 Alert 설정하기 (0) | 2023.07.21 |
그라파나 대시보드 및 패널 설정 (0) | 2023.06.23 |
[Ansible] WordPress 설치하기 (0) | 2023.06.23 |
댓글