소개
Hubble은 Kubernetes 클러스터의 네트워크 및 서비스 메시를 관찰하고 분석하기 위한 오픈소스 CLI 도구입니다. Cilium과 함께 동작하며, 서비스 간 통신 흐름, 네트워크 정책 적용 상태, 패킷 드롭 및 거부 상황 등을 실시간으로 파악할 수 있습니다. 주로 클러스터 운영자와 개발자가 네트워크 문제를 진단하고 보안 정책을 검증하는 데 사용됩니다.
상세정보
Hubble CLI란?
Hubble은 Kubernetes 클러스터의 네트워크 흐름을 관찰하고 분석하기 위한 오픈소스 CLI 도구입니다. Cilium CNI와 함께 동작하며, 서비스 간 통신, 네트워크 정책 적용, 패킷 드롭 및 거부 상황을 실시간으로 파악할 수 있습니다. 주로 클러스터 운영자와 개발자가 네트워크 문제를 진단하고 보안 정책을 검증하는 데 사용됩니다.
주요 기능
- 플로우 검사(Flow Inspection): Hubble CLI를 통해 특정 서비스 간의 통신 흐름을 확인할 수 있습니다.
- 서비스 맵 UI: Hubble UI를 통해 서비스 간의 관계를 시각적으로 파악할 수 있습니다.
- 메트릭스 수집: Prometheus와 Grafana와 연동하여 네트워크 메트릭스를 수집하고 대시보드로 확인할 수 있습니다.
- 패킷 드롭 및 거부 분석: 드롭된 패킷의 이유와 거부된 패킷의 소스/목적지 포드를 분석할 수 있습니다.
지원 환경
Hubble CLI는 Windows, macOS, Linux에서 실행할 수 있습니다. Kubernetes 클러스터에 Cilium이 설치되어 있어야 하며, Hubble 서버가 활성화되어 있어야 합니다. CLI는 kubectl 및 Cilium과의 통신을 위해 네트워크 접근 권한이 필요합니다.
기본 사용법
- Cilium 및 Hubble을 Kubernetes 클러스터에 설치합니다.
- Hubble CLI를 다운로드하고 설치합니다.
hubble status명령으로 Hubble 서버 연결 상태를 확인합니다.hubble observe명령으로 서비스 간 통신 흐름을 관찰합니다.- 필요에 따라
hubble metrics명령으로 메트릭스를 확인합니다.
제한 사항 및 확인 사항
- Hubble은 Cilium CNI가 설치된 클러스터에서만 동작합니다.
- 클러스터에 Hubble 서버가 활성화되어 있어야 합니다.
- CLI 사용을 위해 kubectl 설정이 필요할 수 있습니다.
FAQ
Q: Hubble CLI는 무료인가요?
네, Hubble은 오픈소스 프로젝트로 무료로 사용할 수 있습니다.
Q: Hubble CLI는 Windows에서 사용할 수 있나요?
네, Windows에서 실행 가능한 바이너리가 제공됩니다.
Q: Hubble CLI를 사용하려면 Cilium이 필수인가요?
네, Hubble은 Cilium의 구성 요소로, Cilium이 설치된 Kubernetes 클러스터에서만 동작합니다.
화면으로 보는 주요 기능
Hubble 아키텍처 개요

이 그림은 Hubble의 아키텍처를 보여줍니다. 상단에는 메트릭스(Metrics), 서비스 맵 UI(Service Map UI), 플로우 검사(Flow Inspection) 세 가지 주요 기능이 있습니다. 메트릭스는 Grafana와 Prometheus를 사용하며, 서비스 맵 UI는 Hubble UI를 사용하고, 플로우 검사는 Hubble CLI를 사용합니다. 하단에는 두 개의 노드(Node)가 있으며, 각 노드에는 pod, Hubble, cilium, BPF 등의 구성 요소가 포함되어 있습니다.
서비스 흐름 다이어그램

이 그림은 jobs-demo 애플리케이션의 서비스 흐름을 보여줍니다. recruiter, jobposting, crawler, coreapi, loader, elasticsearch, kafka, zookeeper 등의 서비스가 있으며, 각 서비스 간의 통신 경로와 포트 번호가 표시되어 있습니다. 예를 들어, recruiter는 9080 포트를 통해 TCP-HTTP로 coreapi와 통신하고, loader는 50051 포트를 통해 GRPC로 coreapi와 통신합니다.
모니터링 대시보드

이 그림은 Hubble의 모니터링 대시보드를 보여줍니다. 네 개의 그래프가 있으며, 각각 '전달된 vs 드롭된 패킷', '드롭 이유', '프로토콜 사용량', '상위 10개 포트 분포', 'TCPv4', '누락된 TCPv4 SYN-ACK'를 나타냅니다. 각 그래프는 시간에 따른 패킷 수나 프로토콜 사용량을 보여주며, 특정 이벤트나 오류를 식별하는 데 사용됩니다.
거부된 패킷의 상위 소스 및 목적지 포드

이 그림은 두 개의 그래프로 구성되어 있습니다. 왼쪽 그래프는 '거부된 패킷을 보낸 상위 10개 소스 포드'를 보여주며, 오른쪽 그래프는 '거부된 패킷을 받은 상위 10개 목적지 포드'를 보여줍니다. 각 그래프는 시간에 따른 패킷 수를 나타내며, 특정 포드가 거부된 패킷을 처리하는 상황을 분석하는 데 사용됩니다.
시스템 요구사항
Hubble CLI는 Windows, macOS, Linux에서 실행할 수 있습니다. Kubernetes 클러스터에 Cilium이 설치되어 있어야 하며, Hubble 서버가 활성화되어 있어야 합니다. CLI는 kubectl 및 Cilium과의 통신을 위해 네트워크 접근 권한이 필요합니다.


