我想将Kubelet日志存储在特定的路径中,以便将日志发送到我的ELK堆栈中。根据Kubernetes参考--log-dir标志从v1.23开始已弃用。此处
如何在我的内部部署Kubernetes中执行此操作。(v1.26)
操作系统= Oracle Linux 8.6
- 更新日期:**
最后我解决了我的问题,通过filebeat输入日志类型。从filebeat 7.16版本添加日志输入类型和filebeat可以直接读取日志。我只是添加下面的配置到filebeat输入部分
filebeat.inputs:
- type: journald
id: service-kubelet
include_matches.match:
- _SYSTEMD_UNIT=kubelet.service
1条答案
按热度按时间v440hwme1#
根据此1.26V Kubernetes Logging Architecture,您可以使用官方文档中提到的以下日志定位过程:
日记帐;例如:日报ctl-u库贝莱。
在其他地方编写,您可以通过helper间接运行kubelet
工具、kube-log-runner,并使用该工具将kubelet日志重定向到
您选择的目录。
容器运行时将日志写入目录
/var/log/pods。有关kube-log-runner的更多信息,请阅读系统日志。
根据1.26V kubernetes deprecations and major changes doc:
一般可用(GA)或稳定的API版本可能会标记为弃用,但不能在Kubernetes的主要版本中删除。
所以,你也可以用下面的方法试试看:
--log - dirs标志允许您指定存储Kubelet日志的目录列表。例如,要将Kubelet日志存储在目录/var/log/kubelet中,可以使用以下命令:
您还应该确保运行Kubelet进程的用户可以写入您指定的目录。