我有一个Kubernetes集群,它使用Istio作为服务网格和Metallb提供的负载平衡。我在Istio命名空间中的集群上运行了4个istio加载项(Prometheus、Kiali、Grafana和Jaeger),但是在虚拟机上运行firefox相对比较慢,而且我也不希望依赖"istioctl仪表板“命令来访问我的监视工具。
通过使用putty隧道和使用带有网关/虚拟服务资源的ingressgateway,我已经成功地访问了Kiali和Grafana,类似于Istio文档中的那些- https://istio.io/latest/docs/tasks/observability/gateways/。istio ingressgateway pod正在监听10.10.1.10,我的putty隧道指向10.10.1.10:80,源端口为90。现在所有的测试都是用http完成的。
我在下面列出了我的具体配置-
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: tracing-gateway
namespace: istio-system
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80
name: http-tracing
protocol: HTTP
hosts:
- "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: tracing-vs
namespace: istio-system
spec:
hosts:
- "*"
gateways:
- tracing-gateway
http:
- route:
- destination:
host: tracing
port:
number: 80
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: tracing
namespace: istio-system
spec:
host: tracing
trafficPolicy:
tls:
mode: DISABLE
---然而,每当我试图通过点击/tracing访问Jaeger时,我总是收到一个503个服务不可用错误。不过,我知道应用程序可以正常工作,因为如果我运行istioctl仪表板jaeger命令,我可以通过VM的firefox浏览器访问它。我想知道我需要在Jaeger内部配置什么来允许我访问它
最初,在使用Jaeger时,我尝试使用与Grafana和Kiali相同的网关/虚拟服务配置,但替换名称/端口/前缀。如下所示-
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: grafana-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: grafana
spec:
hosts:
- "*"
gateways:
- grafana-gateway
http:
- match:
- uri:
prefix: /grafana
route:
- destination:
host: grafana
port:
number: 3000在为jaeger运行此命令时,我只收到HTTP 503响应。在尝试了不同的端口组合之后,我使用了上述链接中列出的Istio页面中的yaml定义,只更改了主机行,因为我没有域,而且一切都是基于IP的。
此时,当我使用我的putty隧道导航到/tracing时,它返回一个空白页,如果检查的话,它就是标枪index.html页面。检查页面显示它试图重定向到jaeger_tracing,但返回net::ERR_ABORTED 503 (服务不可用)代码,如图像下面的屏幕截图所示
发布于 2022-11-22 16:02:45
通过在端口16686上运行kubectl端口转发命令找到了解决方案,但istioctl仪表板jaeger命令也可以这样做。
我在后台运行了其中一个程序,并使用我的putty实例,使用在我的jaeger清单中定义的url /jaeger_tracing隧道到本地主机。从那里,我可以从本地实例中命中jaeger,而不需要缓慢的VM性能。
https://stackoverflow.com/questions/74477676
复制相似问题