一、介绍
添加仓库incubator(孵化,不稳定的仓库):
[root@master ~]# helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/
EFK:Elasticsearch , Fluentd, Kibana统一日志收集和存储平台
Logstash太重量级了。
在节点收集日志的组件:Logstash,Filebeat,Fluentd,Flume等
ElasticSearch集群建议部署在K8S集群之外,因为如果部署在K8S集群上,K8S集群挂掉了,es集群也就没了。
Fluentd建议以daemonset形式托管在K8S集群之上。
Kibana可以以deployment形式托管在K8S集群之上。
ElasticSearch官方提供了专门为K8S的ElasticSearch集群部署方案,部署逻辑不同于平时的部署。(StatefulSet应用)
Master节点建议至少三个,data节点负责存储日志数据,client。(部署逻辑需要重新了解)
二、部署es集群
内存资源要求较高。
[root@master example]# kubectl create namespace efk [root@master example]# helm fetch incubator/elasticsearch [root@master example]# tar xf elasticsearch-1.10.2.tgz [root@master elasticsearch]# vim values.yaml #修改参数,为了方便,禁用master,data持久存储,生产不能这样。 [root@master elasticsearch]# helm install --name=els1 --namespace=efk -f values.yaml incubator/elasticsearch
由于网络问题,镜像下载不下来,所以半途而废。
三、部署fluentd
[root@master example]# helm search fluentd [root@master example]# helm fetch incubator/fluentd [root@master example]# tar xf fluentd-0.2.1.tgz [root@master fluentd]# vim values.yaml # 只需要修改使用的es集群的地址,其他的配置按照实际情况修改
[root@master fluentd]# helm install --name fluentd1 --namespace=efk -f values.yaml --incubator/fluentd
四、部署Kibana
Kibana的版本号一定要跟elasticsearch版本匹配。
[root@master example]# helm search kibana [root@master example]# helm fetch stable/kibana [root@master example]# tar xf kibana-0.2.2.tgz [root@master kibana]# vim values.yaml # 修改对应的配置,包括es地址等 [root@master kibana]# helm install --name=kibana --namespace=efk -f values.yaml stable/kibana
部署完成后,在kibana的web页面添加索引,就可以查看日志,然后按需配置图表等。
Tips:
经常宿主机被挂起后,重新恢复节点跟pod之间通信就不通了,会出现指标采集,服务无法访问的问题,主要是宿主机的路由表被清空了,具体原因未知,已知解决方法为重新部署网络插件。