在非特权Kubernetes pod中使用rsyslog/syslog-ng



我正试图在Kubernetes中的一个非特权容器中使用rsyslog或syslog-ng。现在,我已经设法完成了大部分工作,但这是我唯一使用/dev/log套接字的地方。

rsyslog/syslog-ng在没有特权的情况下无法创建此套接字,这在某种程度上是意料之中的,因为/dev/由root用户所有。

Error binding socket; addr='AF_UNIX(/dev/log)', error='Permission denied (13)

现在,我无法修改/dev/的权限以允许我的用户,因为当创建pod时,我对映像的更改会被覆盖,很可能是因为这些更改是从主机上使用的。

因此,唯一的方法似乎是使用功能使其发挥作用。

其他人有幸在没有任何功能的情况下使用rsyslog或syslog-ng吗?或者有没有任何方法可以在没有任何权限的情况下创建/dev/log套接字?

感谢任何线索。

您可以使/dev/log成为syslog ng具有写入权限的目录的符号链接,类似于以下内容:

source s_local {
unix-dgram("/var/run/syslog-ng/log-socket" ...);
};

这样,您就需要在创建映像时创建/dev/log符号链接。我认为图像在您的控制范围内。

最新更新