首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在kubernetes容器中抑制日志?

如何在kubernetes容器中抑制日志?
EN

Server Fault用户
提问于 2019-03-08 12:23:47
回答 2查看 350关注 0票数 0

我在kubernetes集群中设置了一个freeradius容器。默认情况下,freeradius不以纯文本记录身份验证尝试或密码,但是,如果服务是以"-X“arg (调试模式)启动的,它将重写默认配置并将所有内容记录到STDOUT。我尝试在部署文件中不指定arg,但是容器在启动时崩溃。

是否有一种方法可以在容器中运行freeradius,使其不首先创建这些日志,或者配置部署,以便无法访问这些日志?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2019-03-11 14:50:39

好吧,原来实现我的目标有一种完全不同的方式,与我预期的完全不同。通过为/var/run/freeradius和/var/log/freeradius创建EmptyDir卷挂载,使这些目录可以写(不确定为什么/var/run/freeradius在调试模式下不需要写),我就能够让freeradius容器在没有调试模式的情况下启动,然后命令有以下行:

command: ["/bin/bash","-c","freeradius && tail -F /var/log/freeradius/radius.log"]

基本上,这样做的目的是启动freeradius,然后实时地将日志读取到STDOUT,并在将新行写入日志文件时进行更新。

票数 0
EN

Server Fault用户

发布于 2019-03-08 15:54:22

如果您将日志作为荚的子资源,您可以使用RBAC角色来管理它。

若要将此表示为RBAC角色,请使用斜杠分隔资源和子资源。为了让研究对象同时阅读豆荚和荚日志,您可以这样写:

代码语言:javascript
复制
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: default
  name: pod-logs-reader
rules:
- apiGroups: [""]
  resources: ["pods", "pods/log"]
  verbs: ["get", "list"]

因此,要限制对pod日志的访问,只需将"pods/log“包含到资源列表中即可。

另外,请记住,在kubernetes RBAC中,规则是完全可加的,所以您需要列出所有可访问的资源,否则您也无法访问它们。

创建角色时,需要将其链接到RoleBinding中的用户或服务帐户

代码语言:javascript
复制
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: pod-logs-reader-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: pod-logs-reader
subjects:
- kind: User
  name: "john_calder@dude.com"
  apiGroup: rbac.authorization.k8s.io
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/957351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档