Я использую боковую панель 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 год также не помог в запуске контейнера.
Любая помощь по этому вопросу будет принята с благодарностью.