K8S Api链路流量监控--Mizu

498 阅读1分钟

一、引入背景

Mizu是用于 Kubernetes 的简单而强大的 API 流量查看器,其能够查看跨多个协议的微服务之间的所有 API 链路通信。

Mizu提供所有 HTTP 请求、REST 和 gRPC API 调用以及 Kafka、MQ 和 Redis 的实时视图。

二、架构组成

k8s集群中,mizu给每一个节点启动一个tapper(可以理解为agent),将流量走向汇聚,最后通过ApiServer上报数据给Mizu-Cli端,通过Web端进行用户展示。

image.png

image.png

三、Mizu接入

3.1 安装Mizu

//拉取四个所需镜像 
docker pull smallsoup/up9inc-basenine:v0.3.0 
docker pull smallsoup/mizu-develop:0.22.21 
docker pull smallsoup/mizu-main:0.22.0 
docker pull smallsoup/mizu-kratos-stable:0.0.0 


//二进制方式安装 
curl -Lo mizu github.com/up9inc/mizu/releases/latest/download/mizu_linux_amd64 && chmod 755 mizu

3.2 生成配置

mizu CLI 使用--set config-path=读取配置文件。如果未提供,将使用${HOME}/.mizu/config.yaml。

先使用config -r生成默认的配置文件:

mizu config -r Template File written to /home/appops/.mizu/config.yaml
//less home/appops/.mizu/config.yaml 

tap: upload-interval: 10 regex: .* gui-port: 8899 proxy-host: 0.0.0.0 namespaces: [] analysis: false all-namespaces: false regex-masking: [] ignored-user-agents: [] no-redact: false max-entries-db-size: 200MB dry-run: false workspace: "" traffic-validation-file: "" contract: "" ask-upload-confirmation: true api-server-resources: cpu-limit: 750m memory-limit: 1Gi cpu-requests: 50m memory-requests: 50Mi tapper-resources: cpu-limit: 750m memory-limit: 1Gi cpu-requests: 50m memory-requests: 50Mi service-mesh: false version: debug: false view: gui-port: 8899 logs: file: "" auth: env-name: up9.app token: "" image-pull-policy: IfNotPresent mizu-resources-namespace: mizu telemetry: true dump-logs: false kube-config-path: "" headless: false

3.3 启动Mizu

mizu tap ".*" -n kube-system 

//默认收集该namespace下的所有pod之间的调用链路关系

image.png

访问http://10.189.129.35:8899/,即为Web端。

四、Mizu视图

各节点之间的Api流量走向以及链路关系:

image.png

image.png

八、相关限制

Mizu支持的k8s版本要在1.16.x以上:

image.png