Kubeshark

ทางการ

การเข้าถึง MCP สำหรับการรับส่งข้อมูลเครือข่าย L4 และ L7 ทั่วทั้งคลัสเตอร์ แพ็กเก็ต API และเพย์โหลดที่สมบูรณ์

คุณทำอะไรได้บ้างด้วย Kubeshark MCP?

  • สอบถามธุรกรรม API ชั้น L7 ด้วยตัวกรอง KFL — ใช้ list_api_calls เพื่อค้นหาคำขอ HTTP, gRPC, Redis, Kafka หรือ DNS ที่ตรงตามเงื่อนไข เช่น รหัสสถานะหรือเส้นทาง
  • ตรวจสอบรายละเอียด API call ที่เฉพาะเจาะจง — ดึงข้อมูลคำขอ/การตอบสนองแบบเต็มสำหรับธุรกรรมเดียวด้วย get_api_call
  • รับสถิติ API แบบรวม — สรุปรูปแบบการรับส่งข้อมูล อัตราข้อผิดพลาด หรือการกระจายของเวลาแฝงโดยใช้ get_api_stats
  • ดูโฟลว์เครือข่าย L4 และสรุปผล — แสดงรายการการเชื่อมต่อ TCP/UDP และรับภาพรวมการเชื่อมต่อผ่าน list_l4_flows และ get_l4_flow_summary
  • สร้างและจัดการสแนปช็อต PCAP — จับภาพการรับส่งข้อมูลเครือข่ายเพื่อการวิเคราะห์แบบออฟไลน์ด้วย create_snapshot และ list_snapshots
  • ควบคุมการแยกวิเคราะห์โปรโตคอล L7 — เปิดหรือปิดการแยกวิเคราะห์โปรโตคอลเชิงลึกตามต้องการโดยใช้ enable_dissection และ disable_dissection

เอกสาร

Kubeshark MCP Server

Kubeshark MCP (Model Context Protocol) เซิร์ฟเวอร์ช่วยให้ผู้ช่วย AI อย่าง Claude Desktop, Cursor และไคลเอนต์ที่รองรับ MCP อื่นๆ สามารถสอบถามข้อมูลการรับส่งข้อมูลเครือข่าย Kubernetes แบบเรียลไทม์ได้

ทักษะ AI

MCP มีเครื่องมือให้ — ทักษะ AI จะสอนเอเจนต์ถึงวิธีใช้งาน ทักษะเปลี่ยนความสามารถ MCP ดิบๆ ให้เป็นเวิร์กโฟลว์เฉพาะโดเมน เช่น การวิเคราะห์สาเหตุหลัก การกรองการรับส่งข้อมูล และการสืบสวนทางนิติวิทยาศาสตร์ ดู README ทักษะ สำหรับการติดตั้งและการใช้งาน

ทักษะคำอธิบาย
network-rcaการวิเคราะห์สาเหตุหลักของเครือข่าย — การสืบสวนย้อนหลังตามสแนปช็อตด้วยเส้นทาง PCAP และการแยกส่วน
kflผู้เชี่ยวชาญตัวกรอง KFL2 — เขียน แก้ไขข้อบกพร่อง และเพิ่มประสิทธิภาพการสอบถามการรับส่งข้อมูลในทุกโปรโตคอลที่รองรับ

คุณสมบัติ

  • การวิเคราะห์การรับส่งข้อมูล API L7: สอบถามธุรกรรม HTTP, gRPC, Redis, Kafka, DNS
  • โฟลว์เครือข่าย L4: ดูโฟลว์ TCP/UDP พร้อมสถิติการรับส่งข้อมูล
  • การจัดการคลัสเตอร์: เริ่ม/หยุดการปรับใช้ Kubeshark (พร้อมการควบคุมความปลอดภัย)
  • สแนปช็อต PCAP: สร้างและส่งออกการจับข้อมูลเครือข่าย
  • พรอมต์ในตัว: พรอมต์ที่กำหนดค่าไว้ล่วงหน้าสำหรับงานวิเคราะห์ทั่วไป

การติดตั้ง

1. ติดตั้ง Kubeshark CLI

# macOS
brew install kubeshark

# Linux
sh <(curl -Ls https://kubeshark.com/install)

# Windows (PowerShell)
choco install kubeshark

หรือดาวน์โหลดจาก GitHub Releases

2. กำหนดค่า Claude Desktop

เพิ่มลงในการกำหนดค่า Claude Desktop ของคุณ:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

ค่าเริ่มต้น (ต้องมีการเข้าถึง kubectl / บริบท kube)

{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp"]
    }
  }
}

ด้วยพาธ kubeconfig ที่ระบุอย่างชัดเจน:

{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp", "--kubeconfig", "/path/to/.kube/config"]
    }
  }
}

โหมด URL (ไม่ต้องใช้ kubectl)

ใช้เมื่อเครื่องไม่มีการเข้าถึง kubectl หรือบริบท kube เชื่อมต่อโดยตรงกับการปรับใช้ Kubeshark ที่มีอยู่:

{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp", "--url", "https://kubeshark.example.com"]
    }
  }
}

สำหรับ Hub ที่มีเกต (AUTH_ENABLED=true) โหมด URL ไม่สามารถสร้างโทเค็นได้ (ไม่มีการเข้าถึง kube) ดังนั้นให้ระบุโทเค็นอย่างชัดเจนผ่าน --token (หรือตัวแปรสภาพแวดล้อม KUBESHARK_HUB_TOKEN) สร้างโทเค็นจากเครื่องที่มีการเข้าถึงคลัสเตอร์:

