Files
project-gitops/docs/decisions/0006-gateway-and-istio.md
2026-08-28 17:24:26 +09:00

1.4 KiB

ADR 0006: Gateway API first, Istio deferred

Status: accepted

현재 단일 노드 K3s와 auth/api 중심 workload에는 service mesh 운영 비용을 정당화할 mTLS identity, L7 authorization, canary traffic policy 또는 multi-team 요구가 없다. 이번 개편에는 Istio를 설치하지 않는다.

선행 작업:

  1. Traefik Gateway API provider와 GatewayClass 검증
  2. Ingress를 Gateway/HTTPRoute로 이관
  3. north-south TLS
  4. 내부 호출의 ingress hairpin 제거
  5. Vault/PostgreSQL native TLS
  6. NetworkPolicy regression test와 observability/SLO

Istio 요구가 실제화되면 sidecar가 아니라 ambient mode로 제한 pilot한다. 초기 범위는 api-server와 auth-server이며 Vault, Vault injector, PostgreSQL은 제외한다. ztunnel L4부터 시작하고 L7 정책이 필요할 때만 waypoint를 추가한다.

다음 기능 요구 중 두 개 이상과 운영 선행조건이 모두 충족될 때 ADR을 재검토한다.

  • ServiceAccount identity 기반 east-west mTLS
  • path/JWT 기반 L7 authorization
  • canary traffic split/retry/timeout/outlier detection
  • 지속적인 서비스·namespace·팀 증가
  • application instrumentation만으로 해결하기 어려운 장애 분석

현재 Ingress를 즉시 제거하지 않는다. TLS, DNS, GatewayClass 계약이 확정되기 전 가상의 Gateway 설정을 배포하지 않기 위함이다.