2.10.5.2. 既存の Jaeger インスタンスへの接続
SMCP が既存の Jaeger インスタンスに接続できるようにするには、以下が true である必要があります。
-
Jaeger インスタンスは、コントロールプレーンと同じ namespace にデプロイされます (例:
istio-system
namespace)。 - サービス間でのセキュアな通信を有効にするには、Jaeger インスタンスとの通信のセキュリティーを保護する oauth-proxy を有効にし、シークレットが Jaeger インスタンスにマウントされ、Kiali がこれと通信できるようにする必要があります。
-
カスタムまたは既存の Jaeger インスタンスを使用するには、
spec.istio.tracing.enabled
を false に設定し、Jaeger インスタンスのデプロイメントを無効にします。 -
spec.istio.global.tracer.zipkin.address を jaeger-collector
を jaeger-collector サービスのホスト名およびポートに設定して、正しい jaeger-collector エンドポイントを Mixer に指定します。通常、サービスのホスト名は<jaeger-instance-name>-collector.<namespace>.svc.cluster.local
です。 -
spec.istio.kiali.jaegerInClusterURL
を jaeger-query サービスのホスト名に設定し、トレースを収集するために正しい jaeger-query エンドポイントを Kiali に指定します。ポートは、デフォルトで 443 を使用するため、通常は不要です。通常、サービスのホスト名は<jaeger-instance-name>-query.<namespace>.svc.cluster.local
です。 Jaeger インスタンスのダッシュボード URL を Kiali に指定し、Kiali コンソールから Jaeger にアクセスできるようにします。Jaeger Operator によって作成される OpenShift ルートから URL を取得できます。Jaeger リソースが
external-jaeger
で、istio-system
プロジェクトにある場合は、以下のコマンドを使用してルートを取得できます。$ oc get route -n istio-system external-jaeger
出力例
NAME HOST/PORT PATH SERVICES [...] external-jaeger external-jaeger-istio-system.apps.test external-jaeger-query [...]
HOST/PORT
の値は、Jaeger ダッシュボードの外部アクセス可能な URL です。
例: Jaeger リソース
apiVersion: jaegertracing.io/v1 kind: "Jaeger" metadata: name: "external-jaeger" # Deploy to the Control Plane Namespace namespace: istio-system spec: # Set Up Authentication ingress: enabled: true security: oauth-proxy openshift: # This limits user access to the Jaeger instance to users who have access # to the control plane namespace. Make sure to set the correct namespace here sar: '{"namespace": "istio-system", "resource": "pods", "verb": "get"}' htpasswdFile: /etc/proxy/htpasswd/auth volumeMounts: - name: secret-htpasswd mountPath: /etc/proxy/htpasswd volumes: - name: secret-htpasswd secret: secretName: htpasswd
以下の ServiceMeshControlPlane
の例では、Jaeger Operator および Jaeger リソースのサンプルを使用して Jaeger をデプロイしていることを前提としています。
外部 Jaeger を使用した ServiceMeshControlPlane
の例
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane metadata: name: external-jaeger namespace: istio-system spec: version: v1.1 istio: tracing: # Disable Jaeger deployment by service mesh operator enabled: false global: tracer: zipkin: # Set Endpoint for Trace Collection address: external-jaeger-collector.istio-system.svc.cluster.local:9411 kiali: # Set Jaeger dashboard URL dashboard: jaegerURL: https://external-jaeger-istio-system.apps.test # Set Endpoint for Trace Querying jaegerInClusterURL: external-jaeger-query.istio-system.svc.cluster.local