有一个容器可以将日志输出到stdout/stderr,但我无法访问主机,因此无法使用节点日志收集器来收集并发送到中央日志系统(这里是ElasticSearch),是否有一种方法可以使用sidecar容器来完成这样的操作?
有一个容器可以将日志输出到stdout/stderr,但我无法访问主机,因此无法使用节点日志收集器来收集并发送到中央日志系统(这里是ElasticSearch),是否有一种方法可以使用sidecar容器来完成这样的操作?
apiVersion: apps/v1
kind: Deployment
metadata:
name: fluentbit-logging-sidecar
spec:
selector:
matchLabels:
app: fluentbit-logging-sidecar
replicas: 1
template:
metadata:
labels:
app: fluentbit-logging-sidecar
volumes:
- name: shared-data
emptyDir: {}
- name: config-volume
configMap:
name: fb-agent-config
containers:
- name: sample-logging
image: <image>
volumeMounts:
- name: shared-data
mountPath: /app/logs
- name: fb-sidecar
image: fluent/fluent-bit
volumeMounts:
- name: shared-data
mountPath: /app/logs
- name: config-volume
mountPath: /fluent-bit/etc/fluent-bit.conf
subPath: fluent-bit.conf
/app/logs
。由于应用程序容器和fluentbit容器共享该路径,使用volumeMounts
fluentbit sidecar将能够从该路径读取日志并将其流式传输到Elasticsearch。您需要在fluent-bit.conf
文件中配置elastic search的详细信息。