使用mizu,查看Pod之间的API访问流量
Posted Locutus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用mizu,查看Pod之间的API访问流量相关的知识,希望对你有一定的参考价值。
介绍
一个简单但功能强大的 Kubernetes中的 API 流量查看器,可以用来查看pod之间的所有 API 通信,以帮助调试和排除故障。可以理解为TCPDump 和 Chrome Dev Tools 的结合。
使用
- 安装
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
。在运行时,mizu会在kubernetes集群创建资源(pod,service,namespace),在命令终止时会自行清理资源。
- 配置
在运行前我们先创建使用mizu config -r
创建一下配置文件。把配置文件中的image-pull-policy: Always改为image-pull-policy: IfNotPresent
,这是因为mizu运行时创建的pod使用的镜像是gcr.io上的,无法正常拉取。
- 运行
运行mizu 有下面几步:
在 Kubernetes 集群中查找您想要点击的 Pod
运行mizu tap或mizu tap PODNAME
在 CLI上http://localhost:8899/mizu 或按照 CLI 中的说明打开浏览器
观察 API 流量
键入 ^C 停止
这里我把要使用的镜像上传到了dockerhub,运行之前,我们需要在k8s集群所有节点
先下载镜像,然后修改镜像名称。
# docker pull misterli/mizu-main:0.16.0
# docker tag misterli/mizu-main:0.16.0 gcr.io/up9-docker-hub/mizu/main:0.16.0
运行mizu tap命令后,mizu会在k8s集群的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
- 查看
// monitoringk命名空间的所有pod
# mizu tap ".*" -n monitoring
// monitoringk命名空间的特定pod
# mizu tap -n monitoring prometheus-k8s-0
参考文章
https://www.lishuai.fun/2021/09/28/k8s-mizu/
https://getmizu.io
https://mp.weixin.qq.com/s/9yl09lkp-XQgUDOFcufgqw
以上是关于使用mizu,查看Pod之间的API访问流量的主要内容,如果未能解决你的问题,请参考以下文章
kubernetes--基础--k8s的pod之间的服务访问
通过vagrant+virtualbox安装k8s找不到pod问题
如何使用 nginx 入口将流量从 route53 中的域转发到 pod?