K8s环境下用containerd作CRI,如何配置日志转发至journald
配置containerd将容器日志转发至journald(Kubernetes环境)
1. 备份现有配置文件
先备份containerd的配置文件,防止修改出错:
cp /etc/containerd/config.toml /etc/containerd/config.toml.bak
2. 修改containerd配置
编辑/etc/containerd/config.toml文件,调整以下关键配置:
设置CRI日志驱动为journald
找到[plugins."io.containerd.grpc.v1.cri"]配置段,添加或更新其子节点log的配置:
[plugins."io.containerd.grpc.v1.cri".log] driver = "journald" # 可选:按需配置日志轮转参数 max_size = "100Mi" max_file = 5
(推荐)开启runc的systemd cgroup支持
找到[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]段,确保SystemdCgroup设为true:
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] SystemdCgroup = true
这一步能让journald关联容器的cgroup元数据,后续可以通过cgroup相关字段更精准地过滤日志。
3. 重启containerd服务
配置修改完成后,重启containerd使设置生效:
systemctl restart containerd
集群中已运行的Pod不会受影响,新创建的Pod会自动使用journald日志驱动。
4. 验证配置效果
创建一个测试Pod来验证:
apiVersion: v1 kind: Pod metadata: name: test-journald-log spec: containers: - name: test-container image: busybox command: ["sh", "-c", "echo 'Test journald log entry' && sleep 3600"]
应用Pod后,用journalctl查询容器日志:
journalctl CONTAINER_NAME=test-container
如果能看到输出的测试日志,说明配置生效。也可以通过containerd config dump确认配置已加载:
containerd config dump | grep -A5 -B5 "journald"
内容的提问来源于stack exchange,提问作者karlos
相关产品推荐
相关产品推荐

