1.概述和组件说明
对于Kubernetes的日志采收集,目前官方现在比较推荐的日志收集解决方案是Elasticsearch、Fluentd和Kibana(EFK)技术栈。
Elasticsearch是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。
Fluentd是一个流行的开源数据收集器,我们将在Kubernetes集群节点上安装Fluentd,通过获取容器日志文件、过滤和转换日志数据,然后将数据传递到Elasticsearch集群,在该集群中对其进行索引和存储。
Kibana是一个功能强大的数据可视化Dashboard,Kibana允许你通过web界面来浏览Elasticsearch日志数据。
2.收集流程
Kubernetes集群的pod日志需要收集分析,这个大家都懂,pod的日志存放在/var/log/containers/这个目录
首先把pod(/var/log/containers/)日志目录挂载到fluentd;
其次fluentd负责把数据推送至eastlastsearch(集群);
最后kibana对eastlastsearch日志进行查看
3.环境说明
iphostname系统版本内核版本集群版本节点属性.16.99.k8s-m1CentOS7.83.10.0-.19.11.18.0master.16.99.k8s-m2CentOS7.83.10.0-.19.11.18.0master.16.99.k8s-m3CentOS7.83.10.0-.19.11.18.0master.16.18.k8s-n1CentOS7.83.10.0-.19.11.18.0node.16.18.k8s-n2CentOS7.83.10.0-.19.11.18.0node.16.18.k8s-n3CentOS7.83.10.0-.19.11.18.0node
4.EFK环境部署
4.1创建专有的命名空间
catEOFkube-logging.yamlkind:NamespaceapiVersion:v1metadata:name:kube-loggingEOF
kubectlcreate-fkube-logging.yaml
4.2创建es集群
4.2.1创建pvc
由于需要对es集群的数据做持久化,所以需要提前创建pvc,本篇章的持久化时基于NFS文件系统提供,通过StorageClass来实现
NFS服务安装部署参考: