如何定义kubernetes pod的日志保留? 目前似乎日志文件大小不受限制,它使用主机完整资源。
答案 0 :(得分:4)
根据kubernetes.io的Logging Architecture,有一些选项
第一个选项
Kubernetes目前不负责轮换日志,而是负责 部署工具应该设置解决方案来解决这个问题。对于 例如,在Kubernetes集群中,由kube-up.sh脚本部署, 有一个logrotate工具配置为每小时运行一次。你也可以 设置容器运行时以自动旋转应用程序的日志, 例如通过使用Docker的log-opt。在kube-up.sh脚本中,后者 方法用于GCP上的COS图像,并使用前一种方法 在任何其他环境中。在这两种情况下,默认情况下都是旋转 配置为在日志文件超过10MB时发生。
另外
第二个选项
Sidecar容器还可用于旋转应用程序本身无法旋转的日志文件。这种方法的An example是一个定期运行logrotate的小容器。但是,建议直接使用stdout和stderr,并将轮换和保留策略保留给kubelet。
答案 1 :(得分:0)
您始终可以在Docker节点上设置日志记录保留策略
参见:https://docs.docker.com/config/containers/logging/json-file/#examples
通过更改/ etc / default / docker中的ExecStart行并添加行--log-opt max-size=10m
请注意,这将影响节点上运行的所有容器,这使其非常适合Kubernetes设置(因为我的实时日志已上传到外部ELK堆栈)