728x90
✅ 목표: Cilium의 네트워크 관측 도구인 Hubble CLI와 Hubble UI를 설치하고,
MinIO와 클라이언트 간의 네트워크 흐름을 실시간으로 시각화/분석하는 실습을 진행합니다.
🔎 이번 글에서 수행할 작업 요약
- Cilium 설치 상태에서 Hubble CLI & UI 활성화
- Hubble UI를 LoadBalancer로 노출
- 실제 네트워크 흐름 확인 및 필터링 테스트
- MinIO 접근 흐름 추적 및 분석
⚙️ 1단계: Hubble 기능 활성화
이 단계의 목적: 이미 설치된 Cilium에서 Hubble 기능을 활성화하고,
흐름 수집과 시각화를 위한 Agent 및 Relay 구성 상태를 점검합니다.
# Cilium CLI를 사용해 Hubble 기능 활성화
cilium hubble enable
# ✅ Hubble Agent 및 Relay가 자동으로 구성됨
# 활성화된 Hubble 컴포넌트 확인
kubectl get pods -n kube-system -l k8s-app=hubble
예상 출력:
hubble-relay-xxxxx Running
cilium-xxxxx Running (내부에 hubble-agent 포함)
🌐 2단계: Hubble UI 설치 및 LoadBalancer 서비스 노출
이 단계의 목적: Hubble UI를 설치하고,
외부 브라우저에서 접근 가능하도록 LoadBalancer 서비스로 노출합니다.
# Hubble UI 설치
cilium hubble ui install
# Hubble UI 서비스 타입 확인
kubectl get svc -n kube-system -l app.kubernetes.io/name=hubble-ui
서비스 타입이 기본적으로 ClusterIP로 설정되어 있기 때문에,
다음과 같이 LoadBalancer로 수정합니다:
# Hubble UI 서비스 타입 수정
kubectl patch svc hubble-ui -n kube-system -p '{"spec": {"type": "LoadBalancer"}}'
# EXTERNAL-IP 확인
kubectl get svc hubble-ui -n kube-system
→ 브라우저에서 http://<EXTERNAL-IP>:80 접속
🔭 3단계: Hubble CLI 흐름 필터링 실습
이 단계의 목적: Hubble CLI를 사용해 네트워크 흐름을 필터링하고,
특정 네임스페이스, 라벨, 포트 기반 흐름 분석 방법을 익힙니다.
# MinIO에 대한 전체 네트워크 흐름 보기
hubble observe --to fqdn "minio.minio.svc.cluster.local"
# etl 네임스페이스의 클라이언트 → MinIO 흐름
hubble observe --namespace etl --to-port 9000 --protocol http
# DROP된 요청만 필터링
hubble observe --verdict DROP
🔍 4단계: 시각화 기반 흐름 분석 (Hubble UI)
이 단계의 목적: Hubble UI를 통해 Cilium 정책이 적용된 흐름이 실제로 어떻게 처리되고 있는지
시각적으로 확인하고 정책 검증에 활용합니다.
- 브라우저에서 http://<EXTERNAL-IP> 접속
- 좌측 메뉴에서 Flow 탭 클릭
- 요청의 SOURCE, DESTINATION, VERDICT 확인
- 허용됨(Forwarded), 거부됨(Dropped) 구분 가능
✅ 네트워크 정책 실습과 연동 시, UI에서 흐름 시각화 → CLI로 추적 심화 가능
📎 요약 및 핵심 정리
- Hubble CLI와 UI를 설치하여 Cilium 네트워크 정책의 실제 흐름을 시각적으로 추적할 수 있는 기반을 마련함
- UI는 LoadBalancer 방식으로 외부 노출하여 브라우저에서 편리하게 접근 가능
- CLI에서는 --namespace, --to-port, --verdict 등의 필터를 조합해 심화 추적이 가능함
- 실무에서는 정책 디버깅, 트래픽 이상 감지 등에 매우 유용하게 활용 가능
728x90