使用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 API 流量查看神器

kubernetes--基础--k8s的pod之间的服务访问

通过vagrant+virtualbox安装k8s找不到pod问题

如何使用 nginx 入口将流量从 route53 中的域转发到 pod?

(译)SoundCloud 如何使用 HAProxy 和 Kubernetes 处理用户流量

k8s集群service外部流量策略如何优雅的处理Pod终止过程中的流量丢失问题?