【问题标题】:Fluentd container not running on OpenshiftFluentd 容器未在 Openshift 上运行
【发布时间】:2018-04-03 06:52:01
【问题描述】:

我正在尝试在 Openshift 上运行 fluentd 映像。我正在使用来自 Docker Hub 的 Fluentd 的官方图像。

但是,我收到以下错误 -

adduser: permission denied (are you root?)
chown: unknown user fluent
chown: unknown user fluent
su-exec: setgroups(0): Operation not permitted

我认为这是因为 Fluentd 容器想要以 root 身份运行,而 Openshift 不允许想要以 root 身份运行的容器。

有人知道我该如何解决这个问题吗?以非 root 用户身份运行 Fluentd 容器?提前感谢您的帮助。

repo 的 URL 是 - https://hub.docker.com/r/fluent/fluentd/

【问题讨论】:

  • fluentd 镜像的 Git 存储库和 Dockerfile 的 URL 是什么?大多数情况下,图像可以设置为以任意用户身份运行,但很多时候他们希望以 root 身份运行,即使它们不需要以 root 身份运行。在不必要时要求它们以 root 身份运行通常被认为是一种不好的做法。
  • 我已经添加了网址。回购的所有者是 Fluent 本身。你能看看它并建议是否有任何解决方法。我认为该过程维护了 root 访问权限,以便为所需插件安装 gem。
  • 看看他们在入口点脚本中做了什么,没有简单的解决方法。在图像中设置应用程序的整个方式都需要重做。并不是说它会提供一个直接的解决方案,有关创建可移植的镜像并与安全的容器部署环境(如 OpenShift 和 Kubernetes 与 RBAC)一起工作的指南,可以在docs.openshift.org/latest/creating_images/guidelines.html 找到
  • 哦。好的,谢谢你的信息。我会查看您提供的链接。谢谢你的信息

标签: docker openshift dockerfile fluentd


【解决方案1】:

我们在项目中遇到了同样的问题。我们解决了这个基于 fluentd-onbuild 镜像构建自定义 fluentd 容器的问题,该镜像旨在自定义基础 fluentd 容器。 Dockerfile 位于此处:

https://github.com/Gepardec/Hogarama/blob/master/Fluentd/Dockerfile

该项目还包含 openshift 模板,其中可能包含一些 sn-ps,您可以使用它来适应您的需求:

https://github.com/Gepardec/Hogarama/tree/master/Templates

【讨论】:

  • 嘿,我刚刚尝试使用您的 Dockerfile。当图像运行时,我收到以下错误 - "config error file="/fluentd/etc/fluent.conf" error_class=Fluent::ConfigError error="out_file: /fluentd/log/docker.20180423.log is not writable"
  • 知道如何解决这个问题吗?感谢您的帮助顺便说一句
  • 我认为这可能是因为日志目录不可写。我们将 logdir 配置为 volumeMount,使用 volumeClaim: persistentVolumeClaim: claimName: fluentd and volumeMounts: - name: fluentd-log-volume mountPath: / 如果不想在容器停止后保留日志,可以使用 emtpyDir 对其进行初始化。由于 cmets 中的缩进不是很好,您可以在此处查看示例:github.com/Gepardec/Hogarama/blob/master/Templates/dc/…
  • 好的,太棒了!很有效,非常感谢您的帮助
  • 这两个链接现在都是404,是否可以将它们的内容添加到这个答案中?
猜你喜欢
  • 1970-01-01
  • 2018-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-27
  • 1970-01-01
  • 1970-01-01
  • 2018-07-29
相关资源
最近更新 更多