首页 > 解决方案 > Istio 指标目的地未知

问题描述

设想

Istio 版本 1.5.0 位于 EKS 1.14 之上。启用的组件:

注意Istio 1.5.0 弃用了 Mixer,移至遥测 v2,这发生在 envoy 代理 sidecar 中。

我想使用 Istio 来支持一些开箱即用的指标。

这是流程

我的电脑 -> 网关 -> 虚拟服务 A -> 虚拟服务 B

我确保:

  1. K8s 服务对象有标签app
  2. K8s 部署对象及其 pod 模板具有标签app

我可以很好地运行流程,这意味着配置是正确的。

问题在于遥测。

istio_requests_total{connection_security_policy="unknown",destination_app="unknown",destination_canonical_revision="latest",destination_canonical_service="unknown",destination_principal="spiffe://cluster.local/ns/default/sa/default",destination_service="svcb.default.svc.cluster.local",destination_service_name="svcb.default.svc.cluster.local",destination_service_namespace="unknown",destination_version="unknown",destination_workload="unknown",destination_workload_namespace="unknown",grpc_response_status="0",instance="10.2.55.80:15090",job="envoy-stats",namespace="default",pod_name="svca-77969dc86b-964p5",reporter="source",request_protocol="grpc",response_code="200",response_flags="-",source_app="svca",source_canonical_revision="latest",source_canonical_service="svca",source_principal="spiffe://cluster.local/ns/default/sa/default",source_version="unknown",source_workload="svca",source_workload_namespace="default"}    

问题

  1. 为什么大多数destination-*标签unknown
  2. 官方的istio 网格仪表板通常按reporter=destination. 为什么我所有的istio_requests_total系列都有reporter=source

标签: istioenvoyproxyspiffe

解决方案


哦,对了,经过大量挖掘,这就是答案

Istio 默认支持代理所有 TCP 流量,但为了提供额外的功能,例如路由和丰富的指标,必须确定协议。这可以自动完成或明确指定

我没有在我的服务资源中指定端口名称。一旦我这样做了,问题就解决了。


推荐阅读