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