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 安全上下文。
配置调整¶
- 确认需要保留的采集器及其访问的主机目录、网络和设备,再调整相应权限。关闭一个采集器不代表其他采集器不再需要同一权限。
- 若数据接收改用 Kubernetes Service,同步修改应用的发送地址和端口,并检查网络连通性。
- 通过
nodeSelector或节点亲和性限定部署节点;节点有污点时,按需配置tolerations。 - 修改后检查采集器启动日志和实际上报的数据,确认所需采集功能仍然可用。
GKE Autopilot 使用专用部署配置,参见 GCP GKE Autopilot 部署。