kubernetes集群在生产环境中怎么处理服务的log
使用kubectl命令是可以查看pod的log的,但是那种log是直接打到输出的,很不方便在生产环境查看。我知道容器针对标准输出和标准错误的log都是落盘了的,但如果使用kubernetes管理,不可能还需要去每个container查看磁盘上的日志吧?大家实际中是怎么玩的?是使用官方推荐的elasticsearch+kibana吗?
3 个回复
难易 PaaS开发者
是的,日志这一块k8s的支持主要还是在标准输出上。和docker一样。
比较通用的做法是用ELK这套东西来搞。首先在创建pod的时候,就把宿主机的某个目录映射上去,pod写日志到这个目录下。
然后在宿主机上运行一个单独的搜集日志的进程(logstash,fluentd),对这个目录树下的日志做统一收集,发送到远程的日志服务器上去。
2 2015-09-10 14:12
朱功文 爱尔兰
这个我也遇到过。。。但是没搞定
0 2015-09-10 10:45
tuxknight
没搞过kubernetes,但是docker daemon --log-driver可以修改日志输出,比如输出给syslog 这样的日志收集工具。syslog可以通过TCP协议将日志发给logstash,再结合elasticsearch+kibana就是一套日志收集系统了。
刚看了下文档,kubernetes支持用Fluentd来收集日志,可以替代logstash。。所以就按官方的做就好了啊。
把日志收集起来存在搜素引擎里,总比手动到机器上去看日志方便吧。
网友评论