Merge pull request #351 from jzwlqx/optimize Optimize exporter CPU and memory usage for high-density nodes
Merge pull request #351 from jzwlqx/optimize
Optimize exporter CPU and memory usage for high-density nodes
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控制台。
webconsole
kubectl get svc -n kubeskoop webconsole
你可能需要使用NodePort 或LoadBalancer类型的服务从集群外访问。
NodePort
LoadBalancer
控制台的默认用户为admin,密码为kubeskoop。
admin
kubeskoop
可以通过Web控制台对集群内网络发起连通性诊断。
在Diagnosis - Connectivity Diagnosis下输入诊断的源地址、目的地址、端口和协议,点击Diagnose 发起诊断。诊断完成后,可以在列表中看到诊断结果。
Diagnose
你可以在Diagnosis - Packet Capturing中进行集群内Node/Pod的抓包操作。
在Diagnosis - Latency Detection中,对集群内多个Node/Pod之间的网络延迟进行探测。
在Monitoring - Dashboard中,可以查看当前集群内网络大盘,从大盘中可查询对应性能问题时间点的各深度指标的水位情况。
在Monitoring - Event下,可以看到当前时间点集群内产生的异常事件。你也可以手动选择需要的时间范围,或者根据事件类型、节点、事件产生的Pod命名空间/名称等信息进行筛选。
点击右上角的Live,可以实时根据当前筛选条件,实时监控集群内事件。
Live
在主页或Monitoring - Network Graph中,可以看到当前集群内的网络实际链路图,并通过时间、命名空间进行筛选。你也可以将模式改为Table按条查看连接信息。
Table
欢迎提交issue和PR来共建此项目。
KubeSkoop的多数用户态代码使用Apache License, Version 2.0。 /bpf目录下的BPF代码使用GPL v2.0。
/bpf
如果您发现了代码中的安全漏洞,请联系kubernetes-security@service.aliyun.com。详见 SECURITY.md
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
KubeSkoop
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
网络异常事件识别
用户友好的Web控制台
快速开始
完整的文档可以直接访问KubeSkoop.io 。
安装
你可以通过skoopbundle.yaml文件快速部署KubeSkoop、Prometheus、Grafana和Loki至你的集群。
备注: skoopbundle.yaml以最小副本和默认配置启动,不适用于生产环境
在安装完成并启动后,你可以通过
webconsole服务来访问KubeSkoop Web控制台。你可能需要使用
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来共建此项目。
联系方式
License
KubeSkoop的多数用户态代码使用Apache License, Version 2.0。
/bpf目录下的BPF代码使用GPL v2.0。安全
如果您发现了代码中的安全漏洞,请联系kubernetes-security@service.aliyun.com。详见 SECURITY.md