5.1.7 调试入口网关

调试网络问题有时很困难,所以这里总结一些有用的命令用于调试。

端口转发到第一个istio-ingressgateway pod:


kubectl -n istio-system port-forward $(kubectl -n istio-system get pods -listio=ingressgateway -o=jsonpath="{.items[0].metadata.name}") 15000

然后,可以从端口转发的入口网关pod中获得http路由:


curl --silent http://localhost:15000/config_dump |jq .configs[3].dynamic_route_configs[].route_config.virtual_hosts[]

如图5-4所示:

图5-4 端口转发的入口网关pod

查看上述端口转发的入口网关pod的日志信息:


kubectl -n istio-system logs $(kubectl -n istio-system get pods -listio=ingress
gateway -o=jsonpath="{.items[0].metadata.name}") --tail=300

查看Pilot pod的日志信息:


kubectl -n istio-system logs $(kubectl -n istio-system get pods -listio=pilot -o=jsonpath="{.items[0].metadata.name}") discovery --tail=300

当启动端口转发到入口网关istio-ingressgateway之后,可以执行更多操作以获取更多信息,例如:

·要查看Envoy侦听器,请到如下网址浏览:http://localhost:15000/listeners

·要打开更详细的日志记录,请到如下网址:http://localhost:15000/logging

·可以在根目录http://localhost:15000/中找到更多信息。