k8s部署efk

环境简介:

kubernetes: v1.22.2

helm: v3.12.0

elasticsearch: 8.8.0 chart包:19.10.0

fluentd: 1.16.2 chart包: 5.9.4

kibana: 8.2.2 chart包:10.1.9

整体架构图

一、Elasticsearch安装配置

1.1、es角色分类

  • 准主节点:主节点负责集群级别的轻量级操作,包括创建和删除索引、跟踪集群中的所有节点以及分片分配等功能
  • 数据节点:持有索引分片并负责处理数据相关的操作,例如CRUD、搜索和聚合等I/O及CPU密集型的任务。
  • 摄取节点:也称为客户端节点,它负责接收客户端发来的REST请求,并根据内部预置的一个或多个由摄取处理器组成的预处理管道完成数据的预处理,之后路由给数据节点
  • 协调节点:禁用了主节点、数据节点及摄取节点等功能后的节点即为协调节点,它可以完成路由请求、处理搜索结果合并(reduce阶段),以及协调批量索引(bulk indexing)等任务

1.2、修改values.yml

yaml 复制代码
global:
  storageClass: "nfs-client"   #创建pvc,存储日志

clusterDomain: cluster.local   #k8s集群域名
clusterName: elastic           #elasticsearch集群名称,主要用来子节点识别集群的标识

master:
  replicaCount: 2   #主节点实例数量,保持默即可
coordinating:
  replicaCount: 2   #协调节点实例数量,保持默即可
data:
  replicaCount: 2   #数据节点实例数量,保持默即可
ingest:
  enabled: true
  replicaCount: 2   #摄取节点实例数量,保持默即可

1.3、安装验证

shell 复制代码
helm install my-elasticsearch ./elasticsearch


kubectl  exec -it my-elasticsearch-master-0 bash

#查询集群的工作状态
curl http://my-elasticsearch-coordinating-hl.default.svc:9200/_cluster/health?pretty
  "cluster_name" : "elastic",
  "status" : "green",         #有green、yelllow、red三种状态
  "timed_out" : false,
  "number_of_nodes" : 8,
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 19,
  "active_shards" : 38,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

#查看ES已经生产的索引
curl http://my-elasticsearch-coordinating-hl.default.svc:9200/_cat/indices

二、fluentd安装配置

2.1、Fluentd角色

两种不同角色:Fluent Bit -- 转发器(forwarder),Fluentd-- 聚合器(aggregator)

2.2、fuentd数据流

  • Input插件:Tail(文件数据源)、Systemd、Syslog、TCP和 MQTT等。
  • 解析器插件:Logfmt、LTSV和Regular Expression等。
  • 过滤器插件:Grep、Kubernetes、Record Modifier和Lua等。
  • Output插件:Forward、Kafka、Elasticsearch、File、 InfluxDB和TCP等。

2.3、修改values.yaml

yaml 复制代码
global:
  storageClass: "nfs-client"

  tolerations:                             #添加污点容忍
    - key: node-role.kubernetes.io/master
      effect: NoSchedule

#转发器
forwarder:
  configMapFiles:
    fluentd.conf: |
    fluentd-inputs.conf: |


#聚合器配置
aggregator:
    fluentd-output.conf: |
      # Throw the healthcheck to the standard output
      <match fluentd.healthcheck>
        @type stdout
      </match>

      # Send the logs to the standard output
      <match **>
        @type stdout
        Name elastic
        Match kube.*
        Host my-elasticsearch-coordinating-hl.default.svc
        Logstash_Prefix k8s-cluster  							# Logstash兼容日志格式的索引前缀
      </match>

三、kinaba安装配置

3.1、修改values.yml

shell 复制代码
global:
  storageClass: "nfs-client"

image:
  registry: registry.cn-hangzhou.aliyuncs.com/other_ns
  repository: kibana
  tag: 8.2.2-debian-10-r0

#服务对外访问为nodeport
service:
  type: NodePort
  nodePorts:
    http: "30004"
  

elasticsearch:
  hosts:
    - my-elasticsearch-coordinating-hl.default.svc.cluster.local    #配置es数据源
  port: "9200"

3.2、常用方法

查看ES索引: Managment -----> Data -----> Index Managen

相关推荐
喜欢你,还有大家1 小时前
实战演练——wordpress-k8s集群版
云原生·容器·kubernetes
起风了___5 小时前
Jenkins + Kubernetes 多模块微服务一键流水线:从 Maven 打包到滚动发布完整脚本
kubernetes·jenkins
2501_9418814017 小时前
Kubernetes 容器集群资源调度与弹性扩容高可用架构在互联网业务实战经验总结
云原生·容器·kubernetes
究極の法則に通じた野犬17 小时前
k8s设计理念-k8s中哪些服务要部署成StatefulSet哪些部署成Deployment
云原生·容器·kubernetes
wuxingge17 小时前
k8s集群误删node节点,怎么添加回去
云原生·容器·kubernetes
观测云21 小时前
Kubernetes CRD 方式配置容器日志采集最佳实践
容器·kubernetes·日志分析
运维-大白同学1 天前
2025最全面开源devops运维平台功能介绍
linux·运维·kubernetes·开源·运维开发·devops
敲上瘾1 天前
【探索实战】:Kurator分布式统一应用分发平台的全面解析与实践指南
分布式·容器·kubernetes·serverless
Connie14512 天前
记一次K8s故障告警排查(Grafna告警排查)
云原生·容器·kubernetes·grafana
谷隐凡二2 天前
Kubernetes主从架构简单解析:基于Python的模拟实现
python·架构·kubernetes