kubernetes集群在生产环境中怎么处理服务的log


使用kubectl命令是可以查看pod的log的,但是那种log是直接打到输出的,很不方便在生产环境查看。我知道容器针对标准输出和标准错误的log都是落盘了的,但如果使用kubernetes管理,不可能还需要去每个container查看磁盘上的日志吧?大家实际中是怎么玩的?是使用官方推荐的elasticsearch+kibana吗?
已邀请:

难易 - 华为杭州研究院PaaS开发者

赞同来自: ahjdzx1990 mike


是的,日志这一块k8s的支持主要还是在标准输出上。和docker一样。

比较通用的做法是用ELK这套东西来搞。首先在创建pod的时候,就把宿主机的某个目录映射上去,pod写日志到这个目录下。

然后在宿主机上运行一个单独的搜集日志的进程(logstash,fluentd),对这个目录树下的日志做统一收集,发送到远程的日志服务器上去。

朱功文 - 爱尔兰

赞同来自:


这个我也遇到过。。。但是没搞定

tuxknight

赞同来自:


没搞过kubernetes,但是docker daemon --log-driver可以修改日志输出,比如输出给syslog 这样的日志收集工具。syslog可以通过TCP协议将日志发给logstash,再结合elasticsearch+kibana就是一套日志收集系统了。

刚看了下文档,kubernetes支持用Fluentd来收集日志,可以替代logstash。。所以就按官方的做就好了啊。
把日志收集起来存在搜素引擎里,总比手动到机器上去看日志方便吧。

要回复问题请先登录注册