kubernetes 如何在远程浏览器中打开Jaeger UI(在Istio中运行),而不是本地主机

7qhs6swi  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(4)|浏览(119)

**Istio(version 1.0.6)**官方文档说:

我们可以通过以下操作访问Jaeger UI:
Kubectl port-forward -n istio-system $(kubectl get pod -n istio-system -l app=jaeger -o jsonpath metadata.name
然后我们可以使用http://localhost:16686。但是本地主机是一台Linux机器,它没有浏览器。我必须在远程机器上打开浏览器。我该怎么做?谢谢.

a5g8bdjr

a5g8bdjr1#

有几种方法可以做到这一点。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地址为您的服务。
还有更多的方法,但我认为这些是合适的。

wgxvkvu9

wgxvkvu92#

您可以使用app: jaeger选择器创建NodePort服务,以在集群外部公开UI。

k4aesqcs

k4aesqcs3#

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 &

参见kubectl命令参考

mjqavswn

mjqavswn4#

这应该会给你一个给予打开jaeger-ui的LB。
kubectl apply -f jaeger-nlb.yaml

  • 耶格-纳布.亚姆 *
apiVersion: v1
kind: Service
metadata:
  name: jaeger-ui-nlb
  namespace: istio-system
  labels:
    app: jaeger
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
    service.beta.kubernetes.io/aws-load-balancer-healthcheck-timeout: "60"
    service.beta.kubernetes.io/do-loadbalancer-protocol: "http"
spec:
  externalTrafficPolicy: Local
  ports:
    - name: tcp
      port: 80
      protocol: TCP
      targetPort: 16686   
  selector:
    app: jaeger
  type: LoadBalancer

相关问题