Istio(1.0.6版)官方文件说:
我们可以通过以下操作访问Jaeger UI:
Kubectl port-forward -n istio-system $(kubectl get pod -n istio-system -l app = jaeger -o jsonpath ='{。items [0] .metadata.name}')16686:16686&
然后我们可以使用http://localhost:16686
。但是localhost是一台Linux机器,它没有浏览器。我必须在远程计算机上打开浏览器。我怎样才能做到这一点?谢谢。
您可以使用NodePort选择器创建app: jaeger
服务,以在集群外部公开UI。
kubectl port-forward
命令默认只暴露给localhost
网络,尝试添加--address 0.0.0.0
$ kubectl port-forward -n istio-system \
$(kubectl get pod -n istio-system -l app=jaeger -o jsonpath=’{.items[0].metadata.name}’) \
--address 0.0.0.0 16686:16686 &
有几种方法可以做到这一点。 port-forward
在Google Cloud Shell上运行良好。如果您正在使用GKE,那么我强烈建议使用Cloud Shell和port-forward
,因为这是最简单的方法。在其他云上,我不知道。
什么表明斯特凡会工作。您可以使用kubectl edit svc jaeger-query
编辑jaeger服务,然后将服务类型从ClusterIP
更改为NodePort
。最后,您可以使用NODE_IP:PORT
(任何节点)访问该服务。如果您执行kubectl get svc
,您将看到分配给该服务的新端口。注意:您可能需要为该端口打开防火墙规则。
如果您有一个控制平面来设置外部IP地址,您也可以使服务类型为LoadBalancer
。这将是一个更昂贵的解决方案,但您将拥有一个专用的外部IP地址为您的服务。
有更多的方法,但我会说这些是合适的。