KubeAura 구축: AI 기반의 Kubernetes 대시보드 (오픈 소스 공개)
요약
KubeAura는 단일 바이너리로 실행되는 AI 기반의 Kubernetes 대시보드입니다. 실시간 클러스터 메트릭 시각화와 함께 Claude, Ollama 등 다양한 AI 모델을 활용한 문제 분석 및 음성 명령 기능을 제공합니다.
핵심 포인트
- 단일 바이너리 실행으로 별도의 서버나 DB 설치 없이 즉시 사용 가능
- Claude 및 로컬 LLM(Ollama)을 연동한 AI 기반 근본 원인 분석 지원
- 음성 명령을 통한 클러스터 상태 조회 및 리소스 스케일링 제어
- 실시간 메트릭 히트맵, 토폴로지 그래프 등 강력한 관측성 기능 제공
수개월 동안 kubectl 터미널, 대시보드, 로그 사이를 오가며 고군분투한 끝에, 저는 결국 진저리가 났습니다. 그래서 저는 KubeAura를 만들었습니다. 이는 실제로 사용자의 방해를 받지 않고 작동하는 단일 바이너리 (single-binary) Kubernetes 콕핏 (cockpit)입니다. 그리고 오늘, 이를 오픈 소스로 공개하게 되어 매우 기쁩니다.
문제점 (The Problem)
이런 기분을 아시나요? 실패하는 Pod를 디버깅하고 있을 때 다음과 같은 상황에 처하게 됩니다:
- 로그를 확인하기 위해 서로 다른 머신에 SSH 접속
kubectl get pods를 수십 번 실행- 실제 클러스터 컨텍스트 (context) 없이 ChatGPT에게 "왜 이 Pod가 충돌할까요?"라고 질문
- 실제 지능이 내장된 k9s의 대안을 누군가 만들어주길 바람
저 또한 그런 상황을 겪고 있었습니다. 그래서 저는 자문했습니다: 만약 당신의 Kubernetes 대시보드가 대답을 해준다면 어떨까?
KubeAura 소개 (Introducing KubeAura)
KubeAura는 하나의 핵심 철학을 가진 **풀 피처 (full-featured) Kubernetes 콕핏 (cockpit)**입니다: 당신은 이미 kubeconfig를 가지고 있으니, 그냥 실행하기만 하면 됩니다.
kubeaura # 현재 kube 컨텍스트를 읽고, http://127.0.0.1:7654를 엽니다
그게 전부입니다. 서버 배포도, 데이터베이스도, 아무것도 필요 없습니다. 단 하나의 바이너리. 당신의 머신. 당신의 클러스터.
제공 기능
🖥️ 커맨드 센터 대시보드 (Command Center Dashboard)
- 실시간 클러스터 상태 및 메트릭 (metrics) 히트맵
- Pod 단계 차트, 배포 상태, 재시작 리더보드
- 19가지 리소스 종류: Pods, Deployments, StatefulSets, Services, Ingresses, DaemonSets, Jobs, RBAC, Namespaces 등
- 요청 (requests) 및 제한 (limits)과 함께 인라인으로 표시되는 실시간 CPU/메모리 사용량
**🧠 AI 어시스턴트 (AI Assistant) (플러그인 방식)
원하는 모델을 선택하거나, 데이터가 머신을 떠나지 않도록 로컬에서 실행하세요:
- 호스팅된 Claude (Anthropic API를 통해)
- 로컬 모델 (Ollama: llama, mistral, qwen, phi3)
- 모든 OpenAI 호환 엔드포인트 (OpenAI, LocalAI, vLLM, Groq, OpenRouter)
🎙️ 음성 명령 (Voice Commands)
마이크를 누르고 자연스럽게 말하세요:
- "실행 중인 Pod가 몇 개인가요?" → 클러스터로부터 실시간 답변
- "broken-api가 왜 실패하나요?" → 근본 원인 분석 (Root cause analysis)
- "web-frontend를 3개로 스케일링해줘" → 확인 절차를 거친 변이 (mutation)
- 음성 답변을 소리 내어 읽어줍니다. 타이핑이 필요 없습니다.
📊 관측성 기능 (Observability Features)
- Alerts (Pulse): Crashloop, OOMKill, 성능 저하된 워크로드(degraded workloads), 만료 예정인 인증서(expiring certs) 등 모든 문제 상황을 하나의 분류(triage) 뷰로 제공
- Topology Graph: Ingress → Service → Workload → Pod 및 복제본 상태(replica health)를 보여주는 토폴로지 그래프
- Metrics: 노드 히트맵(Node heatmaps), 상위 리소스 소비 항목, 서비스별 사용량
- Quotas: 진행률 표시줄(progress bars)이 포함된 ResourceQuota 대시보드
🔌 Ecosystem Integrations (설치하지 않고 탐지하는 방식)
- Security: Trivy Operator CVE 보고서
- Policy: Kyverno/OPA PolicyReports 준수 여부
- GitOps: Argo CD + Flux 동기화 상태
- Autoscaling: HPA + KEDA 상태
- Certificates: cert-manager 만료 알림
🪟 Native Desktop App
Electron의 무거운 비대함(bloat) 없이, 시스템 웹뷰(system webview)를 사용하여 macOS, Windows 또는 Linux에서 데스크톱 창으로 동일한 바이너리가 실행됩니다.
Why I Built This
제가 시도해 본 모든 Kubernetes 대시보드는 다음 중 하나였습니다:
- 인프라 배포가 필요함 (사양 거절)
- 클러스터 컨텍스트(cluster context)를 이해하지 못함 (어차피 kubectl이 필요함)
- UI는 있지만 지능이 없음 (정적인 대시보드는 지루함)
KubeAura는 판도를 바꿉니다: 상태가 없고(stateless), 단일 바이너리이며, 실제로 지능적입니다. k9s와 Lens, 그리고 ChatGPT가 만난 형태이지만, 신뢰할 수 있는 하나의 40MB 바이너리로 제공됩니다.
Getting Started (30 seconds)
macOS / Linux:
curl -sSfL https://raw.githubusercontent.com/devganeshg/kubeaura/main/scripts/install.sh | sh
kubeaura
Windows:
releases에서 .zip 파일을 다운로드하여 PATH에 압축을 해제하세요.
Docker:
docker run --rm -p 7654:7654 \
-v ~/.kube:/home/nonroot/.kube:ro \
ghcr.io/devganeshg/kubeaura
그 다음 http://127.0.0.1:7654를 여세요.
Turning on the AI (Optional)
AI 없이도 모든 기능이 작동하지만, AI가 더해질 때 마법이 일어납니다.
Local Ollama (완전한 프라이버시 보장):
ollama serve &
ollama pull llama3.2
export KUBEAURA_AI_PROVIDER=ollama
...
Hosted Claude:
export ANTHROPIC_API_KEY=sk-ant-...
kubeaura
또는 OpenAI, LocalAI, vLLM, Groq, OpenRouter 등 원하는 무엇이든 사용할 수 있습니다.
Features That Impressed Even Me
1. 클러스터 진단 (Cluster Diagnosis)
어떤 Pod에서든 "Diagnose"를 클릭하면 실제 스펙(spec), 이벤트(events), 로그(logs)를 기반으로 한 근본 원인 분석 (root cause analysis) 결과를 얻을 수 있습니다.
2. 음성 제어 (Voice Control)
- 어떤 화면에서든 마이크 아이콘을 탭하세요
- 자연스럽게 말하세요: _"문제가 있는 게 있어?" (Is anything broken?)"
- 음성 답변을 받으세요
- 대화 모드 (Conversation mode)는 마이크를 계속 열어두어 핸즈프리 (hands-free) 워크플로우를 지원합니다.
3. RBAC 준수 UI (RBAC-Honest UI)
수행할 수 없는 작업은 자동으로 비활성화(greyed out)됩니다. 금지된 읽기 권한은 페이지 전체를 깨뜨리는 대신 패널 단위로 제한됩니다. 사용자가 실제로 할 수 있는 권한을 존중합니다.
4. 데스크톱 앱 (Desktop App)
데스크톱 창은 시스템 웹뷰 (system webview)를 사용합니다. macOS/Windows/Linux에서 KubeAura 아이콘과 함께 작동하는 진정한 네이티브 윈도우입니다. Electron이나 Node 같은 추가적인 배포 요소가 필요 없습니다.
5. 기본 보안 설정 (Security by Default)
127.0.0.1(루프백 전용)에 바인딩합니다.- 교차 출처 (cross-origin) 및 DNS 리바인딩 (DNS-rebinding) 공격을 거부합니다.
- API 키는 절대 디스크에 기록되지 않습니다.
- 호스팅된 모델 (hosted model)을 선택한 경우에만 데이터가 사용자의 머신을 떠납니다.
기술 스택 (The Tech)
- 백엔드 (Backend): Go (단일 바이너리, UI 포함 시 약 40MB)
- 프론트엔드 (Frontend): Vanilla JavaScript + HTML5, 빌드 단계 없음,
go:embed로 임베딩됨 - 클러스터 액세스 (Cluster Access): client-go + Kubernetes API
- UI 스타일 (UI Style): 따뜻한 차콜 글래스 (warm charcoal glass) 위에 KubeAura 그라데이션 (오렌지에서 핫 핑크) 적용, 다크/라이트 모드 지원
- 데스크톱 (Desktop): 시스템 웹뷰 쉘 (System webview shell - WKWebView/WebView2/WebKitGTK)
향후 방향 (Where's This Headed?)
현재 (v0.1) KubeAura는 핵심 기능을 다룹니다:
- 클러스터 관측 (Cluster observation: 대시보드, 메트릭, 알람, 토폴로지)
- 리소스 관리 (Resource management: YAML 편집, 로그, exec, port-forward, scale, restart, delete)
- AI 지원 (AI assistance: 진단, 분류, 리뷰, 설명, 요약, 생성)
계획 중인 기능 (아직 구축되지 않음):
- 대화형 TTY 터미널 (Interactive TTY terminal, 현재 exec는 단발성임)
- YAML 스키마 자동 완성 (YAML schema autocomplete)
- Helm / Kustomize 앱 카탈로그
- 플러그인 SDK (Plugin SDK)
- Prometheus/Alertmanager 브릿지
기여하기 (Contributing)
기여자를 찾고 있습니다! 이 프로젝트는 다음을 갖추고 있습니다:
- ✅ 포괄적인 README 및 문서
- ✅ 기여 가이드라인 + 행동 강령 (Code of Conduct)
- ✅ 확장하기 쉬운 아키텍처
- ✅ 활발한 유지보수
입문하기 좋은 이슈 (Good first-issue) 영역:
- UI 개선 (더 많은 아이콘, 애니메이션)
- 추가적인 AI 백엔드 (Bedrock, Vertex AI 등)
- 리소스 종류 (Resource kind) 추가
- 성능 최적화
CONTRIBUTING.md를 참조하세요.
왜 오픈 소스인가요?
Kubernetes는 팀 스포츠입니다. 최고의 도구는 고립된 조직이 아닌 커뮤니티에서 나옵니다. 제가 KubeAura를 Apache 2.0 라이선스로 공개하는 이유는 다음과 같습니다:
- 여러분의 Kubernetes 대시보드가 외부로 데이터를 전송(phone home)해서는 안 됩니다.
- 여러분의 kubeconfig가 서버 배포를 필요로 해서는 안 됩니다.
- AI는 운영자 (Operator)의 판단을 대체하는 것이 아니라 보조해야 합니다.
한 가지 더
직접 사용해 보신다면, 다음 내용들을 듣고 싶습니다:
- 무엇이 작동하지 않는지 (GitHub issues)
- 무엇이 좋았는지 (Star 🌟를 눌러주세요)
- AI 기능에 대한 아이디어 (discussions)
- 또는 그냥 인사 나누기
⭐ GitHub • 🌐 Website • 📦 Releases
여러분의 생각은 어떠신가요?
kubectl, 대시보드, 로그를 번갈아 가며 다루는 데 지치셨나요? Kubernetes 대시보드가 질문에 답해줄 수 있기를 바란 적이 있나요?
아래에 댓글을 남겨주세요. 여러분의 클러스터 관리 워크플로우(workflow)와 KubeAura가 여러분의 실제 문제를 해결해 주는지 정말 궁금합니다.
Kubernetes 운영이 덜 골치 아프도록 만들어 봅시다. 한 번에 하나의 음성 명령으로 말이죠.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기