Istio zipkin address configuration problem when using Jaeger Agent as Daemonset

759 views Asked by At

I have question regarding global.tracer.zipkin.address while deploying istio. I am using Jaeger, and have Jaeger Agents deployed in DaemonSet. As I have each Jaeger Agents (on each nodes), Jaeger Collector, and Jaeger Query, I believe global.tracer.zipkin.address should be configured as Jaeger Agent host. However, Agents are on each nodes, and I have hard time specifying the host. How should I specify it? Thanks in advance. FYI) If I understood correctly, Jaeger Client will send the data to the Jaeger Agent via Envoy, and then to Jaeger Collector.

1

There are 1 answers

0
Piotr Malec On

According to istio documentation:

Option 2: Customizable install

Consult the Jaeger documentation to get started. No special changes are needed for Jaeger to work with Istio.

Once Jaeger is installed, you will need to point Istio proxies to send traces to the deployment. This can be configured with --set values.global.tracer.zipkin.address=<jaeger-collector-address>:9411 at installation time. See the ProxyConfig.Tracing for advanced configuration such as TLS settings.

Istio documentation states to use jaeger collector address in global.tracer.zipkin.address.


As for the Jaeger agent host, according to Jaeger Operator documentation:

<9> By default, the operator assumes that agents are deployed as sidecars within the target pods. Specifying the strategy as “DaemonSet” changes that and makes the operator deploy the agent as DaemonSet. Note that your tracer client will probably have to override the “JAEGER_AGENT_HOST” environment variable to use the node’s IP.


Your tracer client will then most likely need to be told where the agent is located. This is usually done by setting the environment variable JAEGER_AGENT_HOST to the value of the Kubernetes node’s IP, for example:

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