Настройте серверную часть трассировки в качестве Zipkin в Istio.

Я пытаюсь настроить плоскость управления Istio для использования zipkin в качестве серверной части трассировки, но не могу. В своих документах они утверждают, что для этого мне просто нужно передать следующие параметры при установке Istio:

--set values.tracing.enabled=true и --set values.tracing.provider=zipkin. Моя проблема в том, что я установил Istio вручную.

Я нашел параметр provider: jaeger в Configmap istio-sidecar-injector и внес изменения, затем убил плоскость управления, чтобы ее можно было повторно развернуть с помощью zipkin, но это не сработало.

Кто-нибудь знает, с какими объектами я должен манипулировать, чтобы получить zipkin?


person suren    schedule 22.01.2020    source источник
comment
Можете ли вы объяснить, как вы установили свой Istio вручную и какую версию? Также я думаю, что можно было бы создать yaml-манифесты для jaeger на основе чистого кластера istio, который был применен с указанными вами параметрами.   -  person Piotr Malec    schedule 23.01.2020
comment
с kubectl create -f istio-demo.yaml. Jaeger по умолчанию устанавливается на Istio, что здорово, но, похоже, есть возможность изменить бэкэнд трассировки на zipkin с помощью приведенной выше команды. Я установил zipkin вручную, но, конечно, он не настроен на отправку чего-либо в плоскость управления, и я действительно не хочу настраивать zipkin для этого.   -  person suren    schedule 23.01.2020


Ответы (1)


Используя следующие команды, я смог сгенерируйте манифесты, используя istioctl с указанными вами параметрами:

$ istioctl manifest generate --set profile=demo --set values.tracing.enabled=true --set values.tracing.provider=zipkin > istio-demo-with-zipkin.yaml
$ istioctl manifest generate --set profile=demo > istio-demo.yaml

Затем сравнил их, чтобы увидеть различия, вызванные этими изменениями параметров.

$ istioctl manifest diff istio-demo.yaml istio-demo-with-zipkin.yaml
Differences of manifests are:


Object ConfigMap:istio-system:istio-sidecar-injector has diffs:

data:
  values:
    tracing:
      provider: jaeger -> zipkin


Object Deployment:istio-system:istio-tracing has diffs:

metadata:
  labels:
    app: jaeger -> zipkin
spec:
  selector:
    matchLabels:
      app: jaeger -> zipkin
  template:
    metadata:
      annotations:
        prometheus.io/port: 14269 ->
        prometheus.io/scrape: true ->
      labels:
        app: jaeger -> zipkin
    spec:
      containers:
        '[?->0]': -> map[env:[map[name:POD_NAMESPACE valueFrom:map[fieldRef:map[apiVersion:v1
          fieldPath:metadata.namespace]]] map[name:QUERY_PORT value:9411] map[name:JAVA_OPTS
          value:-XX:ConcGCThreads=2 -XX:ParallelGCThreads=2 -Djava.util.concurrent.ForkJoinPool.common.parallelism=2
          -Xms700M -Xmx700M -XX:+UseG1GC -server] map[name:STORAGE_METHOD value:mem]
          map[name:ZIPKIN_STORAGE_MEM_MAXSPANS value:500000]] image:docker.io/openzipkin/zipkin:2.14.2
          imagePullPolicy:IfNotPresent livenessProbe:map[initialDelaySeconds:200 tcpSocket:map[port:9411]]
          name:zipkin ports:[map[containerPort:9411]] readinessProbe:map[httpGet:map[path:/health
          port:9411] initialDelaySeconds:200] resources:map[limits:map[cpu:300m memory:900Mi]
          requests:map[cpu:150m memory:900Mi]]]
        '[0->?]': map[env:[map[name:POD_NAMESPACE valueFrom:map[fieldRef:map[apiVersion:v1
          fieldPath:metadata.namespace]]] map[name:BADGER_EPHEMERAL value:false] map[name:SPAN_STORAGE_TYPE
          value:badger] map[name:BADGER_DIRECTORY_VALUE value:/badger/data] map[name:BADGER_DIRECTORY_KEY
          value:/badger/key] map[name:COLLECTOR_ZIPKIN_HTTP_PORT value:9411] map[name:MEMORY_MAX_TRACES
          value:50000] map[name:QUERY_BASE_PATH value:/jaeger]] image:docker.io/jaegertracing/all-in-one:1.14
          imagePullPolicy:IfNotPresent livenessProbe:map[httpGet:map[path:/ port:14269]]
          name:jaeger ports:[map[containerPort:9411] map[containerPort:16686] map[containerPort:14250]
          map[containerPort:14267] map[containerPort:14268] map[containerPort:14269]
          map[containerPort:5775 protocol:UDP] map[containerPort:6831 protocol:UDP]
          map[containerPort:6832 protocol:UDP]] readinessProbe:map[httpGet:map[path:/
          port:14269]] resources:map[requests:map[cpu:10m]] volumeMounts:[map[mountPath:/badger
          name:data]]] ->
      volumes: '[map[emptyDir:map[] name:data]] ->'


Object Service:istio-system:jaeger-agent is missing in B:



Object Service:istio-system:jaeger-collector is missing in B:



Object Service:istio-system:jaeger-query is missing in B:



Object Service:istio-system:tracing has diffs:

metadata:
  labels:
    app: jaeger -> zipkin
spec:
  ports:
    '[0]':
      targetPort: 16686 -> 9411
  selector:
    app: jaeger -> zipkin


Object Service:istio-system:zipkin has diffs:

metadata:
  labels:
    app: jaeger -> zipkin
spec:
  selector:
    app: jaeger -> zipkin

Вы можете попытаться вручную изменить эти примененные настройки или применить их к своему кластеру.

Istioctl я использовал для создания этих манифестов:

$ istioctl version
client version: 1.4.3
control plane version: 1.4.3
data plane version: 1.4.3 (4 proxies)

Надеюсь, поможет.

person Piotr Malec    schedule 23.01.2020