Ошибка «Отказано в доступе» при использовании kubernetes и Logstash - PullRequest
0 голосов
/ 23 октября 2019

Я использую боковую панель Logstash для мониторинга файлов журналов из развертывания. Я намеревался использовать configmap, чтобы передать свой собственный logstash.yml в коляску Logstash. Моя первая реализация была следующей:

  - name: logstash-sidecar
    image: docker.elastic.co/logstash/logstash:7.2.0
    volumeMounts:
      - name: shared-plugins-logstash
        mountPath: /usr/share/logstash/plugins/
      - name: logstash-yaml
        readOnly: true
        mountPath: /usr/share/logstash/config/logstash.yml
        subPath: logstash.yml
      - name: logstash-conf
        mountPath: /usr/share/logstash/pipeline/logstash.conf
        subPath: logstash.conf
      - name: shared-logs
        mountpath: var/logs/logstash

с томами следующим образом

volumes:
  - name: shared-plugins-logstash
    emptyDir: {}
  - name: logstash-yaml
    configMap:
      name: logstash-yaml
  - name: logstash-conf
    configMap:
      name: logstash-conf

Карта конфигурации logstash-yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: logstash-yaml
data:
  logstash.yml: |
    http.host: "0.0.0.0"
    path.config: /usr/share/logstash/pipeline
    log.level: debug
    path.logs: /var/logs/logstash

Это вызвало бы ошибку, говорящуючто / usr / share / logstash / config / является файловой системой только для чтения

Я исследовал проблему и также нашел следующее решение

Ошибка файловой системы развертывания Kubernetes только для чтения

2-е решение этой проблемы создает новую ошибку, в которой говорится, что

отказано в разрешении, невозможно открыть /usr/share/logstash/config/logstash.yml

с настройкой безопасностиконтекст контейнера, поскольку 2000 год также не помог в запуске контейнера.

Любая помощь по этому вопросу будет принята с благодарностью.

...