Fluentd Не удается подключиться к кластеру ElasticSearch - PullRequest
0 голосов
/ 31 марта 2020

У меня есть локальный кластер kubernetes, в который я добавил Fluentd Daemonset, используя предварительно настроенное изображение эластичного поиска (fluent / fluentd-kubernetes-daemonset: эластичный поиск). Шаг 2 из этой статьи . У меня также есть кластер elasti c, работающий в облаке. Вы можете передать некоторые переменные env в образ fluentd -asticsearch для конфигурации. Это выглядит довольно просто, но при запуске Fluentd Pod я продолжаю получать ошибку:

"Fluent::ElasticsearchOutput::ConnectionFailure" error="Can not reach Elasticsearch cluster ({:host=>\"fa0acce34bf64db9bc9e46f98743c185.westeurope.azure.elastic-cloud.com\", :port=>9243, :scheme=>\"https\", :user=>\"username\", :password=>\"obfuscated\"})!" plugin_id="out_es"

, когда я пытаюсь достичь кластера elasti c изнутри модуля с # wget https://fa0acce34bf64db9bc9e46f98743c185.westeurope.azure.elastic-cloud.com:9243/ Я получаю 401 несанкционированный (потому что я не отправил сюда пользователя / пароль), но он по крайней мере показывает, что адрес доступен.

Почему не удается подключиться? Я уже установил для FLUENT_ELASTICSEARCH_SSL_VERSION значение 'TLSv1_2', я увидел, что это решило некоторые проблемы для других.

Конфигурация демона:

kind: DaemonSet
metadata:
  name: fluentd
  namespace: kube-logging
  labels:
    app: fluentd
    k8s-app: fluentd-logging
    version: v1
    kubernetes.io/cluster-service: "true"
spec:
  selector:
    matchLabels:
      app: fluentd
  template:
    metadata:
      labels:
        app: fluentd
        k8s-app: fluentd-logging
        version: v1
        kubernetes.io/cluster-service: "true"
    spec:
      serviceAccount: fluentd
      serviceAccountName: fluentd
      tolerations:
        - key: node-role.kubernetes.io/master
          effect: NoSchedule
      containers:
      - name: fluentd
        image: fluent/fluentd-kubernetes-daemonset:elasticsearch
        env:
        - name:  FLUENT_ELASTICSEARCH_HOST
          value: "fa0acce34bf64db9bc9e46f98743c185.westeurope.azure.elastic-cloud.com"
        - name:  FLUENT_ELASTICSEARCH_PORT
          value: "9243"
        - name: FLUENT_ELASTICSEARCH_SCHEME
          value: "https"
        - name: FLUENT_UID
          value: "0"
        - name: FLUENT_ELASTICSEARCH_SSL_VERIFY
          value: "false"
        - name: FLUENT_ELASTICSEARCH_SSL_VERSION
          value: "TLSv1_2"
        - name: FLUENT_ELASTICSEARCH_USER
          value: "<user>"
        - name: FLUENT_ELASTICSEARCH_PASSWORD
          value: "<password>"
        resources:
          limits:
            memory: 100Mi
          requests:
            cpu: 100m
            memory: 100Mi
        volumeMounts:
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers

1 Ответ

1 голос
/ 01 апреля 2020

Для всех, кто сталкивается с этой проблемой:

Я следовал учебному пособию, в котором использовалось изображение 'image: fluent / fluentd-kubernetes-daemonset :asticsearch'. Когда вы проверяете их DockerHub (https://hub.docker.com/r/fluent/fluentd-kubernetes-daemonset), вы видите, что тегу: elaticsearch исполнился год, и, вероятно, он устарел.

Я изменил образ для DaemonSet на более новый и стабильный тег 'fluent / fluentd-kubernetes-daemonset: v1-debian -asticsearch' и бум, он работает сейчас.

...