【发布时间】:2020-06-25 10:10:43
【问题描述】:
场景
基于 EKS 1.14 的 Istio 版本 1.5.0。 启用的组件:
- 基础
- 飞行员
注意 Istio 1.5.0 弃用 Mixer,移至遥测 v2,这发生在 envoy 代理边车内。
我想使用 Istio 来支持一些开箱即用的指标。
这是流程
我的电脑 -> 网关 -> 虚拟服务 A -> 虚拟服务 B
我确定:
- K8s 服务对象有标签
app - 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"}
问题
- 为什么大多数
destination-*标签unknown? -
official istio mesh dashboard 通常按
reporter=destination过滤指标。为什么我所有的istio_requests_total系列都有reporter=source?
【问题讨论】:
-
您确定您的服务 B 的 Sidecar 代理已正确启动吗?我认为这不是因为 1/ 没有带有
reporter=destination的遥测意味着它在收到请求时不报告遥测(它应该)并且 2/ 命名空间和服务名称为“未知”表明它没有被考虑作为网格的一部分。 -
谢谢。我知道我的 sidecar 代理正在服务 B 中工作(它的 pod 运行了代理容器,我可以收集日志,如您所见)。我认为“它不被视为网格的一部分”,但我不确定我哪里出错了。我认为服务 b 是网格的一部分,因为我为它创建了一个虚拟服务。
标签: istio envoyproxy spiffe