【发布时间】:2020-03-31 21:45:30
【问题描述】:
我正在尝试创建一个守护程序集,它将从特定命名空间的节点中的所有 pod 收集日志。我不确定如何指定命名空间名称。
我有一个命名空间日志记录,我在其中部署守护程序集。我创建了一个如下的 serviceccount
apiVersion: v1
kind: ServiceAccount
metadata:
name: fluent-bit
namespace: logging
我的集群角色是这样的
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: fluent-bit-read
rules:
- apiGroups: [""]
resources:
- namespaces
- pods
verbs: ["get", "list", "watch"]
角色绑定
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: fluent-bit-read
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: fluent-bit-read
subjects:
- kind: ServiceAccount
name: fluent-bit
namespace: logging
现在,守护程序集从路径 /var/log/containers/*.log 收集日志,该路径当前包含来自所有命名空间中运行的容器的日志文件。有没有办法可以限制这个守护进程只从我需要的命名空间收集日志?
【问题讨论】:
-
您的问题和标题无关。 Fluentd/bit 日志收集与 Kubernetes RBAC 完全无关。
-
fluentbit 在 kubernestes 集群中作为守护进程运行,我想将其限制为只读来自某些命名空间的日志
-
@vkr 为什么我的回答没有回答你的问题?您应该使用 Role 而不是 ClusterRole,因为 ClusterRole 是集群范围的,不能命名空间。
标签: kubernetes kubectl fluent-bit