Why use Istio / Why use Consul
Why use Istio
Istio는 서비스 코드에 거의 또는 전혀 코드 변경이 필요하지 않은 상태로 로드 밸런싱, 서비스 간 인증, 모니터링 등이 포함된 배포된 서비스 네트워크를 쉽게 생성할 수 있도록 합니다.
서비스에 Istio 지원을 추가하려면 환경 전체에서 모든 마이크로서비스 간의 네트워크 통신을 가로채는 특별한 사이드카 프록시를 배포하여 Istio를 설치한 다음, 제어 플레인 기능을 사용하여 Istio를 구성하고 관리합니다. 이 제어 플레인 기능은 다음을 포함합니다:
• HTTP, gRPC, WebSocket 및 TCP 트래픽에 대한 자동 로드 밸런싱.
• 풍부한 라우팅 규칙, 재시도, 장애 복구 및 장애 삽입을 통한 트래픽 동작의 세세한 제어.
• 액세스 제어, 비율 제한 및 할당을 지원하는 플러그 가능한 정책 레이어 및 구성 API.
• 클러스터 내 모든 트래픽에 대한 자동 메트릭, 로그 및 추적, 클러스터 인그레스 및 엡레스를 포함합니다.
• 강력한 식별 기반 인증 및 권한을 사용하여 클러스터 내 안전한 서비스 간 통신.
또한 Istio 서비스 메시 제어 플레인은 다음을 처리합니다:
• HTTP 및 TCP 트래픽에 대한 자동 로드 밸런싱.
• 트래픽 동작 제어.
• 안전한 인증을 통한 클러스터 내 서비스 간 통신.
Why use Consul
Consul의 아키텍처는 매우 모듈화되어 있으며 다음과 같은 플러그 가능한 구성 요소가 있습니다:
• 데이터 플레인 (Native 또는 Sidecar)
• 인증서 관리
Consul은 서버 및 클라이언트 기능을 모두 제공하는 단일 바이너리(binary)로, 서비스 카탈로그, 구성, TLS 인증서, 권한 및 기타 모든 기능을 포함하고 있습니다. Consul을 사용하기 위해 별도의 시스템을 추가로 설치할 필요가 없습니다. Consul은 각 클러스터 노드에서 Consul 클라이언트를 실행하는 에이전트 기반 모델을 사용합니다.
각 클라이언트는 서버로부터 효율적으로 업데이트되는 로컬 캐시를 유지합니다. 그 결과로 모든 보안 서비스 통신 API는 마이크로초 내에 응답하며 외부 통신이 필요하지 않습니다. 응용 프로그램은 Connect 프로토콜과 네이티브로 통합할 수 있습니다. 결과적으로 Connect를 도입함으로써 발생하는 성능 오버헤드는 무시할 만큼 미미합니다. 이러한 "Connect-native" 응용 프로그램은 프록시를 사용하거나 Connect-native인 경우와 관계없이 다른 Connect 호환 서비스와 상호 작용할 수 있습니다. Consul은 회전 지원이 포함된 자동 TLS 인증서 관리를 구현합니다. 대규모 Consul 클러스터 전체에서 리프 및 루트 인증서는 연결에 아무런 중단이 없도록 자동으로 회전할 수 있습니다. 인증서 관리 시스템은 Consul의 코드 변경을 통해 플러그 가능하게 구현할 수 있습니다.
Comparison of Istio and Consul
Istio | Consul Connect | |
Model | Sidecar | Sidecar |
Platform | Kubernetes | Any |
language | Go | Go |
Protocol | HTTP1.1 / HTTP2 / gRPC / TCP | TCP |
Default Data | Plane Envoy (supports others) | Native (or Envoy) |
Sidecar Injection |
Yes | Yes |
Encryption | Yes | Yes |
Traffic Control | label/content based routing, traffic shifting |
static upstream, prepared query, http api / dns with native integration |
Resilience | timeouts, retries, connection pools, outlier detection |
Pluggable |
Prometheus Integration | Yes | Yes |
Tracing Integration |
Jaeger | Pluggable |
Host to Host auth |
Service Accounts | Consul ACL |
Agent Caching |
Yes | Yes |
Secure connection outside cluster |
No | Yes |
Complexity |
High | Low |
Paid Support |
No | Yes |
Link |
https://istio.io/ | https://www.consul.io/intro/gettingstarted/connect.html |