本文将介绍一款功能强大的Kubernetes网络诊断工具,名称为Kubeskoop。
一. 产品介绍
Kubeskoop 是一款专为Kubernetes设计的网络诊断和监控工具。Kubeskoop 提供了对集群中网络、服务、节点等多维度的可观测性,以帮助运维人员更快速地诊断和定位问题。产品具有以下特性:
1. 一键诊断网络链路
Kubeskoop 支持一键诊断 Kubernetes 集群中的多种网络链路,如 Pod、Service、Node 和 Ingress/Egress 流量,并能识别 Linux 协议栈(如 Socket、Bridge、Veth、Netfilter 等)中的配置错误,还能诊断不同云供应商 IaaS 层的网络问题。
2. 深度网络监控
Kubeskoop 利用 eBPF 无侵入地监控内核,通过 BTF 在各种内核版本上运行,并通过 Prometheus 标准接口提供详细的网络监控指标,确保集群网络健康。
3. 网络异常事件识别
Kubeskoop 能自动识别几十种常见网络异常,并通过 Web 控制台或 Grafana Loki 展示详细的异常事件,帮助快速排查网络故障。
4. 用户友好的 Web 控制台
Kubeskoop 的 Web 控制台集成了网络诊断、异常监控、抓包和延迟探测等功能,简化了集群的网络管理。
二. 产品安装
你可以通过skoopbundle.yaml文件快速部署KubeSkoop以及相关的Prometheus、Grafana和Loki等配套组件到你的集群。
kubectl apply -f https://raw.githubusercontent.com/alibaba/kubeskoop/main/deploy/skoopbundle.yaml
在安装完成并启动后,我们可以webconsole 服务来访问KubeSkoop Web 控制台。此时,需要将该服务修改为NodePort 或LoadBalancer 模式。
$ kubectl get svc -n kubeskoop webconsoleNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEwebconsole NodePort 10.100.234.159 <none> 80:30758/TCP 2m
部署完成后,我们即可以通过浏览器登录控制台,默认用户为admin,密码为kubeskoop。
三. 功能介绍
1. 网络连通性诊断
选择“Diagnosis” -“Connectivity Diagnosis”项,输入诊断的源地址、目的地址、端口和协议,可对两个IP之间的网络进行诊断。
2. 网络抓包
选择“Diagnosis” – “Packet Capturing”项,选择对应的Node或Pod,即可抓取访问该目标的数据包。
3. 延迟探测
选择“Diagnosis” – “Latency Detection” 项,选择目标Node或Pod,可对目标之间的网络延迟进行探测。
除此之外,还有网络监控展示、事件日志等实用功能,可以有效帮忙用户清楚集群网络情况,有兴趣的读者可自己下载试用。
结语
总体而言,Kubeskoop在网络诊断方面的功能丰富且实用,可以作为Kubernetes的辅助工具,较好地满足用户对于集群网络的排障需求。