Warm tip: This article is reproduced from serverfault.com, please click

docker-尝试与Jaeger代理daemonset对话时,EKS连接被拒绝

(docker - EKS connection refused when trying to talk to Jaeger agent daemonset)

发布于 2020-11-29 10:26:15

我最近将jaeger代理作为守护程序与收集器一起部署在我的k8s集群上。尝试使用以下方式将跨度发送到代理时:

- name: JAEGER_AGENT_HOST
  valueFrom:
    fieldRef:
      fieldPath: status.hostIP

查看应用程序日志时,我看到:

failed to flush Jaeger spans to server: write udp <Pod-Ip>:42531-><Node-Ip>:6831: write: connection refused

由于安全组不会阻塞它们之间的端口,因此所有节点都可以相互访问,使用Sidecar代理时,跨度将毫无问题地发送。

复制:

使用以下方式部署代理:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: jaeger-agent
  labels:
    app: jaeger
    app.kubernetes.io/name: jaeger
    app.kubernetes.io/component: agent
  namespace: observability
spec:
  selector:
    matchLabels:
      app: jaeger
      app.kubernetes.io/name: jaeger
      app.kubernetes.io/component: agent
  template:
    metadata:
      labels:
        app: jaeger
        app.kubernetes.io/name: jaeger
        app.kubernetes.io/component: agent
    spec:
      containers:
      - name: jaeger-agent
        image: jaegertracing/jaeger-agent:1.18.0
        args: ["--reporter.grpc.host-port=<collector-name>:14250"]
        ports:
          - containerPort: 5775
            protocol: UDP
          - containerPort: 6831
            protocol: UDP
          - containerPort: 6832
            protocol: UDP
          - containerPort: 5778
            protocol: TCP

然后部署hotrod应用程序:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hotrod
  labels:
    app: hotrod
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hotrod
  template:
    metadata:
      labels:
        app: hotrod
    spec:
      containers:
      - name: hotrod
        image: jaegertracing/example-hotrod:latest
        imagePullPolicy: Always
        env:
          - name: JAEGER_AGENT_HOST
            valueFrom:
              fieldRef:
                fieldPath: status.hostIP
        ports:
          - containerPort: 8080
Questioner
Maor Goldberg
Viewed
11
Shai Katz 2020-11-29 18:48:21

看起来你的DaemonSet缺少该hostNetwork属性,以便能够在节点IP上侦听。你可以查看该文章以获取更多信息:https : //medium.com/@masroor.hasan/tracing-infrastructure-with-jaeger-on-kubernetes-6800132a677