проблема с буфером файлов в kubernetes - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть развертывание kubernetes для инфраструктуры логирования.Там, где FluentD daemonset собирает журналы с различных узлов, перенаправляет их в агрегатор fluentD, который затем перенаправляет их на упругий поиск.

Я столкнулся с более серьезной проблемой.В моей логгере инфраструктура fluentD работает в 2 режимах.

1) Как у kubernetes DaemonSet

2) Как у обычного kubernetes Развертывание

Теперь проблема в "path / var/ log / fluentd-buffers / * "в DaemonSet создается внутри узла kubernetes, поэтому, даже если POD идет вниз, путь к буферу файлов не будет поврежден.Однако, в случае типа Deployment, путь к файлу находится внутри контейнера, поэтому, если pod отключится / перезапустится, буфер файла будет удален.

Мои запросы:

1) Есть ли их способмы можем смонтировать путь к узлу виртуальной машины kubernetes и указать его в файловом буфере.В этом случае это будет похоже на мой случай 1 (DaemonSet FluentD), и я согласен с этим.

2) [BEST] Или любой способ, которым мы можем подключить сетевое хранилище, как я это сделал для эластичного хранилища в файле yaml..

volumeMounts:
- name: storage
mountPath: "/data"

Ниже приведен набор конфигураций:

// FluentD Daemon Set config. Here I am forwarding logs to fluentD aggregator.
    <match kubernetes.**>
      @type forward
      send_timeout 60s
      recover_wait 10s
      hard_timeout 60s
      <server>
        name worker
        host {{.Values.fluentd.host}}.{{.Release.Namespace}}
        port {{.Values.fluentd.port}}
        weight 60
      </server>
      <buffer>
        @type file
        path /var/log/fluentd-buffers/fluentd.node.buffer // THIS FILE IS GETTING CREATED
      </buffer>
    </match>


// FluentD aggregator config, where I am forwarding logs to elastic search.
    <match kubernetes.var.log.containers.es-master-*.*>
      @type elasticsearch
      logstash_format false
      index_name esmaster
      type_name logs
      host "#{ENV['FLUENT_ELASTICSEARCH_HOST']}"
      port "#{ENV['FLUENT_ELASTICSEARCH_PORT']}"
      <buffer>
        @type file
        path /var/log/fluentd-buffers/fluentd.aggregator.esmaster.buffer // THIS FILE IS NOT GETTING CREATED
      </buffer>
    </match>
...