将Kubelet日志存储在Kubernetes v1.26中的特定路径中

xyhw6mcr  于 2023-03-01  发布在  Kubernetes
关注(0)|答案(1)|浏览(274)

我想将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
v440hwme

v440hwme1#

根据此1.26V Kubernetes Logging Architecture,您可以使用官方文档中提到的以下日志定位过程:

  • 在使用systemd的Linux节点上,缺省情况下,kubelet和容器运行时会写入journald。

日记帐;例如:日报ctl-u库贝莱。

  • 如果systemd不存在,kubelet和容器运行时将写入/var/log目录中的.log文件。

在其他地方编写,您可以通过helper间接运行kubelet
工具、kube-log-runner,并使用该工具将kubelet日志重定向到
您选择的目录。

  • 您还可以使用已弃用的kubelet命令行参数--log-dir来设置日志目录。

容器运行时将日志写入目录
/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 --log-dirs=/var/log/kubelet

您还应该确保运行Kubelet进程的用户可以写入您指定的目录。

相关问题