2.10.5.2. 기존 Jaeger 인스턴스에 연결
SMCP가 기존 Jaeger 인스턴스에 연결하려면 다음이 true여야 합니다.
-
Jaeger 인스턴스는 컨트롤 플레인과 동일한 네임스페이스에 배포됩니다(예:
istio-system
네임스페이스). - 서비스 간에 보안 통신을 활성화하려면, Jaeger 인스턴스에 대한 통신을 보호하는 oauth-proxy를 활성화하고 Kiali와 통신할 수 있도록 시크릿이 Jaeger 인스턴스에 마운트되었는지 확인해야 합니다.
-
사용자 지정 또는 이미 존재하는 Jaeger 인스턴스를 사용하려면
spec.istio.tracing.enabled
를 “false”로 설정하여 Jaeger 인스턴스 배포를 비활성화합니다. -
spec.istio.global.tracer.zipkin.address
를 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
입니다. Kiali 콘솔을 통해 Jaeger에 액세스할 수 있도록 Kiali에 Jaeger 인스턴스의 대시보드 URL을 제공하십시오. 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