k8s~部署EFK框架
EFK,ELK都是目前最为流行的分布式日志框架,主要实现了日志的收集,存储,分析等,它可以与docker容器进行结合,来收集docker的控制台日志,就是stdout日志.
elasticsearch.master_data_client说明
默认情况下,每个节点都有成为主节点的资格,也会存储数据,还会处理客户端的请求。在一个生产集群中我们可以对这些节点的职责进行划分。
- 建议集群中设置 3台 以上的节点作为 master 节点node.master: true node.data: false node.ingest:false,这些节点只负责成为主节点,维护整个集群的状态。
- 再根据数据量设置一批 data节点node.master: false node.data: true node.ingest:false,这些节点只负责存储数据,后期提供建立索引和查询索引的服务,这样的话如果用户请求比较频繁,这些节点的压力也会比较大
- 所以在集群中建议再设置一批 ingest 节点也称之为 client 节点node.master: false node.data: false node.ingest:true,这些节点只负责处理用户请求,实现请求转发,负载均衡等功能。
master节点:普通服务器即可(CPU 内存 消耗一般)
data 节点:主要消耗磁盘,内存
client | ingest 节点:普通服务器即可(如果要进行分组聚合操作的话,建议这个节点内存也分配多一点)
部署 elasticsearch
为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"
}
部署kibana
构建镜像Dockerfile
FROM docker.elastic.co/kibana/kibana:6.4.2
RUN bin/kibana-plugin remove x-pack
生成镜像
docker build -t cfontes/kibana-xpack-less:6.4.2 .
部署到k8s里
kubectl create -f kibana.yaml
kubectl create -f kibana-svc.yaml
注意:在这里有一个环境变量
SERVER_BASEPATH
,如果没有使用代理,这个值需要设为空,否则你的js,css和其它文件都是404,这块要注意一下;另外CLUSTER_NAME
表示的是elasticsearch集群的名称.
部署fluentd
有两个yaml文件,mapconfig为配置文件,另一个就是deploy文件,我们先执行配置 ,再运行pod即可
kubectl create -f fluentd-es-configmap.yaml
kubectl create -f fluentd-es-ds.yaml
合集:
kubernetes
分类:
日志收集(ELK)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2015-12-30 大叔也说Xamarin~Android篇~监听返回键,单击返回某个webView,双击退出
2015-12-30 Lind.DDD.ExpressionExtensions动态构建表达式树,实现对数据集的权限控制
2014-12-30 知方可补不足~Sqlserver中的几把锁和.net中的事务级别
2012-12-30 vs2012~ 开发人员的福音
2011-12-30 基础才是重中之重~类是怎么执行的