Kubeshark
resmiAkses MCP ke lalu lintas jaringan L4 dan L7 di seluruh klaster, paket, API, dan payload lengkap.
Apa yang bisa Anda lakukan dengan Kubeshark MCP?
- Kueri transaksi API L7 dengan filter KFL — gunakan
list_api_callsuntuk menemukan permintaan HTTP, gRPC, Redis, Kafka, atau DNS yang cocok dengan kondisi seperti kode status atau jalur. - Periksa panggilan API tertentu secara detail — ambil data permintaan/tanggapan lengkap untuk satu transaksi dengan
get_api_call. - Dapatkan statistik API yang teragregasi — rangkum pola lalu lintas, tingkat kesalahan, atau distribusi latensi menggunakan
get_api_stats. - Lihat aliran dan ringkasan jaringan L4 — daftar koneksi TCP/UDP dan dapatkan gambaran konektivitas melalui
list_l4_flowsdanget_l4_flow_summary. - Buat dan kelola snapshot PCAP — tangkap lalu lintas jaringan untuk analisis offline dengan
create_snapshotdanlist_snapshots. - Kontrol pembedahan protokol L7 — aktifkan atau nonaktifkan penguraian protokol mendalam sesuai permintaan menggunakan
enable_dissectiondandisable_dissection.
Dokumentasi
Server MCP Kubeshark
Kubeshark server MCP (Model Context Protocol) memungkinkan asisten AI seperti Claude Desktop, Cursor, dan klien lain yang kompatibel dengan MCP untuk melakukan kueri lalu lintas jaringan Kubernetes secara real-time.
Keterampilan AI
MCP menyediakan alat — keterampilan AI mengajarkan agen cara menggunakannya. Keterampilan mengubah kemampuan MCP mentah menjadi alur kerja spesifik domain seperti analisis akar penyebab, penyaringan lalu lintas, dan investigasi forensik. Lihat README keterampilan untuk instalasi dan penggunaan.
| Keterampilan | Deskripsi |
|---|---|
network-rca | Analisis Akar Penyebab Jaringan — investigasi retrospektif berbasis snapshot dengan rute PCAP dan pembedahan |
kfl | Ahli filter KFL2 — tulis, debug, dan optimalkan kueri lalu lintas di semua protokol yang didukung |
Fitur
- Analisis Lalu Lintas API L7: Kueri transaksi HTTP, gRPC, Redis, Kafka, DNS
- Aliran Jaringan L4: Lihat aliran TCP/UDP dengan statistik lalu lintas
- Manajemen Klaster: Mulai/hentikan deployment Kubeshark (dengan kontrol keamanan)
- Snapshot PCAP: Buat dan ekspor tangkapan jaringan
- Prompt Bawaan: Prompt yang telah dikonfigurasi sebelumnya untuk tugas analisis umum
Instalasi
1. Instal Kubeshark CLI
# macOS
brew install kubeshark
# Linux
sh <(curl -Ls https://kubeshark.com/install)
# Windows (PowerShell)
choco install kubeshark
Atau unduh dari GitHub Releases.
2. Konfigurasi Claude Desktop
Tambahkan ke konfigurasi Claude Desktop Anda:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Default (memerlukan akses kubectl / konteks kube)
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp"]
}
}
}
Dengan jalur kubeconfig eksplisit:
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--kubeconfig", "/path/to/.kube/config"]
}
}
}
Mode URL (tidak memerlukan kubectl)
Gunakan ini ketika mesin tidak memiliki akses kubectl atau konteks kube. Hubungkan langsung ke deployment Kubeshark yang sudah ada:
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--url", "https://kubeshark.example.com"]
}
}
}
Untuk Hub yang dibatasi (AUTH_ENABLED=true), mode URL tidak dapat membuat token (tidak ada akses kube),
jadi berikan satu secara eksplisit melalui --token (atau variabel env KUBESHARK_HUB_TOKEN).
Buat token dari mesin yang memiliki akses klaster:
kubectl create token kubeshark-cli -n <release-namespace> --audience kubeshark-hub
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--url", "https://kubeshark.example.com", "--token", "<token>"]
}
}
}
Token berumur pendek (~1 jam) dan mode URL tidak dapat memperbaruinya secara otomatis; ketika
kedaluwarsa, server melaporkan pesan 401 ... token expired/invalid yang jelas — buat ulang
dan mulai ulang. Mode proxy (default, dengan akses kube) membuat token kubeshark-cli
secara otomatis dan memperbaruinya secara otomatis, sehingga sesi yang berjalan lama tidak kedaluwarsa.
Dengan Operasi Destruktif
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--allow-destructive", "--kubeconfig", "/path/to/.kube/config"]
}
}
}
3. Hasilkan Konfigurasi
Gunakan CLI untuk menghasilkan konfigurasi:
kubeshark mcp --mcp-config --url https://kubeshark.example.com
Alat yang Tersedia
Analisis Lalu Lintas (Semua Mode)
| Alat | Deskripsi |
|---|---|
list_workloads | Daftar pod, layanan, namespace dengan lalu lintas yang diamati |
list_api_calls | Kueri transaksi API L7 dengan penyaringan KFL |
get_api_call | Dapatkan info detail tentang panggilan API tertentu |
get_api_stats | Dapatkan statistik API teragregasi |
list_l4_flows | Daftar aliran jaringan L4 (TCP/UDP) |
get_l4_flow_summary | Dapatkan ringkasan konektivitas L4 |
list_snapshots | Daftar semua snapshot PCAP |
create_snapshot | Buat snapshot PCAP baru |
get_dissection_status | Periksa status parsing protokol L7 |
enable_dissection | Aktifkan pembedahan protokol L7 |
disable_dissection | Nonaktifkan pembedahan protokol L7 |
Manajemen Klaster (Hanya Mode Proxy)
| Alat | Deskripsi | Memerlukan |
|---|---|---|
check_kubeshark_status | Periksa apakah Kubeshark berjalan | - |
start_kubeshark | Deploy Kubeshark ke klaster | --allow-destructive |
stop_kubeshark | Hapus Kubeshark dari klaster | --allow-destructive |
Prompt yang Tersedia
| Prompt | Deskripsi |
|---|---|
analyze_traffic | Analisis pola lalu lintas API dan identifikasi masalah |
find_errors | Temukan dan ringkas kesalahan dan kegagalan API |
trace_request | Lacak jalur permintaan melalui layanan mikro |
show_topology | Tampilkan topologi komunikasi layanan |
latency_analysis | Analisis pola latensi dan identifikasi endpoint yang lambat |
security_audit | Audit lalu lintas untuk masalah keamanan |
compare_traffic | Bandingkan pola lalu lintas antar periode waktu |
debug_connection | Debug masalah konektivitas antar layanan |
Contoh Percakapan
User: Show me all HTTP 500 errors in the last hour
Claude: I'll query the API traffic for 500 errors.
[Calling list_api_calls with kfl="http and response.status == 500"]
Found 12 HTTP 500 errors:
1. POST /api/checkout -> payment-service (500)
Time: 10:23:45 | Latency: 2340ms
...
User: What services are communicating with the database?
Claude: Let me check the L4 flows to the database.
[Calling list_l4_flows with dst_filter="postgres"]
Found 5 services connecting to postgres:5432:
- orders-service: 456KB transferred
- users-service: 123KB transferred
...
Opsi CLI
| Opsi | Deskripsi |
|---|---|
--url | URL langsung ke Kubeshark Hub |
--token | Token SA/pembawa Hub untuk mode --url terhadap Hub yang dibatasi (juga KUBESHARK_HUB_TOKEN); diabaikan dalam mode proxy, yang membuat dan memperbarui token secara otomatis |
--kubeconfig | Jalur ke file kubeconfig |
--allow-destructive | Aktifkan operasi mulai/hentikan |
--list-tools | Daftar alat yang tersedia dan keluar |
--mcp-config | Cetak JSON konfigurasi Claude Desktop |
KFL (Bahasa Filter Kubeshark)
Kueri lalu lintas menggunakan sintaks KFL:
# HTTP requests to a specific path
http and request.path == "/api/users"
# Errors only
response.status >= 400
# Specific source pod
src.pod.name == "frontend-.*"
# Multiple conditions
http and src.namespace == "default" and response.status == 500
Registri MCP
Kubeshark dipublikasikan ke Registri MCP secara otomatis pada setiap rilis.
server.json di direktori ini adalah file referensi. Metadata registri aktual (versi, hash SHA256) dibuat secara otomatis selama alur kerja rilis. Lihat .github/workflows/release.yml untuk detailnya.
Tautan
Lisensi
Apache-2.0