Kubernetes:仅将 Fluentd 安装到命名空间
Kubernetes: Install Fluentd to a namespace only
我从 https://github.com/fluent/fluentd-kubernetes-daemonset 获得了 fluentd-kubernetes-daemonset 图表,并将 fluentd 作为 daemonset 部署到 kube-system 命名空间中。它将整个集群日志发送到 elasticsearch。我们将 csc 应用程序部署在 csc 命名空间中。我们不想将 fluentd 安装为 daemonset 来收集整个集群日志,而是希望仅将 fluentd 部署在 csc 命名空间中,并且仅将 csc 日志(csc 命名空间中的日志)发送到 elasticsearch。有办法吗?
您在此处共享的 link 具有 namespace: kube-system
,这就是它在 kube-system 命名空间中创建的原因。所以要使用您的命名空间,请编辑 yaml 文件并在 yaml 文件的所有位置替换 namepsace: csc
并将其应用于 kubernetes。
并且您部署为 daemonsets,因此它会 运行 每个节点上的 fluentd pod。
这是将日志架构记录到 运行 每个节点上的 DaemonSet 并收集日志的典型解决方案:
Because the logging agent must run on every node, it's common to
implement it as either a DaemonSet replica, a manifest pod, or a
dedicated native process on the node. However the latter two
approaches are deprecated and highly discouraged.
您需要修复 https://github.com/fluent/helm-charts/blob/main/charts/fluentd/values.yaml 中的过滤器配置
要从特定命名空间收集日志,您可以在 02_filters.conf:
部分禁止所有其他命名空间
<match kubernetes.var.log.containers.**_kube-system_**>
@type null
@id ignore_kube_system_logs
</match>
......
<match kubernetes.var.log.containers.**NAMESPACE**>
@type null
@id ignore_NAMESPACE_logs
</match>
我这样做了,看起来没问题
我从 https://github.com/fluent/fluentd-kubernetes-daemonset 获得了 fluentd-kubernetes-daemonset 图表,并将 fluentd 作为 daemonset 部署到 kube-system 命名空间中。它将整个集群日志发送到 elasticsearch。我们将 csc 应用程序部署在 csc 命名空间中。我们不想将 fluentd 安装为 daemonset 来收集整个集群日志,而是希望仅将 fluentd 部署在 csc 命名空间中,并且仅将 csc 日志(csc 命名空间中的日志)发送到 elasticsearch。有办法吗?
您在此处共享的 link 具有 namespace: kube-system
,这就是它在 kube-system 命名空间中创建的原因。所以要使用您的命名空间,请编辑 yaml 文件并在 yaml 文件的所有位置替换 namepsace: csc
并将其应用于 kubernetes。
并且您部署为 daemonsets,因此它会 运行 每个节点上的 fluentd pod。
这是将日志架构记录到 运行 每个节点上的 DaemonSet 并收集日志的典型解决方案:
Because the logging agent must run on every node, it's common to implement it as either a DaemonSet replica, a manifest pod, or a dedicated native process on the node. However the latter two approaches are deprecated and highly discouraged.
您需要修复 https://github.com/fluent/helm-charts/blob/main/charts/fluentd/values.yaml 中的过滤器配置 要从特定命名空间收集日志,您可以在 02_filters.conf:
部分禁止所有其他命名空间 <match kubernetes.var.log.containers.**_kube-system_**>
@type null
@id ignore_kube_system_logs
</match>
......
<match kubernetes.var.log.containers.**NAMESPACE**>
@type null
@id ignore_NAMESPACE_logs
</match>
我这样做了,看起来没问题