Muzi:轻松洞察 K8s 流量的利器

举报
kaliarch 发表于 2024/08/06 22:54:11 2024/08/06
【摘要】 一 背景在 Kubernetes 的世界里,复杂的网络流量往往难以追踪和调试。开发和运维人员需要一款便捷的工具来洞察集群内部的流量走向,以便快速定位问题和优化性能。Muzi 应运而生,成为 K8s 流量查看的利器。Mizu 是一个简单但功能强大的 Kubernetes API 流量查看器,可以让我们查看微服务之间的所有 API 通信,以帮助你调试和排查故障,相当于 TCPDump 和 Chr...

一 背景

在 Kubernetes 的世界里,复杂的网络流量往往难以追踪和调试。开发和运维人员需要一款便捷的工具来洞察集群内部的流量走向,以便快速定位问题和优化性能。Muzi 应运而生,成为 K8s 流量查看的利器。

Mizu 是一个简单但功能强大的 Kubernetes API 流量查看器,可以让我们查看微服务之间的所有 API 通信,以帮助你调试和排查故障,相当于 TCPDumpChrome Dev Tools 工具的结合。

Muzi 是一个开源的 Kubernetes 网络流量可视化工具,它可以帮助用户实时查看集群内部服务之间的流量拓扑和流量指标,例如:

  • 服务之间的连接关系
  • 请求数量、延迟、错误率
  • TCP 连接状态
  • HTTP 请求详情

Muzi 的界面简洁直观,用户无需复杂的配置即可轻松上手。它支持多种流量协议,包括 HTTP、gRPC、Dubbo 等,并提供丰富的过滤和查询功能,帮助用户快速找到所需信息。

二 特性

  • 轻量级: Muzi 部署简单,资源消耗低,对集群性能影响 minimal。
  • 实时性: Muzi 实时展示流量数据,帮助用户及时发现问题。
  • 可视化: Muzi 提供直观的图形界面,方便用户理解流量拓扑和指标。
  • 易用性: Muzi 操作简单,用户无需编写代码即可进行流量查看和分析。
  • 可扩展性: Muzi 支持插件扩展,用户可以自定义功能和指标。

三 安装部署

Mizu 是一个 Golang 开发的二进制工具包,只需要单独下载即可运行。

2.1 mac

curl -Lo mizu https://github.com/up9inc/mizu/releases/download/0.16.15/mizu_darwin_amd64 && chmod 755 mizu

2.2 linux

curl -Lo mizu https://github.com/up9inc/mizu/releases/download/0.16.15/mizu_linux_amd64 && chmod 755 mizu

Mizu 使用的是 KUBECONFIG 环境变量来查找 kubeconfig 文件,如果没有设置则使用默认的 $HOME/.kube/config 文件,所以只需要保证我们的 kubectl 能正常控制 Kubernetes 集群,那么 Mizu 就可以正常运行了。

此外 Mizu 会假设运行该命令的用户有权在你的 Kubernetes 集群上创建资源对象(比如 pod、service、namespace)。

三 使用

3.1 查看浏览

要使用 Mizu 来查看流量,只需要按照下面的步骤操作即可:

  1. 在 Kubernetes 集群中查找你想要查看的 Pod
  2. 运行 mizu tap 或者 mizu tap PODNAME 命令
  3. 在浏览器中打开 http://localhost:8899/mizu 页面
  4. 在打开的页面中即可观察 API 的流量
  5. 输入 ^C 即可停止

假设我们正在运行的 Pod 列表如下所示:

要查看指定 Pod 的流量,只需要输入 Pod 名即可:

mizu tap catalogue-b87b45784-sxc8q
+catalogue-b87b45784-sxc8q
 Web interface is now available at http://localhost:8899
 ^C

如果要查看多个 Pod 的流量,则可以通过一个正则表达式来进行匹配:

mizu tap "(catalo*|front-end*)"

该命令将观察以下 Pod 的流量,因为它们的名字符合正则表达式。

  • catalogue-6676dc489b-6tx9h
  • catalogue-db-69bd898747-7p8rq
  • front-end-946fd755f-8t6gp

如果要查看所有的 API 流量,则更简单了,直接执行 mizu tap ".*" 即可。查看某个命名空间的 Pod 中的所有 API 流量:

mizu tap ".*" -n sock-shop

除此之外还有安全配置和高级用法,可以查看官方网站(getmizu.io/)了解更多详情。

四 注意事项

4.1 muzi启动异常

4.1.1 故障原因

启动一次,muzi启动需要的镜像拉取异常。

4.1.2 解决

需要k8s集群内部能正常下载到该镜像。

github.com/anjia0532/g…

五 二次开发需求

  • 本地使用,由于内网地址,需要监听0.0.0.0 地址
  • tap 命令制定镜像拉取策略为IfNotPresent,由于是内网场景

六 总结

在复杂的 Kubernetes 集群中,洞察网络流量至关重要。Muzi 应运而生,成为 K8s 流量查看的利器。这款开源工具以其轻量、实时、易用的特性,帮助用户轻松掌握集群内部的流量走向。通过直观的可视化界面,Muzi 展示服务之间的连接关系、请求数量、延迟、错误率等关键指标,助力用户快速定位问题、优化性能和保障安全。支持多种协议、丰富的过滤和查询功能,以及持续发展的插件生态,使得 Muzi 成为开发和运维人员管理 K8s 网络流量的得力助手。

参考链接

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。