EFK,ELK都是目前最为流行的分布式日志框架,主要实现了日志的收集,存储,分析等,它能够与docker容器进行结合,来收集docker的控制台日志,就是stdout日志.css
默认状况下,每一个节点都有成为主节点的资格,也会存储数据,还会处理客户端的请求。在一个生产集群中咱们能够对这些节点的职责进行划分。node
master节点:普通服务器便可(CPU 内存 消耗通常)
data 节点:主要消耗磁盘,内存
client | ingest 节点:普通服务器便可(若是要进行分组聚合操做的话,建议这个节点内存也分配多一点)docker
为elasticsearch打镜像包,使用docker-elasticsearch-kubernetes-master
里的Dockerfile便可,这在创建k8s的pod时须要用到服务器
docker build -t quay.io/pires/docker-elasticsearch-kubernetes:6.1.1 .
能够依次执行k8s的yaml文件,就能够部署elasticsearch集群到k8s了负载均衡
kubectl create -f es-discovery-svc.yaml kubectl create -f es-svc.yaml kubectl create -f es-master.yaml kubectl rollout status -f es-master.yaml kubectl create -f es-client.yaml kubectl rollout status -f es-client.yaml kubectl create -f es-data.yaml kubectl rollout status -f es-data.yaml
执行成功后,看一下是否启来了框架
curl http://ip:9200 { "name" : "es-client-76fb6ffdf4-nn5b2", "cluster_name" : "myesdb", "cluster_uuid" : "SEjviHIJQ8-SEloYYcez8w", "version" : { "number" : "6.1.1", "build_hash" : "bd92e7f", "build_date" : "2017-12-17T20:23:25.338Z", "build_snapshot" : false, "lucene_version" : "7.1.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
构建镜像Dockerfileless
FROM docker.elastic.co/kibana/kibana:6.4.2 RUN bin/kibana-plugin remove x-pack
生成镜像curl
docker build -t cfontes/kibana-xpack-less:6.4.2 .
部署到k8s里elasticsearch
kubectl create -f kibana.yaml kubectl create -f kibana-svc.yaml
注意:在这里有一个环境变量
SERVER_BASEPATH
,若是没有使用代理,这个值须要设为空,不然你的js,css和其它文件都是404,这块要注意一下;另外CLUSTER_NAME
表示的是elasticsearch集群的名称.分布式
有两个yaml文件,mapconfig为配置文件,另外一个就是deploy文件,咱们先执行配置 ,再运行pod便可
kubectl create -f fluentd-es-configmap.yaml kubectl create -f fluentd-es-ds.yaml