iLogtail采用直接与容器运行时(Docker/Containerd)交互的方式获取容器元信息,而非依赖Kubernetes API Server。具体实现方式:
Docker环境:通过Docker Engine API(unix socket)获取容器列表、元信息(Labels、环境变量、挂载点等)和容器rootfs路径。
Containerd环境:通过Containerd的CRI接口或直接调用Containerd API获取容器信息。
这样设计的优势:
- 实时性高:容器创建/销毁事件通过运行时的event stream实时获取,无需轮询API Server。
- 减少API Server负载:在大规模集群中,避免大量节点频繁查询API Server造成压力。
- 精准获取rootfs路径:直接从运行时获取容器在宿主机上的实际文件系统路径,准确定位日志文件位置。
- 低延迟:本地socket通信延迟远低于网络请求API Server。
通过这种方式,iLogtail能快速发现新容器并开始采集,同时准确关联容器的Kubernetes元信息(Pod名、Namespace等)。




