K8S の既存の jaeger トレース システムで istio を使用したいので、バックエンド ストレージとして cassandra との公式リンクに従って jaeger システムをインストールすることから始めました。次に、ヘルムの方法でistio をインストールしましたが、一部の選択したコンポーネントのみを有効にしました。
helm upgrade istio -i install/kubernetes/helm/istio --namespace istio-system \
--set security.enabled=true \
--set ingress.enabled=false \
--set gateways.istio-ingressgateway.enabled=true \
--set gateways.istio-egressgateway.enabled=false \
--set galley.enabled=false \
--set sidecarInjectorWebhook.enabled=true \
--set mixer.enabled=false \
--set prometheus.enabled=false \
--set global.proxy.envoyStatsd.enabled=false \
--set pilot.sidecar=true \
--set tracing.enabled=false
Jaeger と istio は同じ namespace 内にインストールされますistio-sytem
。すべて完了すると、その中のすべてのポッドは次のようになります。
kubectl -n istio-system get pods
NAME READY STATUS RESTARTS AGE
istio-citadel-5c9544c886-gr4db 1/1 Running 0 46m
istio-ingressgateway-8488676c6b-zq2dz 1/1 Running 0 51m
istio-pilot-987746df9-gwzxw 2/2 Running 1 51m
istio-sidecar-injector-6bd4d9487c-q9zvk 1/1 Running 0 45m
jaeger-collector-5cb88d449f-rrd7b 1/1 Running 0 59m
jaeger-query-5b5948f586-gxtk7 1/1 Running 0 59m
次に、リンクをたどって bookinfo サンプルを別の namespace にデプロイしましたistio-play
が、これには labelistio-injection=enabled
がありますが、どのようにproductpage
ページをフラッシュしても、jaeger に入力されるトレース データはありません。
トレース スパンはミキサーによって jaeger に送信される可能性があると思います。たとえば、istio が他のすべてのテレメント機能を実行するのと同じように-set mixer.enabled=true
、. 最後に、上記のインストールをすべてクリーンアップし、このタスクを段階的に実行しましたが、bookinfo アプリのトレース データはまだありません。istio-mixer
istio-telementry
私の質問は次のとおりです: istio はどのように追跡データを jaeger に送信しますか? サイドカー プロキシは envoyのように直接 jaeger-collector( zipkin.istio-system:9411
)に送信しますか、それともデータ フローは次のようになりますか? また、istio メッシュ内のあらゆる種類のコンポーネント間のデータ フローをデバッグするにはどうすればよいでしょうか?sidecar-proxy -> mixer -> jaeger-collector
ヘルプと情報をありがとう:-)
更新: helm: なしで istio をインストールして再試行しました。kubectl -n istio-system apply -f install/kubernetes/istio-demo.yaml
今回はすべて正常に動作しkubectl way
ますhelm way
。