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

在网页上创建索引模式

相关推荐
艾伦_耶格宇15 小时前
【DOCKER容器实战】-5 Docker容器镜像的构建
运维·docker·容器
ggaofeng18 小时前
k8s中的dns
云原生·容器·kubernetes
我不会起名字3221 天前
K8s Ingress 返回 502 但后端日志正常:4 类上游断连与排查链
kubernetes·k8s·ingress·502·keepalive
姜鱼问生1 天前
每次开机手动检查 6 样东西?我写了个 2 秒自检脚本
运维·网络·nginx·docker·容器
wangqiaowq1 天前
PostgresSQL server Docker 安装部署
运维·docker·容器
程序员阿明1 天前
docker搭建视频流服务go2rtc,webRTC
docker·容器·webrtc
JavaPub-rodert1 天前
Docker 容器为什么 stop 半天停不下来?讲透 PID 1、SIGTERM、SIGKILL、僵尸进程与 tini
运维·docker·容器
我不会起名字3221 天前
Pod 一直 Pending:调度器 5 类失败原因与 kubectl describe 的正确读法
云原生·kubernetes·调度·排查
我不会起名字3222 天前
K8s 服务 DNS 解析偶发 5 秒超时:conntrack 与 ndots 的 3 个坑
kubernetes·k8s·dns·conntrack·coredns
EterNity_TiMe_2 天前
Docker服务越装越多记不住端口?我用Fenrus把NAS里的常用入口整理成一个导航页
运维·人工智能·docker·ai·容器·cpolar