k8s--efk日志收集

目录

环境准备

下载efk软件包

[下载 nfs](#下载 nfs)

设置nfs开机自启

创建共享存储目录

配置共享目录文件

加载nfs

使共享目录生效

查看

node节点验证

共享目录配置成功

进入efk配置文件目录

修改deployment.yaml文件

修改为master主节点ip

修改为nfs共享存储目录

[修改 kibana](#修改 kibana)

[添加 type:Nodeport](#添加 type:Nodeport)

部署EFK

创建nfs存储访问

构建es集群

部署kibana

修改好后如下

汉化kibana

[创建 kibana.yml 文件](#创建 kibana.yml 文件)

命令行创建configmap

[提交 kibana资源清单](#提交 kibana资源清单)

查看

master节点执行

访问网页

查看暴露端口号

网页访问

安装fluentd组件

查看污点并复制污点

修改配置文件

修改key的污点

网页访问

创建索引模式

查看


环境准备

下载efk软件包
cpp 复制代码
[root@k8s-master ~]# mkdir efk
[root@k8s-master ~]# cd efk/
[root@k8s-master efk]# ls
[root@k8s-master efk]# rz
rz waiting to receive.**[root@k8s-master efk]# ls
efk.zip
[root@k8s-master efk]# unzip efk.zip 
Archive:  efk.zip
   creating: efk/
  inflating: efk/class.yaml          
  inflating: efk/deployment.yaml     
  inflating: efk/elasticsearch-statefulset.yaml  
  inflating: efk/elasticsearch_svc.yaml  
  inflating: efk/fluentd.yaml        
  inflating: efk/kibana.yaml         
 extracting: efk/kube-logging.yaml   
  inflating: efk/pod.yaml            
  inflating: efk/rbac.yaml           
  inflating: efk/serviceaccount.yaml 
cpp 复制代码
下载  yum -y install socat

下载  yum -y install nfs-utils
下载 nfs
设置nfs开机自启
cpp 复制代码
[root@k8s-master data]# systemctl enable --now nfs
创建共享存储目录
cpp 复制代码
[root@k8s-master ~]# cd /data/
[root@k8s-master data]# ls
discuz  mysql  redis  tomcat
[root@k8s-master data]# mkdir efk
[root@k8s-master data]# ls
discuz  efk  mysql  redis  tomcat
配置共享目录文件
cpp 复制代码
[root@k8s-master data]# vim /etc/exports
/data/efk 192.168.158.0/24(rw,sync,no_root_squash)
加载nfs
使共享目录生效
查看
cpp 复制代码
[root@k8s-master data]# showmount -e
Export list for k8s-master:
/data/efk          192.168.158.0/24
node节点验证
共享目录配置成功
cpp 复制代码
[root@k8s-node1 ~]# showmount -e 192.168.158.33
Export list for 192.168.158.33:

[root@k8s-node2 ~]#  showmount -e 192.168.158.33
Export list for 192.168.158.33:

进入efk配置文件目录

修改deployment.yaml文件
cpp 复制代码
[root@k8s-master efk]# vim deployment.yaml 
修改为master主节点ip
修改为nfs共享存储目录
修改 kibana
添加 type:Nodeport
cpp 复制代码
[root@k8s-master efk]# vim kibana.yaml 

因为只有两个node 节点,这里pod副本数改为2就可以

部署EFK

创建nfs存储访问

cpp 复制代码
kubectl create -f serviceaccount.yaml

kubectl create -f rbac.yaml

kubectl create -f deployment.yaml

kubectl create -f class.yaml

构建es集群

cpp 复制代码
kubectl apply -f kube-logging.yaml

kubectl create -f elasticsearch-statefulset.yaml

kubectl create -f elasticsearch_svc.yaml

部署kibana

往解压出来的 kibana.yaml文件里添加

cpp 复制代码
        volumeMounts:
        - name: kibana-config
          mountPath: /usr/share/kibana/config/
      volumes:
      - name: kibana-config
        configMap:
          name: kibana-configmap
修改好后如下
cpp 复制代码
[root@k8s-master efk]# vim kibana.yaml 
[root@k8s-master efk]# cat 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

创建 kibana.yml 文件
cpp 复制代码
vim  kibana.yml

server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"

命令行创建configmap

cpp 复制代码
kubectl -n kube-logging create configmap kibana-configmap --from-file=kibana.yml=./kibana.yml
提交 kibana资源清单
cpp 复制代码
kubectl apply -f kibana.yaml
查看
cpp 复制代码
[root@k8s-master efk]# kubectl get pods -n kube-logging
NAME                      READY   STATUS    RESTARTS      AGE
es-cluster-0              1/1     Running   0             45m
es-cluster-1              1/1     Running   0             80m
kibana-7645484fc7-58bfd   1/1     Running   2 (44m ago)   51m

[root@k8s-master efk]# kubectl get svc -n kube-logging
NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
elasticsearch   ClusterIP   None            <none>        9200/TCP,9300/TCP   82m
kibana          NodePort    10.100.200.93   <none>        5601:32107/TCP      77m

master节点执行

当es的po和kibana安装好之后在master节点执行

cpp 复制代码
kubectl port-forward --address 192.168.158.33 es-cluster-0 9200:9200 --namespace=kube-logging

访问网页

192.168.158.33:9200

查看暴露端口号
cpp 复制代码
[root@k8s-master ~]# kubectl -n kube-logging get svc -o wide
NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE    SELECTOR
elasticsearch   ClusterIP   None            <none>        9200/TCP,9300/TCP   102m   app=elasticsearch
kibana          NodePort    10.100.200.93   <none>        5601:32107/TCP      97m    app=kibana
网页访问

192.168.158.33:32107

安装fluentd组件

查看污点并复制污点
修改配置文件

vim fluentd.yaml

修改key的污点

在tolerations 字段中加上:operator:Exists

cpp 复制代码
kubectl  apply -f  fluentd.yaml
网页访问

192.168.158.33:32107

创建索引模式
查看
相关推荐
我是谁??1 小时前
ubuntu22.04 通过docker部署vLLM(Qwen3-0.6B)大模型+New API+OpenWebUI
docker·容器·vllm
Patrick_Wilson1 小时前
K8s 探针避坑:Next.js 不同部署模式下的健康检查实践
kubernetes·node.js·next.js
运维瓦工1 小时前
DevOps 生态介绍(十):Docker Compose 核心 YAML 配置详解与常用命令大全
spring cloud·docker·容器
Plastic garden2 小时前
K8s(10)NFS 的动态 PV 创建数据库给k8s的mysql和redis
docker·容器·kubernetes
Plastic garden2 小时前
k8s(11) Pod 控制器,服务发现与存储管理
kubernetes
与海boy2 小时前
docker compose minio
docker·容器·eureka
星辰徐哥3 小时前
云原生核心特性:容器化、微服务与DevOps的通俗解读
微服务·云原生·devops
武子康3 小时前
调查研究-167 Docker Compose 详解:从单容器到多服务编排的工程化入口
运维·docker·云原生·容器·kubernetes·k8s·docker-compose
heimeiyingwang4 小时前
【架构实战】分布式会话:从Session到JWT的演进
微服务·云原生·架构