仍然有客户在使用Kubernetes,并讨论为什么日志守护程序集需要用户0。
到目前为止,有没有采用的方法来做我们在nix时代做的事情,将日志代理添加到一个可以访问磁盘上Kubelet日志的管理员组中?
在过去的几年里,这个问题有没有被记录和解决?这会让很多人的生活变得更轻松!
甚至有一个记录的安全配置文件,向k8s管理员、开发人员和合规部门解释,为什么有这么多工具试图“以root身份运行”。这肯定会帮助ISVs!
具体来说,关于节点级别的日志架构:
$x_{1e0f1}x$
仍然有客户在使用Kubernetes,并讨论为什么日志守护程序集需要用户0。
到目前为止,有没有采用的方法来做我们在nix时代做的事情,将日志代理添加到一个可以访问磁盘上Kubelet日志的管理员组中?
在过去的几年里,这个问题有没有被记录和解决?这会让很多人的生活变得更轻松!
甚至有一个记录的安全配置文件,向k8s管理员、开发人员和合规部门解释,为什么有这么多工具试图“以root身份运行”。这肯定会帮助ISVs!
具体来说,关于节点级别的日志架构:
$x_{1e0f1}x$
4条答案
按热度按时间vd8tlhqk1#
这个问题目前正在等待分类。
如果SIG或子项目确定这是一个相关的问题,他们将通过应用
triage/accepted
标签并提供进一步的指导来接受它。组织成员可以通过在评论中写入
/triage accepted
来添加triage/accepted
标签。有关使用PR评论与我互动的说明,请查看here。如果您对我的行为有任何问题或建议,请针对kubernetes/test-infra仓库提出一个问题。
nxowjjhe2#
相关问题。
cbwuti443#
仍然有客户采用Kubernetes,并讨论为什么日志守护程序集需要用户0。
到目前为止,有没有采用的方法可以实现我们在nix时代所做的事,将日志代理添加到一个可以访问磁盘上的Kubelet日志的管理员组中 -
/var/log/pods
在过去的几年里,这个问题有没有被记录和解决?这会让很多人的生活变得更轻松!
甚至有一个记录的安全配置文件,可以向k8s管理员、开发人员和合规部门解释,为什么有这么多工具试图“以root身份运行”。这肯定会对ISVs也有帮助!
具体来说,我们谈论的是节点级别的日志架构:https://kubernetes.io/docs/concepts/cluster-administration/logging/
当前,/var/logs/pods下的原始日志(.log)是由容器运行时生成的,而不是kubelet。kubelet无能为力。归档日志(.gz)是由kubelet生成的,但被认为是安全问题,全世界都可以看到。你指的是哪种日志?
pes8fvy94#
我指的是
/var/log/pods
。我个人并不关心世界可读的存档。大多数日志供应商代理只读取实时原始日志,是的,我理解容器引擎会生成它们,但是为了 kubelet 服务。Kubelet 已经暴露了容器引擎设置,如旋转大小(在生产环境中运行的 k8s 运行的默认超级低)。
我们唯一的问题是它们被作为 root 所有,因此我们不得不处理特权安全上下文和以用户 0 运行。
kubelet 和容器引擎之间的一些设置应该将其设置为一些可接受的管理组,如 root:adm - 只是使用 adm 作为管理员组的一个示例 - 这样我们的日志供应商和 k8s 管理员就不需要每次新用户采用 k8s 并运行日志守护程序集时都经历安全摩擦。
这比我现在看到的 hacky 方式要好得多。日志供应商不应该不得不越过这些权限,或者承担解释为什么 k8s 和他们选择的容器引擎是这样以及解决这个问题的责任。
否则,这至少应该在日志架构文档中有所涵盖。也许可以提供一个锁定的安全配置文件,让每个人都可以从那里跳转到只允许对主机路径进行只读访问。
过去在容器引擎级别已经讨论过这个问题 - 例如 -
containerd/cri#613
containerd/containerd#8920
希望看到一些 k8s 领导对此发表意见。