日志是否保存在Google Kubernetes上

时间:2018-11-03 17:01:00

标签: docker logging kubernetes google-cloud-platform

我正在运行一个包含三个容器的部署,分别是应用程序,nginx和云sql实例。我的基于python的应用程序中有很多打印语句。

每次用户与该应用进行交互时,都会输出输出。我想知道这些日志是否默认保存在任何位置。

我担心这些日志可能会占用运行它的集群中节点上的空间。这会发生吗?或Kubernetes部署默认情况下不保存任何日志?

1 个答案:

答案 0 :(得分:1)

应用程序通常在Docker下的容器中运行,并且stdout / stderr日志在该容器的生命周期内保存在图形目录(通常为/var/lib/docker)中

您可以使用以下任意一种查看日志:

$ kubectl logs <pod-name> -c <container-in-pod>

或者:

$ ssh <node>
$ docker logs <container>

如果您想进一步了解它们的存储位置,可以进入/var/lib/docker目录并查看以JSON格式存储的日志:

$ cd /var/lib/docker/containers
$ find . | grep json.log
./3454a0681100986248fd81856fadfe7cd95a1a6467eba32adb33da74c2c5443d/3454a0681100986248fd81856fadfe7cd95a1a6467eba32adb33da74c2c5443d-json.log
./80a87a9529a55f8d3fb9b814f0158dc91686704222e252b256455bcde48f56a5/80a87a9529a55f8d3fb9b814f0158dc91686704222e252b256455bcde48f56a5-json.log
...

如果您想在“已退出”的容器上进行垃圾收集,则可以详细了解here

另一种方法是设置一个在您的节点上定期运行的cron作业,这样做:

$ docker system prune -a --force