如何将kubectl日志保存到主机上的文件?

mbh*_*336 5 docker kubernetes kubectl minikube

我可以通过运行'kubectl logs podName'来查看特定Pod的日志。我还看到日志包含一个选项--log-dir标志,但是它似乎不起作用。是否可以更改某种配置,日志将保存到主机上的特定文件中?

小智 13

kubectl logs pod_name > app.log
Run Code Online (Sandbox Code Playgroud)

例如,如果您有一个名为kube podapp-6b8bdd458b-kskjh并且您打算将此 pod 中的日志保存到文件名,app.log那么命令应该是

kubectl logs app-6b8bdd458b-kskjh > app.log
Run Code Online (Sandbox Code Playgroud)

  • 这可能不适用于具有详细日志的长时间运行的进程,尤其是在定期刷新日志的 GKE 上。因此,我建议在 pod 启动后立即启动“kubectl log -f <podname> > pod.log”。 (4认同)

3oc*_*ene 4

注意:这可能不是如何使日志发送到主机的直接答案,但它确实提供了一种将日志发送到计算机的方法。这可能不是最好的答案,但这是我所知道的,所以我分享一下。如果您有更直接的解决方案,请回答。

您可以使用fluidd来完成此操作。是有关如何设置的教程。您可以将其配置为写入已安装主机目录中的文件或写入 S3。它还允许您聚合所有容器中的所有日志,这可能有用也可能没用。结合ElasticSearch 和 Kibana,您可以构建一个非常强大的日志堆栈。当然,这取决于您的用例。