반응형
출처 : https://istio.io/
1. Istio가 뭐지?
- 마이크로서비스아키텍처(MSA) 서비스들의 트래픽을 제어할 수 있습니다.
- 오픈소스입니다. (Apache License 2.0)
- 여러분이 작성한 코드를 변경하지 않고도, 로드 밸런싱, 서비스 간 인증, 모니터링을 추가할 수 있습니다.
2. Istio가 뭘 할수 있지?
- 버전별 트래픽 양 조절 (예: 구버전 95%, 신버전 5%)
- 헤더 값을 기준으로, 트래픽 분할 (예: 클라이언트가 PC, 안드로이드, 아이폰일 때 서로 다른 서비스로 라우팅)
- 서비스 안정성(health check, 장애 서비스 제거)
- TLS 보안
- 서비스에 대한 인증, 인가 - 서비스간 인증, 사용자 인증(JWT토큰이용), Role base 인가
- 서비스 모니터링, 지표 수집
3. 작동 원리
Istio를 적용하기 전
Istio 적용 후
4. Istio 디자인 목표
- 투명성 극대화(Maximize Transparency) - 사이드카 프록시를 사용하여, 최소한의 변경으로 최대한의 효과를 얻어냄
- Incrementality
- Portability - 최소한의 노력으로 모든 클라우드 또는 온프레미스 환경에서 실행
- Policy Uniformity(정책 통일성)
5. Istio 아키텍처
data plane과 control plane 으로 구분되어 있습니다.
- data plane : 실제 데이터 트래픽이 통과하는 영역
- control plane : 트래픽 경로를 관리. 텔레메트리 정보 수집
[출처 : https://istio.io/latest/docs/ops/deployment/architecture/]
6. Istio 구성요소
- Envoy
- Mixer
- Pilot
- Citadel
- Galley
6.1 Envoy
모든 트래픽은 envoy를 통과하게 되어 있습니다. Istio는 envoy의 확장판을 사용합니다. envoy는 모든 서비스에 대한 inbound/outbound 트래픽을 처리하는 고성능 Proxy입니다.
Envoy를 통해, 다음의 기능들을 사용할 수 있습니다.
- 동적 서비스 검색
- 부하분산
- TLS termination
- HTTPS/2, gRPC Proxy
- 서킷브레이커
- 상태확인(Health Check)
- Staged rollouts with %-based traffic split
- 결함 주입
- Rich metrics
SideCar 형태로 배포하기 때문에, 기존 코드나 컨테이너를 재작성하지 않고, 그대로 이용할 수 있습니다.
6.2 Mixer
** Mixer 트래픽 흐름**
액세스 컨트롤, 할당량 관리, 모니터링 지표 수집 등
- Precondition Checking - 헤더값 체크
- Quota Management - 정책을 통해, 서비스의 총 처리량 지정
- Telemetry Reporting - 응답시간, 처리량 등 모니터링 값 수집 및 저장
6.3 Pilot
Envoy에 대한 설정 관리 등
- Service Discovery - 서비스들의 endpoint주소를 얻는 데 사용
- Routing 트래픽 관리
- retry
- circuit breaker
- Timeout
6.4 Citadel
보안 관련 기능 담당
- 사용자 인증, 인가
- TLS 인증에 필요한 인증서 관리
EOF
반응형
'망각을위한노트' 카테고리의 다른 글
개인정보보호법, CCTV 줌 기능, 회전기능 가능한가? (0) | 2022.08.19 |
---|---|
개인정보보호법, 왜 가명정보가 개인정보에 포함되는가? (0) | 2022.08.19 |
Deploy kubernetes on Oracle Linux 8 Ampere instance(aarch64) with kubeadm (0) | 2022.07.07 |
A father said to his daughter : (0) | 2020.10.29 |
Cocoa, NeXTSTEP (0) | 2020.08.17 |