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

相关推荐
sbjdhjd2 小时前
云安全 | 从特权容器到旧版 runC:Docker 宿主机访问与运行时缺陷复盘
运维·网络安全·docker·云原生·kubernetes·云计算·云安全
谢亮_vipxieliang15 小时前
Kubernetes 的“操作系统化”:从容器编排到 AI 基础设施控制平面
人工智能·平面·kubernetes
sbjdhjd18 小时前
云安全 | Docker 容器逃逸复盘(三):docker.sock 挂载与 Docker-in-Docker 风险
经验分享·网络安全·docker·云原生·容器·kubernetes·云安全
热爱Liunx的丘丘人18 小时前
1、什么是K8s
云原生·容器·kubernetes
小匠石钧知1 天前
07_在k8s集群中安装ingress-nginx
nginx·容器·kubernetes·ingress
谢亮_vipxieliang2 天前
Kubernetes 1.36 深度解读:从 kubelet 安全到 GPU 原生调度的 70 项改进
安全·kubernetes·kubelet
wzq11_6662 天前
kubernetes集群——灰度发布
云原生·容器·kubernetes
vipxieliang2 天前
Kubernetes 的“操作系统化”:从容器编排到 AI 基础设施控制平面
kubernetes
Zhu7582 天前
在k8s环境中,离线部署与使用Topograph
云原生·容器·kubernetes
ToddyBear2 天前
从 Pod 编排到数据互联:基于 K8s 与 Snowflake 打造下一代异构查询桥梁实践
云原生·容器·kubernetes