跳转至

DataKit 安全说明

DataKit 的部分采集功能需要读取主机文件、访问主机网络或加载 eBPF 程序。所需权限取决于启用的采集器和部署方式。本文说明 Kubernetes 节点部署中的常见权限及调整方法。

权限详解

Pod 级权限

配置 用途与影响
hostPID: true 使用主机的进程命名空间,使容器可以查看主机进程。关闭后,依赖该进程视角的采集功能会受影响。
hostNetwork: true 使用主机的网络命名空间,允许 DataKit 访问主机网络接口并在节点地址上监听端口。关闭后,需按新的网络配置检查数据发送端的目标地址。

容器级权限

配置 用途与影响
securityContext.privileged: true 为容器提供广泛的内核和设备访问权限。普通节点部署模板默认启用,用于 eBPF 等需要相关权限的采集功能。
以 root 用户运行 读取受保护的文件和目录。改用非 root 用户时,需确认采集目录和运行时目录的访问权限。
ports.hostPort 将容器端口映射到节点端口,供应用发送数据。移除后,可通过 Kubernetes Service 提供数据接收入口。
securityContext.readOnlyRootFilesystem: false 允许写入容器根文件系统。设为 true 前,需将缓存、日志等运行时写入路径配置到可写卷。

权限与宿主机目录挂载共同决定容器可访问的资源。关闭某个权限开关后,已有的 hostPath 挂载仍需单独检查。各字段的含义参见 Kubernetes 安全上下文。

配置调整

  1. 确认需要保留的采集器及其访问的主机目录、网络和设备,再调整相应权限。关闭一个采集器不代表其他采集器不再需要同一权限。
  2. 若数据接收改用 Kubernetes Service,同步修改应用的发送地址和端口,并检查网络连通性。
  3. 通过 nodeSelector 或节点亲和性限定部署节点;节点有污点时,按需配置 tolerations。
  4. 修改后检查采集器启动日志和实际上报的数据,确认所需采集功能仍然可用。

GKE Autopilot 使用专用部署配置,参见 GCP GKE Autopilot 部署。

文档评价

文档内容是否对您有帮助?