Как указать внешний сборщик zipkin в istio? - PullRequest
0 голосов
/ 11 февраля 2020

Я хочу использовать трассировку стекового драйвера в качестве серверной части для распределенной трассировки в istio. Я установил Docker на виртуальную машину GCP и запустил образ zipkin-gcp.

docker run -d -p 9411:9411 -e STORAGE_TYPE=stackdriver -e STACKDRIVER_PROJECT_ID=my-project openzipkin/zipkin-gcp

Затем, согласно официальной документации, я настроил istio для отправки промежутков на эту ВМ.

istioctl manifest apply --set values.tracing.enabled=true --set values.tracing.provider=zipkin --set values.global.tracer.zipkin.address=10.128.0.30:9411 --set values.pilot.traceSampling=100.0

Однако в трассировке стекового драйвера трассировка не отображалась.

Чтобы изолировать проблему, я остановил zipkin-gcp и проверил, отправляются ли пакеты с помощью tcpdump.

tcpdump -i eth0 dst port 9411

В результате выяснилось, что ничего не было отправлено. Я подтвердил подключение порта 9411 от кластера kubernetes к виртуальной машине.

Как отправить трассировку на внешний zipkin-сервер с помощью istio?

1 Ответ

0 голосов
/ 13 февраля 2020

Я наконец выяснил, что может быть причиной этой проблемы:

Вариант установки:

--set values.tracing.provider=zipkin --set values.global.tracer.zipkin.address

требует <zipkin-collector-service>.<zipkin-collector-namespace>:9411 согласно istio документация. Пока у вас есть только IP-адрес и порт внешнего сервера.

Скорее всего, это означает, что для установки требуется существующее имя, которое находится в реестре istio service me sh.

Так что, если ваш сборщик zipkin находится вне кластера, нам нужно добавить ServiceEntry, VirtualService и, возможно, DestinationRule, и поэтому во мне может использоваться внешняя служба sh.

Вы можете следовать документации istio , чтобы увидеть, как создавать эти объекты для внешней службы. Здесь - другое руководство.

После этого Нам нужно обновить значение адреса трассировщика, указав VirtualService в качестве конечной точки.

--set values.global.tracer.zipkin.address=zipkin-external-virtualservice.egress-zipkin-namespace:9411

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

...