公众号关注 「奇妙的 Linux 世界」
设为「星标」,每天带你玩转 Linux !
介绍
Mizu 是一个简单但功能强大的 Kubernetes API 流量查看器,可以让我们查看微服务之间的所有 API 通信,以帮助你调试和排查故障,相当于 TCPDump
和 Chrome Dev Tools
工具的结合。
项目地址:https://github.com/up9inc/mizu
安装
Mizu 是一个 Golang 开发的二进制工具包,只需要单独下载即可运行。
如果是 MAC 系统直接使用下面的命令下载安装即可:
$ curl -Lo mizu \
https://github.com/up9inc/mizu/releases/latest/download/mizu_darwin_amd64 \
&& chmod 755 mizu
如果是 Linux 系统则可以使用下面的命令:
$ curl -Lo mizu \
https://github.com/up9inc/mizu/releases/latest/download/mizu_linux_amd64 \
&& chmod 755 mizu
运行
Mizu
使用的是 KUBECONFIG
环境变量来查找 kubeconfig 文件,如果没有设置则使用默认的 $HOME/.kube/config
文件,所以只需要保证我们的 kubectl 能正常控制 Kubernetes 集群,那么 Mizu
就可以正常运行了。
此外 Mizu
会假设运行该命令的用户有权在你的 Kubernetes 集群上创建资源对象(比如 pod、service、namespace)。
Mizu 运行时候会在 kubernetes 集群创建资源(pod,service,namespace), 在命令终止时会自行清理资源。
要使用 Mizu
来查看流量,只需要按照下面的步骤操作即可:
在 Kubernetes 集群中查找你想要查看的 Pod
运行
mizu tap
或者mizu tap PODNAME
命令在浏览器中打开
http://localhost:8899/mizu
页面在打开的页面中即可观察 API 的流量
输入
^C
即可停止
假设我们正在运行的 Pod 列表如下所示:
要查看指定 Pod 的流量,只需要输入 Pod 名即可:
➜ ~ mizu tap catalogue-b87b45784-sxc8q
+catalogue-b87b45784-sxc8q
Web interface is now available at http://localhost:8899
^C
我们运行 mizu tap 命令后会在 mizu 命名空间临时创建pod
➜ ~ kubectl get pod -n mizu
NAME READY STATUS RESTARTS AGE
mizu-api-server 1/1 Running 0 5m39s
mizu-tapper-daemon-set-4w5hc 1/1 Running 0 5m39s
如果要查看多个 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
然后,我们可以在浏览器中打开 http://localhost:8899/mizu 页面观察 API 的流量。
除此之外还有安全配置和高级用法,可以查看官方网站
(https://getmizu.io/)了解更多详情。
本文转载自:「Github爱好者」,原文:https://tinyurl.com/y7y3btk6,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。
你可能还喜欢
点击下方图片即可阅读
如何优雅的通过 ApiServer 远程访问 Kubernetes 集群
点击上方图片,『美团|饿了么』外卖红包天天免费领
更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!