English | 简体中文
KubeSkoop是一个Kubernetes网络诊断工具。针对不同的网络插件和IaaS提供商自动构建Kubernetes集群中Pod的网络访问图,结合eBPF对内核关键路径的深度监控和分析,来分析常见的Kubernetes集群网络问题。显著地简化了Kubernetes网络问题的诊断难度。
诊断kubernetes集群中各种网络访问方式和链路:Pod,Service,Node以及Ingress/Egress Traffic.
覆盖完整的Linux协议栈的配置错误场景: Socket,Bridge,Veth,Netfilter,sysctls…
支持诊断多种云供应商的IaaS层网络错误配置
通过eBPF实现无侵入的Kernel Monitor
通过BTF在各种版本的Kernel上直接运行
通过标准的Prometheus接口暴露深度监控Metrics
完整的文档可以直接访问KubeSkoop.io 。
你可以通过skoopbundle.yaml文件快速部署KubeSkoop、Prometheus、Grafana和Loki至你的集群。
kubectl apply -f https://raw.githubusercontent.com/alibaba/kubeskoop/main/deploy/skoopbundle.yaml
备注: skoopbundle.yaml以最小副本和默认配置启动,不适用于生产环境
在安装完成并启动后,你可以通过webconsole服务来访问KubeSkoop Web控制台。
kubectl get svc -n kubeskoop webconsole
你可能需要使用NodePort 或LoadBalancer类型的服务从集群外访问。
控制台的默认用户为admin,密码为kubeskoop。

可以通过Web控制台对集群内网络发起连通性诊断。

在Diagnosis - Connectivity Diagnosis下输入诊断的源地址、目的地址、端口和协议,点击Diagnose 发起诊断。诊断完成后,可以在列表中看到诊断结果。

你可以在Diagnosis - Packet Capturing中进行集群内Node/Pod的抓包操作。

在Diagnosis - Latency Detection中,对集群内多个Node/Pod之间的网络延迟进行探测。

在Monitoring - Dashboard中,可以查看当前集群内网络大盘,从大盘中可查询对应性能问题时间点的各深度指标的水位情况。

在Monitoring - Event下,可以看到当前时间点集群内产生的异常事件。你也可以手动选择需要的时间范围,或者根据事件类型、节点、事件产生的Pod命名空间/名称等信息进行筛选。
点击右上角的Live,可以实时根据当前筛选条件,实时监控集群内事件。

在主页或Monitoring - Network Graph中,可以看到当前集群内的网络实际链路图,并通过时间、命名空间进行筛选。你也可以将模式改为Table按条查看连接信息。

欢迎提交issue和PR来共建此项目。
KubeSkoop的多数用户态代码使用Apache License, Version 2.0。 /bpf目录下的BPF代码使用GPL v2.0。
如果您发现了代码中的安全漏洞,请联系kubernetes-security@service.aliyun.com。详见 SECURITY.md
$ claude mcp add kubeskoop \
-- python -m otcore.mcp_server <graph>