控制面
Polit调试接口:
curl http://istiod.istio-system:15014/debug/list
进程信息
/usr/local/bin/pilot-discovery discovery --monitoringAddr=:15014 --log_output_level=default:info --domain cluster.local --keepaliveMaxServerConnectionAge 30m
istio-proxy@istiod-77f89457ff-twz8k:/$ netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9876 0.0.0.0:* LISTEN 1/pilot-discovery
tcp6 0 0 :::15010 :::* LISTEN 1/pilot-discovery
tcp6 0 0 :::15012 :::* LISTEN 1/pilot-discovery
tcp6 0 0 :::15014 :::* LISTEN 1/pilot-discovery
tcp6 0 0 :::15017 :::* LISTEN 1/pilot-discovery
tcp6 0 0 :::8080 :::* LISTEN 1/pilot-discovery
端口解析
9876 tcp pilot-discovery ControlZ 自检工具
15010 grpc pilot-discovery gRPC discovery service
15012 grpc pilot-discovery secure gRPC discovery service - mTLS
15014 http pilot-discovery http监听端口地址 开启debug时,handler参考xds/debug.go 后期可能由8080端口替代
15017 https pilot-discovery HTTPS监听地址(webhooks)
8080 http pilot-discovery HTTP监听地址(debug)
ControlZ 查看:
用法 https://www.servicemesher.com/istio-handbook/practice/controlz-tool.html
export ISTIOD_POD=$(kubectl get pod -n istio-system -l app=istiod -o jsonpath=``'{.items[0].metadata.name}'``)`
istioctl dashboard controlz $ISTIOD_POD -n istio-system
15014监控端口(通过代码分析,后期可能由8080端口替代)
http://localhost:8080/debug/list 接口列表(不包含pprof)
http://localhost:15014/debug/pprof/ 原生的pprof 可使用controlZ查看
http://localhost:15014/debug/mesh
详情见xds/debug.go
15017端口
只有设置了k8s配置才会开启该端口,目前分析主要用来自动注入sidecar的控制
使用k8s选项启动pilot-descovery后,请求 http://localhost:8080/debug/inject 可看到注入信息
设置handleFunc地址:pkg/kube/inject/webhook.go
请求地址:https://localhost:15017/inject
8080端口
http://localhost:8080/ready 健康检查接口
也支持debug
http://localhost:8080/debug/mesh
http://localhost:8080/debug/inject 注入的webhook
数据面
Envoy调试接口:
curl http://127.0.0.1:15000/help
进程信息
istio-p+ 1 0 0 Jul17 ? 00:07:36 /usr/local/bin/pilot-agent proxy sidecar --domain default.svc.cluster.local --serviceCluster productpage.default --proxyLogLevel=warning --proxyComponentLogLevel=misc:error --log_output_level=default:info --concurrency 2
istio-p+ 21 1 0 Jul17 ? 00:40:39 /usr/local/bin/envoy -c etc/istio/proxy/envoy-rev0.json --restart-epoch 0 --drain-time-s 45 --drain-strategy immediate --parent-shutdown-time-s 60 --service-cluster productpage.default --service-node sidecar~10.42.1.80~productpage-v1-6b746f74dc-hp9jp.default~default.svc.cluster.local --local-address-ip-version v4 --bootstrap-version 3 --disable-hot-restart --log-format %Y-%m-%dT%T.%fZ.%l.envoy %n.%v -l warning --component-log-level misc:error --concurrency 2
istio-proxy@productpage-v1-6b746f74dc-hp9jp:/$ netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:15090 0.0.0.0:* LISTEN 21/envoy
tcp 0 0 127.0.0.1:15000 0.0.0.0:* LISTEN 21/envoy
tcp 0 0 0.0.0.0:9080 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:15001 0.0.0.0:* LISTEN 21/envoy
tcp 0 0 0.0.0.0:15006 0.0.0.0:* LISTEN 21/envoy
tcp 0 0 0.0.0.0:15021 0.0.0.0:* LISTEN 21/envoy
tcp6 0 0 :::15020 :::* LISTEN 1/pilot-agent
可以看到 pilot-agent链接的是 pilot-descovery 的15012端口
envoy会请求本地pilot-agent的15020端口
端口解析
15021 tcp envoy 健康检查
15090 TCP envoy http链接管理 暴露 prometheus 接口 请求地址:http://0.0.0.0:15090/stats/prometheus,通过代码可以知道,这个默认是代理应用的 /metrics 接口
15000 grpc envoy Envoy 管理端口 (commands/diagnostics)
15001 TCP envoy Envoy 传出
15006 TCP envoy Envoy 传入
15020 http pilot-agent
为envoy提供服务的端口(看代码像是健康检查的)
定义路由:pilot/cmd/pilot-agent/status/server.go:199
9080 http productpage 应用服务端口
网友评论