![](/img/trans.png)
[英]Jaeger with spring boot is not working when both are deployed at kubernetes
[英]jaeger configuration in spring boot application when both of them are deployed on kubernetes
因此,我正在尝试使用 jaeger 跟踪我的 spring 引导应用程序的日志,那么如果我的应用程序和 jaeger 部署在 kubernetes 上,应该执行哪些步骤。 我已经成功部署了 jaeger 和 spring 启动应用程序,现在我将如何在我的服务中配置 jaeger。 我的服务在 jaegar 控制台中不可见。
我在 yml 中添加了以下配置:
opentracing.jaeger.udp-sender.host=localhost
opentracing.jaeger.udp-sender.port=6831
apiVersion: v1
kind: List
items:
- apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: jaeger
labels:
app: jaeger
app.kubernetes.io/name: jaeger
app.kubernetes.io/component: all-in-one
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: jaeger
app.kubernetes.io/name: jaeger
app.kubernetes.io/component: all-in-one
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "16686"
spec:
containers:
- env:
- name: COLLECTOR_ZIPKIN_HTTP_PORT
value: "9411"
image: jaegertracing/all-in-one
name: jaeger
ports:
- containerPort: 5775
protocol: UDP
- containerPort: 6831
protocol: UDP
- containerPort: 6832
protocol: UDP
- containerPort: 5778
protocol: TCP
- containerPort: 16686
protocol: TCP
- containerPort: 9411
protocol: TCP
readinessProbe:
httpGet:
path: "/"
port: 14269
initialDelaySeconds: 5
- apiVersion: v1
kind: Service
metadata:
name: jaeger-query
labels:
app: jaeger
app.kubernetes.io/name: jaeger
app.kubernetes.io/component: query
spec:
ports:
- name: query-http
port: 80
protocol: TCP
targetPort: 16686
selector:
app.kubernetes.io/name: jaeger
app.kubernetes.io/component: all-in-one
type: LoadBalancer
- apiVersion: v1
kind: Service
metadata:
name: jaeger-collector
labels:
app: jaeger
app.kubernetes.io/name: jaeger
app.kubernetes.io/component: collector
spec:
ports:
- name: jaeger-collector-tchannel
port: 14267
protocol: TCP
targetPort: 14267
- name: jaeger-collector-http
port: 14268
protocol: TCP
targetPort: 14268
- name: jaeger-collector-zipkin
port: 9411
protocol: TCP
targetPort: 9411
selector:
app.kubernetes.io/name: jaeger
app.kubernetes.io/component: all-in-one
type: ClusterIP
- apiVersion: v1
kind: Service
metadata:
name: jaeger-agent
labels:
app: jaeger
app.kubernetes.io/name: jaeger
app.kubernetes.io/component: agent
spec:
ports:
- name: agent-zipkin-thrift
port: 5775
protocol: UDP
targetPort: 5775
- name: agent-compact
port: 6831
protocol: UDP
targetPort: 6831
- name: agent-binary
port: 6832
protocol: UDP
targetPort: 6832
- name: agent-configs
port: 5778
protocol: TCP
targetPort: 5778
clusterIP: None
selector:
app.kubernetes.io/name: jaeger
app.kubernetes.io/component: all-in-one
- apiVersion: v1
kind: Service
metadata:
name: zipkin
labels:
app: jaeger
app.kubernetes.io/name: jaeger
app.kubernetes.io/component: zipkin
spec:
ports:
- name: jaeger-collector-zipkin
port: 9411
protocol: TCP
targetPort: 9411
clusterIP: None
selector:
app.kubernetes.io/name: jaeger
app.kubernetes.io/component: all-in-one
Output og kubectl 获取服务 jaeger-query
Name: jaeger-query
Namespace: default
Labels: app=jaeger
app.kubernetes.io/component=query
app.kubernetes.io/name=jaeger
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"jaeger",
"app.kubernetes.io/component":"query","app.kuber...
Selector: app.kubernetes.io/component=all-in-one,app.kubernetes.io/name=jaeger
Type: LoadBalancer
IP: 10.24.14.223
LoadBalancer Ingress: 35.222.40.241
Port: query-http 80/TCP
TargetPort: 16686/TCP
NodePort: query-http 30290/TCP
Endpoints: 10.20.2.7:16686
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
所以对我有用的解决方案是 - 我在我的 application.properties 应用程序文件中进行了以下更改
opentracing.jaeger.udp-sender.host=http://<load_balancer_ip_of_jaeger_service>:<expose_port>(example ":80")
opentracing.jaeger.http-sender.url=http://<cluster_ip_or_load_balancer_ip_of jaeger_collector>:<expose_port>/api/traces(example of expose port ":1468")
您将opentracing-spring-jaeger-starter
库添加到项目中,该库仅包含提供 OpenTracing 的io.opentracing.Tracer
接口的 Jaeger 实现所需的代码。
由于您将 jaeger 部署在 Kubernetes 并通过负载均衡器服务公开它,您可以使用负载均衡器 IP 和端口从 Z30136395F018797392198317C118 集群外部连接到它。
你应该配置:
opentracing.jaeger.udp-sender.host=jaeger-agent
opentracing.jaeger.udp-sender.port=6831
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.