由于权限问题,Fluentd 无法访问 /var/lib/docker/containers 下的日志
Fluentd not able to access the logs present under /var/lib/docker/containers due to permission issue
我正在尝试通过 fluentd 读取容器日志并将其传递给弹性搜索。我已将主机中的目录安装到包含所有符号链接和实际文件的流利容器中。
但是当我看到 fluentd container logs 时,它说 /var/log/pods/
下的那些日志不可读。然后我手动导航到存在日志的流利容器下的路径,但不幸的是我遇到了权限被拒绝的问题。
我一直走到 /var/lib/docker/containers
,然后权限是 0700 并且所有者是 root。即使我试图通过设置
运行 我的 fluentd 容器
- name: FLUENT_UID
value: "0"
但是还是无法读取。
volumes:
- name: varlog
hostPath:
path: /var/log/
- name: varlibdockercontainers
hostPath:
path: /var/lib/docker/containers
.......
volumeMounts:
- name: varlog
mountPath: /var/log/
- name: varlibdockercontainers
mountPath: /var/lib/docker/containers
你应该看看 security contexts。除其他事项外,它们允许您指定 运行 容器中的用户 runAsUser
,该用户的主要组 runAsGroup
,以及卷所有者 fsGroup
.
我正在尝试通过 fluentd 读取容器日志并将其传递给弹性搜索。我已将主机中的目录安装到包含所有符号链接和实际文件的流利容器中。
但是当我看到 fluentd container logs 时,它说 /var/log/pods/
下的那些日志不可读。然后我手动导航到存在日志的流利容器下的路径,但不幸的是我遇到了权限被拒绝的问题。
我一直走到 /var/lib/docker/containers
,然后权限是 0700 并且所有者是 root。即使我试图通过设置
运行 我的 fluentd 容器
- name: FLUENT_UID
value: "0"
但是还是无法读取。
volumes:
- name: varlog
hostPath:
path: /var/log/
- name: varlibdockercontainers
hostPath:
path: /var/lib/docker/containers
.......
volumeMounts:
- name: varlog
mountPath: /var/log/
- name: varlibdockercontainers
mountPath: /var/lib/docker/containers
你应该看看 security contexts。除其他事项外,它们允许您指定 运行 容器中的用户 runAsUser
,该用户的主要组 runAsGroup
,以及卷所有者 fsGroup
.