모험가

AEWS 2주차 - Networking(네트워크 분석 툴 Kubeskoop 설치) 본문

쿠버네티스/AEWS

AEWS 2주차 - Networking(네트워크 분석 툴 Kubeskoop 설치)

라리음 2025. 2. 13. 16:19

 



본 글은 가시다님이 진행하시는 AEWS(AWS EKS Workshop Study)를 참여하여 정리한 글입니다. 
모르는 부분이 많아서 틀린 내용이 있다면 말씀 부탁드리겠습니다!

 

 

 




Kubeskoop

 

 

Kubeskoop란?

KubeSkoop은 쿠버네티스 네트워크 및 시스템 모니터링을 위한 오픈소스 도구입니다.
Alibaba Cloud에서 개발하였으며, 쿠버네티스 클러스터의 네트워크 상태를 실시간으로 분석하고, 문제를 감지 및 해결하는 데 도움을 줍니다.

 

📌 KubeSkoop의 주요 기능

KubeSkoop은 쿠버네티스 네트워크 환경에서 발생할 수 있는 다양한 문제를 모니터링하고 디버깅할 수 있도록 설계되었습니다.


주요 기능은 다음과 같습니다.

1️⃣ 네트워크 상태 모니터링

  • Pod, Service, Node 간의 네트워크 연결 상태를 실시간으로 분석
  • 네트워크 패킷 드롭, 연결 실패 등을 감지하여 문제 해결에 도움

2️⃣ eBPF 기반 네트워크 추적

  • eBPF(Extended Berkeley Packet Filter)를 활용하여 경량 모니터링 제공
  • 네트워크 트래픽을 효율적으로 추적하고 성능 저하 없이 분석 가능

3️⃣ 패킷 손실 및 지연 시간 분석

  • TCP 연결 상태, 재전송 패킷, 지연 시간 분석 지원
  • 네트워크 장애 발생 시 원인 분석 가능

4️⃣ 네트워크 트러블슈팅 및 시각화

  • 네트워크 장애 원인을 쉽게 찾을 수 있도록 UI 및 CLI 기반 데이터 제공
  • 서비스 간 네트워크 흐름을 시각적으로 분석하여 문제 해결 가능

 

https://kubeskoop.io/docs/guide/monitoring/intro

 

Kubeskoop의 아키텍처는 위와 같습니다.

 

 

 


Kubeskoop 설치 및 웹 접속

 

 

Kubeskoop Bundle설치 및 서비스 부착

# kubeskoop 설치 및 서비스 부착 (webconsole, 프로메테우스, 그라파나)
kubectl apply -f https://raw.githubusercontent.com/alibaba/kubeskoop/main/deploy/skoopbundle.yaml
kubectl patch service webconsole -n kubeskoop -p '{"spec": {"type": "LoadBalancer"}}'
kubectl patch service prometheus-service -n kubeskoop -p '{"spec": {"type": "LoadBalancer"}}'
kubectl patch service grafana -n kubeskoop -p '{"spec": {"type": "LoadBalancer"}}'

 

skoopbundle 리소스 확인

kubeskoop 번들 리소스 확인
kubectl get-all -n kubeskoop
kubectl get pod -n kubeskoop

 

Kubeskoop 웹 콘솔 접속

# kubeskoop 서비스 확인
kubectl get svc -n kubeskoop webconsole

# kubeskoop 웹 접속 : admin / kubeskoop
kubectl get svc -n kubeskoop webconsole -o jsonpath='{.status.loadBalancer.ingress[0].hostname}' | awk '{ print "KubeSkoop URL = http://"$1""}'

 

웹 접속 화면

 

 

 

 

프로메테우스 웹 콘솔 접속

# 프로메테우스 웹 접속
kubectl get svc -n kubeskoop prometheus-service -o jsonpath='{.status.loadBalancer.ingress[0].hostname}' | awk '{ print "prometheus URL = http://"$1""}'

 

프로메테우스 웹 접속 화면

 

그라파 웹 콘솔 접속

# 그라파나 웹 접속 : admin / kubeskoop
kubectl get svc -n kubeskoop grafana -o jsonpath='{.status.loadBalancer.ingress[0].hostname}' | awk '{ print "grafana URL = http://"$1""}

 

그라파나 웹 접속 화면

 

 

 

기본적으로 서로 유기적으로 연동되어 있으며 그라파나에도 대시보드가 2개 구성되어있습니다.

* 이게 kubeskoop 웹에 있는 대시보드로 연동되는거겠죠??

Kubeskoop 웹 대시보드 화면

 

 

 

그리고 설치하고 리소스가 많아서 개수를 보니 파드 8개를 포함하여 45개의 리소스가 생성되네요

 

 

 

 

기능

 

kubeskoop 웹 화면

 

 

 

Kubeskoop은 Latency 이외에도 패킷 캡처, 연결 확인, 이벤트, 로그, 등등 많은 기능이 있어보입니다.

 

오늘은 정말 설치만 해보았고 나중에는 기능을 하나하나 다뤄볼 수 있는 기회가 있었으면 좋겠습니다.