본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸 · 인터넷·네트워크·원격

Hubble

0

Hubble은 Kubernetes 클러스터의 네트워크 및 서비스 메시를 관찰하고 분석하기 위한 오픈소스 CLI 도구입니다.

네트워크 관찰네트워크 진단서비스 메시오픈소스

소개

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과의 통신을 위해 네트워크 접근 권한이 필요합니다.

기본 사용법

  1. Cilium 및 Hubble을 Kubernetes 클러스터에 설치합니다.
  2. Hubble CLI를 다운로드하고 설치합니다.
  3. hubble status 명령으로 Hubble 서버 연결 상태를 확인합니다.
  4. hubble observe 명령으로 서비스 간 통신 흐름을 관찰합니다.
  5. 필요에 따라 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 아키텍처 개요

이 그림은 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과의 통신을 위해 네트워크 접근 권한이 필요합니다.