Kubeshark
实时监控 Kubernetes 集群的状态信息,包括节点、Pod、Service、Deployment、Ingress 等资源的状态和属性。收集和展示集群的 CPU、内存、网络流量等性能指标,以及磁盘 I/O、GC 等系统级别的指标。支持自定义监控指标和告警规则,可以根据用户的需求进行定制化配置。支持导出数据到多种格式,如 JSON、CSV、HTML 等,方便用户进行数据分析和可视化。Wireshark是著名的数据包抓取、分析和故障排除工具,可以实时捕获网络流量并在微观级别上实时分析,或者读取和处理保存的数据包文件。Wireshark可以解析和显示许多协议,并有强大的过滤系统过滤感兴趣的流量。https://www.wireshark.org/
(资料图)
TCPDump/Wireshark使我们能够在微观层面可视化和理解网络中发生的事情。想象一下,如果可以在k8s中做类似的事情,如果可以看到当前部署的工作负载、获取pod、创建服务帐户以及不同的工作负载如何相互交互时究竟发生了什么,那会怎么样。
k8s
集群的示例源代码可视化
要查看启动kubectl命令时究竟发生了什么,可以简单的在kubectl命令中使用verbose标志,并设置一些详细级别,如kubectl get pods -v=6。verbose级别从0开始到9结束,0显示的信息最少,9显示最多的信息。这是当前已经存在的数据,但流程的清晰可视化并不存在。
带-v标志的kubectl可以查看L7 API调用,但不会让我们监视任何网络流量。而kubesshark抓取L3和L7,实际上它可以访问整个L2框架,可以将创建仪表板/视图来可视化,就像Wireshark一样。
Kubeshark仪表板
安装Kubeshark,看看它是如何工作的,通过以下命令安装KubeShark:
sh <(curl -Ls https://kubeshark.co/install)
要支持特定版本和架构的,请从 https://github.com/kubeshark/kubeshark/releases/ 下载二进制文件。
启动Kubeshark:
kubeshark tap -A
tap -A表示监控所有命名空间,指定-n表示监控指定命名空间。
kubeshark tap -n kube-system
Kubeshark将开始监控/获取流量,并在本地主机的端口8899上启动查看器。
启动kubesshark,仪表盘暴露在8899端口上
我用KOPS部署了测试集群,注意Kubeshark二进制文件从~/.kube/config查看当前上下文,并用相同的凭据和集群来创建其资源并开始监控。
你可以创建一个本地kind集群来快速了解Kubeshark是如何工作的。
让我们看看要监控什么,kubeshark的仪表板上有哪些功能,这些是用来测试kubesshark的过滤器样本。
单节点监控 ——
可视化服务地图 ——
监控AWS实例元数据安全凭证路径 ——
监控工具
Kubeshark是个功能强大的工具,早期被称为Mizu,由UP9开发,作为API流量查看器,后来开源并改名为Kubeshark,以表明这是基于K8S重制的Wireshark。
虽然有一些复杂的k8s运行时安全工具,如Sysdig Falco、Cilium Tetragon,都是利用eBPF功能构建的,文档中提到Kubeshark也使用eBPF,但其更侧重于在微观层面提供可视化层,以更好的理解通信。Kubeshark提供的数据绝对可以用于运行时检测。
关键词:
热门推荐
最新资讯