Gateway 란?

일반적인 쿠버네티스 환경에서 외부 트래픽을 내부로 연결하기 위해 Ingress 리소스를 사용하거나, Nginx와 같은 Ingress Controller를 사용하는데요. Istio 환경에서는 Ingress Controller를 대체 또는 보완하기 위해 Istio Gateway를 사용합니다.

Istio Gateway는 “클러스터 외부로부터 들어오는(또는 내부에서 외부로 나가는) 트래픽을 제어하기 위한 진입점(Entry Point)”을 정의하는 Istio의 **Custom Resource Definition(CRD)**입니다.

쿠버네티스 Ingress와 비슷한 역할을 하지만, Istio Gateway는 Envoy 프록시를 기반으로 동작하여 Istio의 다양한 기능(트래픽 라우팅, 보안, 모니터링 등)과 긴밀하게 연동되는 것이 특징입니다.

Gateway가 Ingress와 다른 점은?

정리하자면, Istio Gateway는 단순한 HTTP 라우팅 설정만을 하는 것이 아니라, Istio에 내장된 다양한 서비스 메시 기능과 연계하기 위해 필요한 Envoy 게이트웨이 프록시를 정의하는 리소스라고 할 수 있습니다.

Istio Gateway의 주요 기능과 장점

  1. HTTP, HTTPS/TLS, TCP 트래픽 처리

Istio Gateway는 HTTP 기반 트래픽뿐 아니라 TCP, TLS 기반 트래픽까지도 제어할 수 있습니다. 예를 들어, HTTPS 트래픽에 대해 SNI(Server Name Indication)를 기반으로 호스트별 다른 라우팅 정책을 적용할 수도 있습니다.

  1. TLS/HTTPS Termination 및 mTLS 지원

Istio Gateway를 통해 HTTPS/TLS Termination(암호화 해제를 Gateway에서 수행)을 구성하거나, mTLS(Mutual TLS) 설정을 손쉽게 적용할 수 있습니다. 이를 통해 외부와의 통신 구간을 안전하게 보호하고, 내부 서비스 간에도 자동화된 인증이 가능해집니다.

  1. 로드 밸런싱 정책 및 고급 라우팅

Gateway 레벨에서 트래픽을 받아 Virtual Service와 연동함으로써, 호스트/도메인, 경로, 헤더, 쿠키 등 다양한 조건에 따라 트래픽을 라우팅하거나, A/B 테스트, Canary Deployment 등의 고급 시나리오를 구현할 수 있습니다.

  1. Istio의 Telemetry, Observability와 연동

Istio Gateway가 수집한 메트릭, 트레이싱, 로그 정보는 Istio가 제공하는 모니터링, 분산 트레이싱, 로깅 기능과 자연스럽게 통합됩니다. 이를 통해 외부-내부 트래픽 경로에 대한 가시성과 성능 모니터링을 강화할 수 있습니다.

Istio Gateway 리소스 구조 예시