问题描述
在部署istio时,我对global.tracer.zipkin.address
有疑问。我正在使用Jaeger,并在DaemonSet中部署了Jaeger代理。因为我在每个节点上都有Jaeger代理,Jaeger Collector和Jaeger Query,所以我认为global.tracer.zipkin.address应该配置为Jaeger代理主机。但是,代理在每个节点上,并且我很难指定主机。我应该如何指定?提前致谢。
仅供参考)如果我理解正确,Jaeger Client将通过Envoy将数据发送给Jaeger Agent,然后再发送给Jaeger Collector。
解决方法
根据istio文档:
选项2:可自定义的安装
咨询Jaeger documentation以 开始吧。 Jaeger无需进行任何特殊更改即可与 伊斯蒂奥。
一旦安装了Jaeger,您将需要指出Istio代理进行发送 跟踪到部署。可以使用
--set values.global.tracer.zipkin.address=<jaeger-collector-address>:9411
进行配置 在安装时。见ProxyConfig.Tracing
用于TLS设置等高级配置。
Istio文档指出要在global.tracer.zipkin.address
中使用Jaeger收集器地址。
对于Jaeger代理主机,根据Jaeger操作员文档:
默认情况下,操作员假定代理部署为 目标吊舱内的小车。将策略指定为 “ DaemonSet”进行了更改,使操作员将代理部署为 DaemonSet。请注意,您的追踪器客户端可能必须覆盖 “ JAEGER_AGENT_HOST”环境变量以使用节点的IP。
然后最有可能需要告知您的跟踪器客户端代理位于何处。这通常是通过将环境变量
JAEGER_AGENT_HOST
设置为Kubernetes节点的IP值来完成的,例如:apiVersion: apps/v1 kind: Deployment metadata: name: myapp spec: selector: matchLabels: app: myapp template: metadata: labels: app: myapp spec: containers: - name: myapp image: acme/myapp:myversion env: - name: JAEGER_AGENT_HOST valueFrom: fieldRef: fieldPath: status.hostIP