[Egress Gateway] Kiali로 E2E 트래픽 흐름 시각화하기

y001·2025년 4월 19일

Istio 실전 스터디

목록 보기
7/26

Istio를 활용하면 Ingress와 Egress Gateway를 통해 내부 서비스 간 트래픽뿐만 아니라 외부로 나가는 트래픽까지 정밀하게 제어할 수 있다. 하지만 이렇게 구성한 트래픽 흐름이 실제로 의도대로 잘 흘러가고 있는지 확인하기란 쉽지 않다. 이를 눈으로 확인할 수 있도록 시각화 도구인 Kiali를 함께 구성하여 E2E(End-to-End) 트래픽 흐름을 시각적으로 검증하는 실습을 진행했다.


🧭 목표

  • 외부 클라이언트가 Ingress Gateway를 통해 external-app에 요청을 보낸다.
  • external-app은 Istio Egress Gateway를 경유하여 외부의 httpbin.org에 요청을 보낸다.
  • 흐름 전체를 Kiali를 통해 시각적으로 확인하고, 차단 정책까지 구성하여 시각적으로 비교한다.

Kiali 구성 및 실행

  1. Istio 설치할 때 공식 스크립트를 통해 다운로드했다면, 다음처럼 samples/addons/ 폴더가 존재한다:
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.17.2 sh -
cd istio-1.17.2
  1. 그 상태에서 다음 명령어 실행하면 된다:
kubectl apply -f samples/addons/prometheus.yaml
kubectl apply -f samples/addons/kiali.yaml

🛠 만약 Istio 디렉토리를 날렸다면?

Istio 공식 GitHub에서 해당 예제만 따로 가져올 수도 있다:

git clone https://github.com/istio/istio.git
cd istio
# 예제 YAML은 이 경로에 있음
cd samples/addons
kubectl apply -f prometheus.yaml
kubectl apply -f kiali.yaml

실행 후 Kiali 대시보드를 열었다.

istioctl dashboard kiali

웹 브라우저에서 http://localhost:20001로 접속하면 Kiali 콘솔이 나타난다.


트래픽 생성

Kiali가 트래픽 흐름을 시각화하려면 실제 요청이 발생해야 한다. sleep 또는 외부에서 curl 명령을 통해 다음 명령으로 트래픽을 발생시켰다.

for i in {1..10}; do curl -s http://127.0.0.1/external > /dev/null; done

Kiali에서 트래픽 흐름 시각화

Kiali → Graph 메뉴로 진입하여 다음 옵션을 선택했다:

  • Namespace: egress-test, istio-system, default 모두 선택
  • Traffic: HTTP 포함
  • Graph Type: App graph
  • Display: Response Time, Throughput, Security 등 활성화

확인한 흐름

  • istio-ingressgatewayexternal-app
  • external-appistio-egressgateway
  • istio-egressgatewayhttpbin.org

요청 횟수 (rps)와 응답 시간, 성공률(%) 등이 선 위에 실시간으로 표시되어 E2E 흐름을 정확히 파악할 수 있었다.

0개의 댓글