Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理。这是一个 Elasticsearch、Fluentd 和 Kibana 的组合。Elasticsearch 是一个搜索引擎,负责存储日志并提供查询接口;Fluentd 负责从 Kubernetes 搜集日志并发送给 Elasticsearch;Kibana 提供了一个 Web GUI,用户可以浏览和搜索存储在 Elasticsearch 中的日志。
部署
Elasticsearch 附加组件本身会作为 Kubernetes 的应用在集群里运行,其 YAML 配置文件可从
https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch
获取。
可将这些 YAML 文件下载到本地目录,比如
addons
,通过
kubectl apply -f addons/
部署。
这里有一点需要注意:后面我们会通过 NodePort 访问 Kibana,需要注释掉
kibana-deployment.yaml
中的环境变量
SERVER_BASEPATH
,否则无法访问。
所有的资源都部署在
kube-system
Namespace 里。
DaemonSet
fluentd-es
从每个节点收集日志,然后发送给 Elasticsearch。
Elasticsearch 以 StatefulSet 资源运行,并通过 Service
elasticsearch-logging
对外提供接口。这里已经将 Service 的类型通过
kubectl edit
修改为 NodePort。
可通过
http://192.168.56.106:32607/
验证 Elasticsearch 已正常工作。
Kibana 以 Deployment 资源运行,用户可通过 Service
kibana-logging