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

在网页上创建索引模式

相关推荐
Hadoop_Liang13 小时前
使用Kubernetes Gateway API实现域名访问应用
容器·kubernetes·gateway
java_cj16 小时前
深入kubectl create源码:从YAML到Pod的完整链路拆解
运维·云原生·容器·kubernetes
源图客19 小时前
【AI向量数据库】Weaviate介绍与部署
运维·docker·容器
码云骑士1 天前
28-Docker部署Django(下)-docker-compose编排与静态文件处理
docker·容器·django
木雷坞1 天前
Firecrawl Docker Compose 自托管排查:镜像、Redis、队列和 Playwright
redis·docker·容器·firecrawl
whyfail1 天前
Colima:把 Docker Desktop 从 Mac 上“瘦身”的那把刀
macos·docker·容器
人工智能培训1 天前
数字孪生的未来发展方向探析
gpt·深度学习·机器学习·容器·知识图谱
大佐不会说日语~1 天前
在 Windows 本地用 Docker 部署向量模型(bge-m3)
windows·docker·容器·llm·ollama
xsc-xyc1 天前
CasaOS + Docker 挂载外接硬盘部署 Jellyfin 私人影院
运维·docker·容器
码云骑士1 天前
27-Docker部署Django(上)-从2GB到180MB的镜像瘦身实战
docker·容器·django