Kubernetes日志收集的解决方案是什么

发布时间:2021-12-06 15:00:42 作者:柒染
来源:亿速云 阅读:137

这期内容当中小编将会给大家带来有关Kubernetes日志收集的解决方案是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

在kubernetes集群环境下日志收集组件选型及方案

1、需求来源

在大规模集群部署的场景下,容器实例会部署到多个节点上,节点以及节点上的应用产生的日志会随之分散在各个容器的主机上,传统的集群应用大多在本地持久化,这给整个应用系统的日志监控和故障排除带来了很大的挑战,而在Kubernetes大规模集群环境下,需要考虑把分散在各个节点上的日志统一采集,统一管理,统一展示。

2、日志来源

主机内核产生的错误日志通常可以帮助开发者诊断因为主机或者OS异常而带来的服务异常,比如网络异常,文件系统异常等。

docker的日志帮助用户查看pod内部容器的运行状态、APIServer的日志,Scheduler产生的日志能够帮助用户查看Kubernetes本身运行产生的日志。

通常业务升级或者在某种场景下出现异常,可以通过日志进行排查。

3、日志收集方式

Pod应用的数据存储在宿主机文件系统中,比如我们通过hostpath声明把业务日志存储在某个目录下,通常会在每个节点上以DaemonSet形式部署fluentd或者filebeat,将宿主机的文件系统挂载到fluentd或者filebeat Pod中内进行采集,当然我们也可以采集其它日志(操作系统产生日志,Kubernetes组件产生日志等)如下图所示:

Kubernetes日志收集的解决方案是什么

一种sidecar的日志收集模式,将日志收集容器和应用容器部署在同一个pod中,通过共享volume的形式实现对容器日志的收集,然后输出到节点上,这种收集一般针对日志准确性要求比较高的应用,通过这种方式我们可以定制当前容器内的文件名、pod的ip等。如下图所示:

Kubernetes日志收集的解决方案是什么

Pod应用直接将数据存储在共享文件系统中(NFS、hdfs、ceph、GlusterFS等)。nfs日志存储使用介绍 这种情况下我们可以直接在当前文件系统中查看日志,或者在存储日志所在节点部署日志收集pod,把日志传输到日志系统。如下图所示:

Kubernetes日志收集的解决方案是什么

4、日志收集存储实例

日志存储和查询方面比较建议使用ELK(logstash耗费资源较多,建议换成filebeat或者fluentd进行日志收集传递)成熟解决方案,因为ES原生支持多租户的使用场景,支持通过建立不同的索引方式来区分不同用户,不同业务类型的数据; fluentd在启动后会根据配置文件中的logstash_prefix,在ES中生成指定前缀的索引,在Kibana界面创建显示索引时,可以根据之前日志前缀设定匹配和监控产生日志数据,如下图所示:

Kubernetes日志收集的解决方案是什么

针对大规模的持续增长的应用业务日志,在传统单机业务模式下会存储固定几天的数据,在万物互联的今天,我们不但需要快速实时的监控集群中的日志数据,更需要将这些数据进行持久化存储,方便我们基于这些数据进行数据挖掘、统计、分析建模或者根据用户的行为日志做预测工作,当然这些工作我们可以使用大数据分析解决方案(hadoop+spark)对数据进行具体分析管理。

本次主要介绍了Kubernetes集群模式下三种日志收集模式,结合实际使用场景采用不同的日志收集方案满足具体需求。

上述就是小编为大家分享的Kubernetes日志收集的解决方案是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. filebeat日志收集
  2. kubernetes是什么?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

kubernetes

上一篇:基于Lamda表达式的强类型Routing如何实现

下一篇:如何搭建Farbic-samples环境

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》