#DevOps

Istio 1편: 왜 Istio Ambient mode인가?

Istio 1편: 왜 Istio Ambient mode인가?
01

Summary

사이드카 없는 서비스 메시의 시대, 채널톡은 왜 Istio Ambient를 선택했나?

4,000개 포드의 리소스 낭비를 해결하고 확장성을 확보하는 차세대 서비스 메시 도입 전략

채널코퍼레이션 엔지니어링 팀이 8개월간 Istio를 도입하며 겪은 의사결정 과정을 담은 시리즈의 첫 번째 글입니다. 기존 Sidecar 방식의 구조적 한계와 리소스 문제를 분석하고, 이를 해결하기 위한 대안으로 부상한 Ambient mode의 동작 원리와 기술적 이점을 상세히 다룹니다.

  • 01사이드카 프록시를 제거하여 유휴 리소스 낭비를 획기적으로 줄이는 아키텍처 설계
  • 02L4(ztunnel)와 L7(waypoint) 처리를 분리하여 시스템 전체의 확장성과 유연성 확보
  • 03HTTP/2 CONNECT와 mTLS를 결합한 HBONE 프로토콜 기반의 보안 통신 메커니즘
  • 04istio-cni를 이용한 투명한 트래픽 리다이렉션 및 인포드(in-pod) 소켓 통신 구조
  • 05쿠버네티스 네트워킹의 미래인 Gateway API와의 긴밀한 통합 및 표준 준수

RECOMMENDATION

대규모 쿠버네티스 클러스터를 운영하며 사이드카 프록시의 비용 부담을 느끼는 인프라 조직에 강력히 추천합니다. 다만 도입 전 장애 영향 범위 확장(SPoF)에 대한 충분한 대비책과 HBONE 기반의 네트워크 디버깅 역량을 확보해야 합니다.

The Problem

채널코퍼레이션은 서비스 규모 확장에 따라 가시성 확보와 정교한 트래픽 제어가 필요해졌으나, 기존 Istio Sidecar 방식은 4,000개 이상의 포드 운영 시 막대한 리소스 낭비와 컨트롤 플레인 부하 문제를 야기했습니다. 분산된 네트워크 설정을 통합하고 운영 효율을 극대화하면서도 인프라 비용 부담을 줄여야 하는 과제에 직면했습니다.

The Solution

최근 GA된 Istio의 Ambient mode를 도입하여 노드당 하나의 ztunnel(L4 처리)과 필요에 따른 waypoint(L7 처리)로 프록시 계층을 분리하는 아키텍처를 채택했습니다. HBONE 프로토콜을 통해 안전한 mTLS 통신을 구현하고, Kubernetes Gateway API를 표준으로 활용하여 트래픽 리다이렉션 구조를 설계했습니다.

The Result

포드마다 사이드카 프록시를 띄울 때 발생하는 대규모 리소스(수백 vCPU 및 GiB 메모리) 소모를 획기적으로 절감하고 컨트롤 플레인의 설정 전파 부하를 완화했습니다. 또한, 애플리케이션 수정 없이도 전사적인 L7 가시성과 보안 인증 체계를 확보하는 기반을 마련했습니다.

Trade-off

사이드카 방식 대비 장애 영향 범위가 노드 전체나 네임스페이스 단위로 확대될 수 있는 SPoF(Single Point of Failure) 위험이 존재합니다. HBONE 터널링과 복잡한 iptables 리다이렉션으로 인해 네트워크 패킷 분석 및 디버깅 난이도가 상승했으며, 초기 GA 단계의 기술로서 운영 성숙도가 상대적으로 낮다는 한계가 있습니다.

03

Key Concepts

Concept · 01

Ambient Mode

Istio 1.24에서 정식 출시된 데이터 플레인 모드로, 개별 포드에 프록시를 주입하지 않고 노드 및 서비스 단위의 공유 프록시를 통해 서비스 메시 기능을 제공합니다.

  • 리소스 소모의 비선형적 증가 문제를 해결함
  • 사이드카 없이도 mTLS 및 L7 정책 적용이 가능함
Concept · 02

ztunnel (Zero Trust Tunnel)

각 노드에 DaemonSet으로 실행되는 경량 프록시로, 워크로드 간의 안전한 L4 연결과 암호화된 mTLS 터널링을 담당합니다.

  • 노드 내 모든 포드의 트래픽을 가로채서 HBONE으로 전달함
  • 포드와 생명주기를 분리하여 리소스 효율성을 극대화함
Concept · 03

HBONE (HTTP-Based Overlay Network Environment)

HTTP/2 CONNECT 메서드와 TLS를 조합하여 데이터 플레인 컴포넌트 간에 보안 터널을 생성하는 Istio의 고유 통신 프로토콜입니다.

  • 원본 TCP 페이로드를 변경하지 않고 캡슐화하여 전송함
  • 표준 기술인 HTTP/2와 mTLS를 기반으로 높은 호환성을 제공함