kubectl create token kubeshark-cli -n <release-namespace> --audience kubeshark-hub
{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp", "--url", "https://kubeshark.example.com", "--token", "<token>"]
    }
  }
}

โทเค็นมีอายุสั้น (~1 ชั่วโมง) และโหมด URL ไม่สามารถต่ออายุอัตโนมัติ ได้ เมื่อหมดอายุเซิร์ฟเวอร์จะรายงานข้อความ 401 ... token expired/invalid ที่ชัดเจน — สร้างใหม่และรีสตาร์ท โหมดพร็อกซี (ค่าเริ่มต้น พร้อมการเข้าถึง kube) จะสร้างโทเค็น kubeshark-cli โดยอัตโนมัติและ ต่ออายุอัตโนมัติ ดังนั้นเซสชันที่ทำงานเป็นเวลานานจะไม่หมดอายุ

พร้อมการดำเนินการทำลายล้าง

{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp", "--allow-destructive", "--kubeconfig", "/path/to/.kube/config"]
    }
  }
}

3. สร้างการกำหนดค่า

ใช้ CLI เพื่อสร้างการกำหนดค่า:

kubeshark mcp --mcp-config --url https://kubeshark.example.com

เครื่องมือที่มีอยู่

การวิเคราะห์การรับส่งข้อมูล (ทุกโหมด)

เครื่องมือคำอธิบาย
list_workloadsแสดงรายการพ็อด บริการ เนมสเปซที่มีการรับส่งข้อมูลที่สังเกตได้
list_api_callsสอบถามธุรกรรม API L7 ด้วยการกรอง KFL
get_api_callรับข้อมูลโดยละเอียดเกี่ยวกับการเรียก API เฉพาะ
get_api_statsรับสถิติ API แบบรวม
list_l4_flowsแสดงรายการโฟลว์เครือข่าย L4 (TCP/UDP)
get_l4_flow_summaryรับสรุปการเชื่อมต่อ L4
list_snapshotsแสดงรายการสแนปช็อต PCAP ทั้งหมด
create_snapshotสร้างสแนปช็อต PCAP ใหม่
get_dissection_statusตรวจสอบสถานะการแยกวิเคราะห์โปรโตคอล L7
enable_dissectionเปิดใช้งานการแยกส่วนโปรโตคอล L7
disable_dissectionปิดใช้งานการแยกส่วนโปรโตคอล L7

การจัดการคลัสเตอร์ (โหมดพร็อกซีเท่านั้น)

เครื่องมือคำอธิบายต้องการ
check_kubeshark_statusตรวจสอบว่า Kubeshark กำลังทำงานอยู่หรือไม่-
start_kubesharkปรับใช้ Kubeshark กับคลัสเตอร์--allow-destructive
stop_kubesharkลบ Kubeshark ออกจากคลัสเตอร์--allow-destructive

พรอมต์ที่มีอยู่

พรอมต์คำอธิบาย
analyze_trafficวิเคราะห์รูปแบบการรับส่งข้อมูล API และระบุปัญหา
find_errorsค้นหาและสรุปข้อผิดพลาดและความล้มเหลวของ API
trace_requestติดตามเส้นทางคำขอผ่านไมโครเซอร์วิส
show_topologyแสดงโทโพโลยีการสื่อสารของบริการ
latency_analysisวิเคราะห์รูปแบบเวลาแฝงและระบุปลายทางที่ช้า
security_auditตรวจสอบการรับส่งข้อมูลเพื่อหาข้อกังวลด้านความปลอดภัย
compare_trafficเปรียบเทียบรูปแบบการรับส่งข้อมูลระหว่างช่วงเวลา
debug_connectionแก้ไขข้อบกพร่องปัญหาการเชื่อมต่อระหว่างบริการ

ตัวอย่างการสนทนา

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
...

ตัวเลือก CLI

ตัวเลือกคำอธิบาย
--urlURL โดยตรงไปยัง Kubeshark Hub
--tokenโทเค็น SA/ bearer ของ Hub สำหรับโหมด --url กับ Hub ที่มีเกต (รวมถึง KUBESHARK_HUB_TOKEN); ถูกละเว้นในโหมดพร็อกซี ซึ่งสร้างและต่ออายุโทเค็นอัตโนมัติ
--kubeconfigพาธไปยังไฟล์ kubeconfig
--allow-destructiveเปิดใช้งานการดำเนินการเริ่ม/หยุด
--list-toolsแสดงรายการเครื่องมือที่มีอยู่และออก
--mcp-configพิมพ์ JSON การกำหนดค่า Claude Desktop

KFL (Kubeshark Filter Language)

สอบถามการรับส่งข้อมูลโดยใช้ไวยากรณ์ 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

MCP Registry

Kubeshark ถูกเผยแพร่ไปยัง MCP Registry โดยอัตโนมัติในทุกการเผยแพร่

server.json ในไดเรกทอรีนี้เป็นไฟล์อ้างอิง ข้อมูลเมตาของรีจิสทรีจริง (เวอร์ชัน, แฮช SHA256) ถูกสร้างขึ้นโดยอัตโนมัติระหว่างเวิร์กโฟลว์การเผยแพร่ ดู .github/workflows/release.yml สำหรับรายละเอียด

ลิงก์

ใบอนุญาต

Apache-2.0