Kubernetes API 流量查看神器 - Mizu
Mizu 是一個(gè)簡(jiǎn)單但功能強(qiáng)大的 Kubernetes API 流量查看器,可以讓我們查看微服務(wù)之間的所有 API 通信,以幫助你調(diào)試和排查故障,相當(dāng)于 TCPDump 和 Chrome Dev Tools 工具的結(jié)合。

安裝
Mizu 是一個(gè) Golang 開(kāi)發(fā)的二進(jìn)制工具包,只需要單獨(dú)下載即可運(yùn)行。
如果是 MAC 系統(tǒng)直接使用下面的命令下載安裝即可:
curl?-Lo?mizu?\?https://github.com/up9inc/mizu/releases/latest/download/mizu_darwin_amd64?\?&&?chmod?755?mizu
如果是 Linux 系統(tǒng)則可以使用下面的命令:
curl?-Lo?mizu?\?https://github.com/up9inc/mizu/releases/latest/download/mizu_linux_amd64?\?&&?chmod?755?mizu
Mizu 使用的是 KUBECONFIG 環(huán)境變量來(lái)查找 kubeconfig 文件,如果沒(méi)有設(shè)置則使用默認(rèn)的 $HOME/.kube/config 文件,所以只需要保證我們的 kubectl 能正??刂?Kubernetes 集群,那么 Mizu 就可以正常運(yùn)行了。
此外 Mizu 會(huì)假設(shè)運(yùn)行該命令的用戶(hù)有權(quán)在你的 Kubernetes 集群上創(chuàng)建資源對(duì)象(比如 pod、service、namespace)。
運(yùn)行
要使用 Mizu 來(lái)查看流量,只需要按照下面的步驟操作即可:
在 Kubernetes 集群中查找你想要查看的 Pod 運(yùn)行 mizu tap或者mizu tap PODNAME命令在瀏覽器中打開(kāi) http://localhost:8899/mizu頁(yè)面在打開(kāi)的頁(yè)面中即可觀察 API 的流量 輸入 ^C即可停止
假設(shè)我們正在運(yùn)行的 Pod 列表如下所示:

要查看指定 Pod 的流量,只需要輸入 Pod 名即可:
mizu?tap?catalogue-b87b45784-sxc8q
+catalogue-b87b45784-sxc8q
?Web?interface?is?now?available?at?http://localhost:8899
?^C
如果要查看多個(gè) Pod 的流量,則可以通過(guò)一個(gè)正則表達(dá)式來(lái)進(jìn)行匹配:
mizu?tap?"(catalo*|front-end*)"
該命令將觀察以下 Pod 的流量,因?yàn)樗鼈兊拿址险齽t表達(dá)式。
catalogue-6676dc489b-6tx9h catalogue-db-69bd898747-7p8rq front-end-946fd755f-8t6gp
如果要查看所有的 API 流量,則更簡(jiǎn)單了,直接執(zhí)行 mizu tap ".*" 即可。查看某個(gè)命名空間的 Pod 中的所有 API 流量:
mizu?tap?".*"?-n?sock-shop

除此之外還有安全配置和高級(jí)用法,可以查看官方網(wǎng)站(https://getmizu.io/)了解更多詳情。
倉(cāng)庫(kù)地址:https://github.com/up9inc/mizu/
