Kubeshark 监控 Kubernetes 集群内流量

2023年 8月 21日 27.6k 0

Kubeshark 是 Kubernetes 的 API 流量分析器,提供对 Kubernetes 内部网络的实时协议级可见性,捕获、剖析和监控进出容器、Pod 和集群的所有流量和有效负载。

image.png
安装

sh  .kubeshark/config.yaml

如果您没有足够的权限,并且想要监视 ns 生产中的特定 Pod:

kubeshark tap nom-du-pod --set selfnamespace=production

监控指定命名空间中的所有 Pod 并且暴露地址

kubeshark tap -n default --proxy-host 0.0.0.0

Kubeshark 部署在我们的集群中:

image.png

在我们的集群中启动 Kubeshark 部署

Kubeshark 将创建以下 Pod 和服务:

image.png
Kubeshark 的仪表板

Kubeshark 部署完成后,查看kubeshark-front登录地址

2023-08-21T10:37:09+08:00 INF tapRunner.go:263 > Added: pod=kubeshark-front
2023-08-21T10:37:41+08:00 INF proxy.go:30 > Starting proxy... namespace=default service=kubeshark-hub src-port=8898
2023-08-21T10:37:41+08:00 INF tapRunner.go:445 > Hub is available at: url=http://0.0.0.0:8898
2023-08-21T10:37:41+08:00 INF proxy.go:30 > Starting proxy... namespace=default service=kubeshark-fron

image.png

监控指定pod的网络

kubeshark tap "(whoami.*)" --proxy-host 0.0.0.0

image.png

暴露nodePort

kubectl expose deployment whoami  --name=whoaminode --target-port=80 --type=NodePort

集群外访问

image.png

image.png

10.244.234.128 这个IP是tunl0 是一个虚拟网络接口,通常用于创建隧道连接以支持容器和虚拟机之间的跨节点通信。tunl0 接口被用作隧道的一端,通过它可以在不同节点之间传递封装后的数据包,从而实现网络通信和互连 可以看到这个10.244.234.128 直接转发到pod的网络了,也可以看见具体http包里面东西

Service Map 可以看具体包大小响应时间还有具体的流量走势图

image.png

删除 Kubeshark 部署

完成调试后,命令删除 Kubeshark 部署的资源

kubeshark clean 

结语

KubeShark 是一个开源工具,它提供了方便的安装过程并且易于使用。其主要功能是分析和过滤在 Kubernetes 集群中传输的网络流量。通过 KubeShark,您可以专注于特定命名空间内的网络流量,从而便于调试和分析您的应用程序

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论