alibaba/kubeskoop
GitHub: alibaba/kubeskoop
阿里巴巴开源的 Kubernetes 网络诊断套件,通过 eBPF 深度内核监控帮助定位和解决集群网络连通性与性能问题。
Stars: 675 | Forks: 89
# KubeSkoop



[](https://goreportcard.com/report/github.com/alibaba/kubeskoop)
English | [简体中文](./README_zh.md)
- [概述](#overview)
- [快速开始](#quick-start)
- [贡献](#contributing)
- [联系](#contact)
- [许可证](#license)
## 概述
KubeSkoop 是一个适用于不同 CNI 插件和 IAAS 提供商的 Kubernetes 网络诊断工具。
KubeSkoop 自动构建 Kubernetes 集群中 Pod 的网络流量图,
通过 eBPF 对内核关键路径进行监控和分析,以解决大部分 Kubernetes 集群网络问题。
### 关键特性
#### 网络断连的一次性诊断
- 诊断 Pod、Service、Node 之间的集群内流量以及入口/出口流量。
- 覆盖整个 Linux 网络栈:Socket、Bridge、Veth、Netfilter、sysctls…
- 支持云厂商的 IaaS 网络探测。
#### 深度内核监控
- eBPF 无缝内核监控
- 基于 BTF 的 CO-RE 脚本支持系列内核
- 指标导出到标准 Prometheus 指标 API
#### 网络异常事件
- 支持数十种异常场景识别
- 异常事件导出到 Grafana Loki 或 Web 控制台
#### 用户友好的 Web 控制台
- 集成 KubeSkoop 的所有能力,提供网络诊断、事件监控、抓包、延迟探测等功能。
## 快速开始
您可以从 [KubeSkoop.io](https://kubeskoop.io/) 查看完整文档。
### 安装
您可以通过 [skoopbundle.yaml](deploy/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** 下,您可以对集群中的节点/Pod 进行抓包。

#### 延迟探测
在 **Diagnosis - Latency Detection** 下,您可以探测多个节点和 Pod 之间的延迟。

### 监控网络抖动和瓶颈
#### 网络性能仪表盘
从 **Monitoring - Dashboard** 查看网络性能仪表盘。在仪表盘中,您可以检查与性能问题时间点对应的各监控项水位。

#### 网络抖动和异常事件分析
在 **Monitoring - Event** 下,您可以查看当前时间点集群内发生的异常事件。您也可以手动选择所需的时间范围,或根据事件类型、节点以及发生事件的 Pod 的命名空间/名称等信息进行筛选。
点击右上角的 `Live` 可根据当前筛选条件查看实时事件流。

#### 网络链路图
在首页或 **Monitoring - Network Graph** 下,您可以查看集群中基于时间和命名空间的实际网络链路图。您也可以切换视图模式至 `Table` 以查看每一个连接。

## 联系
- 钉钉群号(26720020148)
## 许可证
KubeSkoop 中运行在用户空间的大部分源代码均根据 [Apache License, Version 2.0](LICENSE.md) 授权。
`/bpf` 目录下的 BPF 代码根据 [GPL v2.0](bpf/COPYING) 授权,以兼容 Linux 内核辅助函数。
## 安全
请通过电子邮件向 [kubernetes-security@service.aliyun.com](mailto:kubernetes-security@service.aliyun.com) 报告漏洞。有关详情,另请参阅我们的 [SECURITY.md](SECURITY.md) 文件。
标签:API集成, CNI, DeepFlow, Docker镜像, EVTX分析, EVTX分析, GitHub, Grafana, Linux内核, Loki, Netfilter, Skooner, SQLite数据库, 二进制发布, 内核监控, 可观测性, 子域名突变, 容器网络, 密码管理, 延迟检测, 开源工具, 性能分析, 情报分析, 提示注入, 插件系统, 故障排查, 日志审计, 服务网格, 网络安全, 网络诊断, 自定义请求头, 阿里巴巴, 隐私保护, 集群管理