В соединении EKS отказано при попытке поговорить с демонсетом агента Jaeger

Недавно я развернул jaeger agent в качестве демона на моем кластере 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

Все узлы могут получить доступ друг к другу, поскольку группа безопасности не блокирует порты между ними, при использовании дополнительного агента интервалы отправляются без проблем.

Репликация:

Разверните агент, используя:

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

person Maor Goldberg    schedule 29.11.2020    source источник


Ответы (1)


Похоже, ваш DaemonSet пропускает свойство hostNetwork, чтобы иметь возможность прослушивать IP-адрес узла. Дополнительную информацию можно найти в этой статье: https://medium.com/@masroor.hasan/tracing-infrastructure-with-jaeger-on-kubernetes-6800132a677

person Shai Katz    schedule 29.11.2020
comment
Спасибо. Я видел это решение в нескольких сообщениях в блогах, но хотел узнать, есть ли другое решение. Спасибо еще раз! - person Maor Goldberg; 01.12.2020