ISTIO, Istio Gateway

Jeonghak Cho·2025년 3월 2일

Istio

목록 보기
4/6

ISTIO Gateway 개요

ISTIO Gateway 란

Istio Gateway만 사용하면 Kubernetes Ingress Controller가 필요 없다.
Istio 자체가 Envoy 기반의 Ingress Gateway를 제공하므로, 별도의 kubernetes/ingress-nginx 같은 Ingress Controller 없이도 외부 트래픽을 관리할 수 있다.
Istio의 Gateway 리소스는 Istio의 Envoy 기반 Ingress Controller로 동작한다. Istio 1.20부터 새로운 Gateway API(Kubernetes Gateway API) 를 기본적으로 지원하면서, 기존의 Gateway 리소스를 대체하는 방향으로 발전하고 있다. 기존의 Istio Gateway(kind: Gateway) 는 여전히 사용 가능하며, Istio 1.20에서도 공식적으로 지원된다.

언제 Kubernetes Ingress Controller가 필요한가?

  • Istio를 사용하지 않는 환경
  • L7 HTTP Ingress만 필요한 경우 (Envoy보다 가볍게 운영 가능)
  • 기존 Ingress 리소스를 많이 사용하고 있는 경우 (즉시 전환이 어렵다면 병행 운영)

ISTIO Gateway 사용 대신 Kubernetes Gateway API를 권장한다.

Istio 1.20부터 Kubernetes Gateway API를 공식 지원하면서 Istio의 기존 Gateway 리소스를 사용하지 않고도 Istio의 Ingress Gateway 기능을 활용할 수 있다. 다만, Istio의 고유 기능 일부는 Kubernetes Gateway API에서 완전히 지원되지 않을 수도 있다.

기존 Istio Gateway vs Kubernetes Gateway API

비교 항목기존 Istio Gateway (networking.istio.io/v1beta1)Kubernetes Gateway API (gateway.networking.k8s.io/v1)
API 그룹networking.istio.iogateway.networking.k8s.io
사용 방식Istio 전용 API (Istio CRD 필요)Kubernetes 공식 Gateway API
트래픽 제어Istio VirtualService와 함께 사용HTTPRoute, TCPRoute, TLSRoute 등과 함께 사용
지원하는 Istio 기능mTLS, AuthorizationPolicy, Istio VirtualServicemTLS, AuthorizationPolicy(제한적 지원), 일부 Istio 기능 미지원
벤더 중립성Istio 전용Istio, Cilium, Linkerd 등 다양한 서비스 메쉬 지원
권장 사항Istio 환경에서 기본적으로 사용Istio 1.20+에서는 이 방식이 권장됨

Istio Gateway 와 Kubernetes Gateway API 중 어느 걸 사용해야 할까

단순한 L7 HTTP/HTTPS 트래픽 관리라면 Kubernetes Gateway API를 사용하는 것이 더 표준적이고 미래 지향적이다.

Istio의 고급 기능(트래픽 분할, Fault Injection, AuthorizationPolicy 등)을 사용해야 한다면 기존 Istio Gateway를 유지하는 것이 좋다.

추가 기능Istio Gateway 지원 여부Kubernetes Gateway API 지원 여부
mTLS지원지원
AuthorizationPolicy (RBAC)지원제한적 지원
Fault Injection (지연, 오류 테스트)지원미지원
Weight-based Routing (가중치 기반 라우팅)지원일부 지원
Header 기반 라우팅지원지원
Session Affinity지원일부 지원

Kubernetes Gateway API 는 무엇인가

Kubernetes Gateway API는 Kubernetes 클러스터 내에서 L4 및 L7 트래픽 라우팅을 관리하기 위한 공식 프로젝트로, 기존 Ingress API의 한계를 보완하고자 설계되었다.

Kubernetes Gateway API 컴포넌트

  • GatewayClass: 클러스터 범위의 리소스로, 특정 Gateway 컨트롤러의 동작 방식을 정의
  • Gateway: 네트워크 트래픽을 수신하는 실제 엔드포인트를 나타내며, 하나 이상의 리스너(포트, 프로토콜 등)를 정의
  • Route: 트래픽 라우팅 규칙을 정의하며, HTTPRoute, TCPRoute, TLSRoute 등 다양한 프로토콜별 라우트 리소스 존재
  • ReferenceGrant: 교차 네임스페이스 간 안전한 리소스 참조를 허용,높음 보안성

ingress 보다 아래 기능이 향상된다.

  • 표현력 향상: Gateway API는 헤더 기반 라우팅, 트래픽 분할 등 고급 트래픽 관리 기능을 기본으로 지원
  • 역할 기반 리소스 분리: 플랫폼 팀, DevOps, 개발자 등 각 역할에 맞는 리소스를 제공하여, 역할별 책임 분리가 가능
  • 벤더 중립성: 표준화된 API를 통해 다양한 컨트롤러 간의 이식성과 호환성을 보장

0개의 댓글