K8S部署EFK日志收集技术栈

拉取需要的压缩包到master节点并解压: unzip EFK.zip

将node节点需要的压缩包导入:

scp es.tar fluentd.tar kibana.tar k8s-node1:/home/efk

scp es.tar fluentd.tar kibana.tar k8s-node2:/home/efk

进入node节点解压文件(所有node节点都需要):

for i in `ls ./`;do docker load -i $i;done

在master节点

解压文件:unzip efk.zip

编写文件:vim /home/efk/class.yml

编译文件: vim /home/efk/deployment.yml

vim /home/efk/elasticsearch-statefulset.yml​​​​​​​(确认存储类)

根据指定 YAML 文件创建 K8s 资源:

kubectl create -f serviceaccount.yaml

kubectl create -f rbac.yaml

先执行上面两个,在执行后面两个

kubectl create -f deployment.yaml

kubectl create -f class.yaml

构建es集群

kubectl apply -f kube-logging.yaml

kubectl create -f elasticsearch-statefulset.yaml

kubectl create -f elasticsearch_svc.yaml

创建了新的命名空间,新pod也起来了

做测试

在所有节点下载:yum install -y socat

再master节点运行:curl http://10.244.36.67:9200/_cluster/health?pretty

查看一个pod的运行IP做测试用 :kubectl -n kube-logging get po -o wide

另开一个master节点:curl http://10.244.36.67:9200/_cluster/health?pretty

编译文件:vim kibana.yml

** THIS IS AN AUTO-GENERATED FILE **

Default Kibana configuration for docker target

server.name: kibana

server.host: "0"

elasticsearch.hosts: "http://elasticsearch:9200"

xpack.monitoring.ui.container.elasticsearch.enabled: true

i18n.locale: "zh-CN"

编译文件:vim kibana.yaml

apiVersion: v1

kind: Service

metadata:

name: kibana

namespace: kube-logging

labels:

app: kibana

spec:

type: NodePort

ports:

  • port: 5601

selector:

app: kibana


apiVersion: apps/v1

kind: Deployment

metadata:

name: kibana

namespace: kube-logging

labels:

app: kibana

spec:

replicas: 1

selector:

matchLabels:

app: kibana

template:

metadata:

labels:

app: kibana

spec:

containers:

  • name: kibana

image: docker.elastic.co/kibana/kibana:7.2.0

imagePullPolicy: IfNotPresent

resources:

limits:

cpu: 1000m

requests:

cpu: 100m

env:

  • name: ELASTICSEARCH_URL

value: http://elasticsearch.kube-logging.svc.cluster.local:9200

ports:

  • containerPort: 5601

volumeMounts:

  • name: kibana-config

mountPath: /usr/share/kibana/config/

volumes:

  • name: kibana-config

configMap:

name: kibana-configmap

汉化kibana:

kubectl -n kube-logging create configmap kibana-configmap --from-file=kibana.yml=./kibana.yml

更新配置:kubectl apply -f kibana.yaml

kubectl -n kube-logging get cm​​​​​​​ , kubectl -n kube-logging get po

在网页中搜索:192.168.11.160:32467

安装fluentd组件

kubectl apply -f fluentd.yaml

kubectl get po -n kube-logging -o wide

日志存放位置进入pod

kubectl -n kube-logging exec -it fluentd-22c76 -- bash

cd fluentd/etc/

cat kubernetes.conf

查看核心配置:cat fluent.conf

在网页上创建索引模式

相关推荐
飞翔沫沫情10 分钟前
K8s Alloy 采集 Pod 控制台日志
云原生·容器·kubernetes
spider_xcxc4 小时前
Prometheus + Grafana流程搭建总结
grafana·prometheus·云计算运维
潮起鲸落入海6 小时前
Kubernetes Metric Server, Quota and Limits
容器·kubernetes
梦想的颜色6 小时前
Docker 容器化本地部署 Claude Code 完整硬核教程|隔离沙盒 + 国产模型直连 + 持久化 Skill
运维·容器·ai 工程化·沙盒隔离·docker 本地部署·claude code硬核实战·国内国产模型接入
摇滚侠6 小时前
云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 19-25
java·云原生·kubernetes
渣渣盟7 小时前
Docker 运维常用命令手册(含扩容与实战)
运维·docker·容器
c_zyer7 小时前
一站式可观测新选择:OpenObserve 深度对标 ELK / Grafana+Prometheus / Netdata,附Docker一键部署实战
elk·grafana·prometheus·netdata·openobserve
咕噜咕噜的猪大侠8 小时前
《K8s 核心知识梳理:Deployment 滚动更新、JobCronJob、DaemonSet 和 Service》
云原生·容器·kubernetes
摇滚侠9 小时前
云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 26-40
java·云原生·kubernetes
大侠锅锅1 天前
第 4 篇:策略模式实践——用统一接口管理 Docker 容器、原生进程与 K3s Pod
docker·容器·边缘计算·策略模式·iot