【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署

这篇具有很好参考价值的文章主要介绍了【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

EFK安装部署

一、环境准备(所有主机)

1、主机初始化配置

2、配置主机名并绑定hosts,不同主机名称不同

3、主机配置初始化

4、部署docker环境

二、部署kubernetes集群

1、组件介绍

2、配置阿里云yum源

3、安装kubelet kubeadm kubectl

4、配置init-config.yaml

init-config.yaml配置

5、安装master节点

6、安装node节点

7、安装flannel

三、部署企业镜像仓库

1、部署Harbor仓库

访问测试:

2、重启harbor,导入EFK镜像

四、部署EFK业务环境

1、准备组件Yaml文件

2、部署Elasticsearch

3、部署kibana

4、部署Fluentd

5、验证容器日志收集,创建测试容器

6、配置 Kibana


EFK安装部署

一、环境准备(所有主机)

IP地址

主机名

组件

192.168.100.131

k8s-master

kubeadm、kubelet、kubectl、docker-ce

192.168.100.132

k8s-node01

kubeadm、kubelet、kubectl、docker-ce、elasticsearch、fluentd

192.168.100.133

k8s-node02

kubeadm、kubelet、kubectl、docker-ce、kibana、fluentd

192.168.100.134

harbor

docker-ce、docker-compose、harbor

        注意:所有主机配置推荐CPU:2C+  Memory:4G+、运行           Elasticsearch 的节点要有足够的内存(不低于 4GB)。若 Elasticsearch 容器退出,请检查宿主机中的/var/log/message 日志,观察是否因为系统 OOM 导致进程被杀掉。

项目拓扑

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

1主机初始化配置

所有主机配置禁用防火墙和selinux

[root@localhost ~]# setenforce 0

[root@localhost ~]# iptables -F

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# systemctl stop NetworkManager

[root@localhost ~]# systemctl disable NetworkManager

[root@localhost ~]# sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

2、配置主机名并绑定hosts,不同主机名称不同

[root@localhost ~]# hostname k8s-master

[root@localhost ~]# bash

[root@k8s-master ~]# cat << EOF >> /etc/hosts

192.168.100.131 k8s-master

192.168.100.132 k8s-node01

192.168.100.133 k8s-node02

EOF

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@localhost ~]# hostname k8s-node01

[root@k8s-node01 ~]# cat /etc/hosts

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@localhost ~]# hostname k8s-node02

[root@k8s-node02 ~]#cat /etc/hosts

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

3、主机配置初始化

[root@k8s-master ~]# yum -y install vim wget net-tools lrzsz

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@k8s-master ~]# swapoff -a

[root@k8s-master ~]# sed -i '/swap/s/^/#/' /etc/fstab

[root@k8s-master ~]# cat << EOF >> /etc/sysctl.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

[root@k8s-master ~]# modprobe br_netfilter

[root@k8s-master ~]# sysctl -p

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

4、部署docker环境

1)三台主机上分别部署 Docker 环境,因为 Kubernetes 对容器的编排需要 Docker 的支持。

[root@k8s-master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@k8s-master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

2)使用 YUM 方式安装 Docker 时,推荐使用阿里的 YUM 源。

[root@k8s-master ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3)清除缓存

[root@k8s-master ~]# yum clean all && yum makecache fast

4)启动docker

[root@k8s-master ~]# yum -y install docker-ce

[root@k8s-master ~]# systemctl start docker

[root@k8s-master ~]# systemctl enable docker

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

5)镜像加速器(所有主机配置)

[root@k8s-master ~]# cat << END > /etc/docker/daemon.json

{     "registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]

}

END

6)重启docker

[root@k8s-master ~]# systemctl daemon-reload

[root@k8s-master ~]# systemctl restart docker

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

二、部署kubernetes集群

1、组件介绍

三个节点都需要安装下面三个组件

kubeadm:安装工具,使所有的组件都会以容器的方式运行

kubectl:客户端连接K8S API工具

kubelet:运行在node节点,用来启动容器的工具

2、配置阿里云yum源

使用 YUM 方式安装 Kubernetes时,推荐使用阿里的 YUM 源。

[root@k8s-master ~]# ls /etc/yum.repos.d/

[root@k8s-master ~]# cat > /etc/yum.repos.d/kubernetes.repo

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

3、安装kubelet kubeadm kubectl

所有主机配置

[root@k8s-master ~]# yum install -y kubelet-1.20.0 kubeadm-1.20.0 kubectl-1.20.0

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@k8s-master ~]# systemctl enable kubelet

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@k8s-master ~]# kubectl version

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

        kubelet 刚安装完成后,通过 systemctl start kubelet 方式是无法启动的,需要加入节点或初始化为 master 后才可启动成功。

4、配置init-config.yaml

        Kubeadm 提供了很多配置项,Kubeadm 配置在 Kubernetes 集群中是存储在ConfigMap 中的,也可将这些配置写入配置文件,方便管理复杂的配置项。Kubeadm 配内容是通过 kubeadm config 命令写入配置文件的。

        在master节点安装,master 定于为192.168.100.131,通过如下指令创建默认的init-config.yaml文件:

[root@k8s-master ~]# kubeadm config print init-defaults > init-config.yaml

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

init-config.yaml配置

[root@k8s-master ~]# cat init-config.yaml

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

5、安装master节点

1)拉取所需镜像

[root@k8s-master ~]# kubeadm config images list --config init-config.yaml

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@k8s-master ~]# kubeadm config images pull --config init-config.yaml

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

2)安装matser节点

[root@k8s-master ~]# kubeadm init --config=init-config.yaml //初始化安装K8S

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

3)根据提示操作

        kubectl 默认会在执行的用户家目录下面的.kube 目录下寻找config 文件。这里是将在初始化时[kubeconfig]步骤生成的admin.conf 拷贝到.kube/config

[root@k8s-master ~]# mkdir -p $HOME/.kube

[root@k8s-master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

[root@k8s-master ~]# chown $(id -u):$(id -g) $HOME/.kube/config

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

        Kubeadm 通过初始化安装是不包括网络插件的,也就是说初始化之后是不具备相关网络功能的,比如 k8s-master 节点上查看节点信息都是“Not Ready”状态、Pod 的 CoreDNS无法提供服务等。

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

6、安装node节点

1)根据master安装时的提示信息

[root@k8s-node01 ~]# kubeadm join 192.168.100.131:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:78bdd0f01660f4e84355b70aa8807cf1d0d6325b0b28502b29c241563e93b4ae

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@k8s-master ~]# kubectl get nodes

[root@k8s-node02 ~]# kubeadm join 192.168.100.131:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:78bdd0f01660f4e84355b70aa8807cf1d0d6325b0b28502b29c241563e93b4ae

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

Master操作:

[root@k8s-master ~]# kubectl get nodes

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

        前面已经提到,在初始化 k8s-master 时并没有网络相关配置,所以无法跟 node 节点通信,因此状态都是“NotReady”。但是通过 kubeadm join 加入的 node 节点已经在k8s-master 上可以看到。

7、安装flannel

        Master 节点NotReady 的原因就是因为没有使用任何的网络插件,此时Node 和Master的连接还不正常。目前最流行的Kubernetes 网络插件有Flannel、Calico、Canal、Weave 这里选择使用flannel。

所有主机:

master上传kube-flannel.yml,所有主机上传flannel_v0.12.0-amd64.tar,cni-plugins-linux-amd64-v0.8.6.tgz

[root@k8s-master ~]# docker load < flannel_v0.12.0-amd64.tar

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

上传插件:

[root@k8s-master ~]# tar xf cni-plugins-linux-amd64-v0.8.6.tgz

[root@k8s-master ~]# cp flannel /opt/cni/bin/

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

master上传kube-flannel.yml

master主机配置:

[root@k8s-master ~]# kubectl apply -f kube-flannel.yml

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@k8s-master ~]# kubectl get nodes

[root@k8s-master ~]# kubectl get pods -n kube-system

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

已经是ready状态

三、部署企业镜像仓库

1、部署Harbor仓库

1)所有主机配置禁用防火墙和selinux

[root@localhost ~]# setenforce 0

[root@localhost ~]# iptables -F

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# systemctl stop NetworkManager

[root@localhost ~]# systemctl disable NetworkManager

[root@localhost ~]# sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

2)配置主机名

[root@localhost ~]# hostname harbor

[root@localhost ~]# bash

[root@harbor ~]#

3)部署docker环境

Harbor 仓库需要 Docker 容器支持,所以 Docker 环境是必不可少的。

[root@k8s-master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@k8s-master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

使用 YUM 方式安装 Docker 时,推荐使用阿里的 YUM 源。

[root@k8s-master ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

清除缓存

[root@k8s-master ~]# yum clean all && yum makecache fast

启动docker

[root@k8s-master ~]# yum -y install docker-ce

[root@k8s-master ~]# systemctl start docker

[root@k8s-master ~]# systemctl enable docker

镜像加速器(所有主机配置)

[root@k8s-master ~]# cat << END > /etc/docker/daemon.json

{        "registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]

}

END

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

重启docker

[root@k8s-master ~]# systemctl daemon-reload

[root@k8s-master ~]# systemctl restart docker

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

部署docker-compose

[root@harbor ~]# mv docker-compose /usr/local/bin/

[root@harbor ~]# chmod +x /usr/local/bin/docker-compose

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

部署harbor

Harbor 私有仓库程序,采用 docker-compose 方式部署,不同的功能和应用处于不同的容器,这样带来了很好的兼容性,可在众多支持 Docker 的系统上运行 Harbor。

[root@harbor ~]# tar xf harbor-offline-installer-v1.10.6.tgz -C /usr/local/

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

        Harbor 的配置文件是/usr/local/harbor/harbor.yml 文件,默认的 hostname 要修改为Harbor 虚拟机节点的 IP 地址。

[root@harbor ~]# vim /usr/local/harbor/harbor.yml

  5 hostname: 192.168.200.114

13 #https:   //https 相关配置都注释掉,包括 https、port、certificate 和 private_key

 14   # https port for harbor, default is 443

 15   #port: 443

 16   # The path of cert and key files for nginx

 17   #certificate: /your/certificate/path

 18   #private_key: /your/private/key/path

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

启动harbor

[root@harbor ~]# cd /usr/local/harbor/

[root@harbor harbor]# sh install.sh

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@harbor harbor]# docker-compose ps

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

访问测试:

Harbor 启动完成后,浏览器访问 http://192.168.100.134,打开 Harbor Web 页面

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

修改所有主机docker启动脚本

[root@harbor ~]# vim /usr/lib/systemd/system/docker.service

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@harbor ~]# scp /usr/lib/systemd/system/docker.service 192.168.100.131:/usr/lib/systemd/system/

[root@harbor ~]# scp /usr/lib/systemd/system/docker.service 192.168.100.132:/usr/lib/systemd/system/

[root@harbor ~]# scp /usr/lib/systemd/system/docker.service 192.168.100.133:/usr/lib/systemd/system/

所有主机重启docker服务

[root@harbor ~]# systemctl daemon-reload

[root@harbor ~]# systemctl restart docker

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

2、重启harbor,导入EFK镜像

[root@harbor ~]# sh install.sh

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@harbor ~]# docker login -u admin -p Harbor12345 http://192.168.100.134

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@harbor ~]# cd efk

[root@harbor ~]# ls

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@harbor ~]# docker load < elasticsearch-7.4.2.tar

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@harbor ~]# docker load < fluentd-es.tar

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@harbor ~]# docker load < kibana-7.4.2.tar

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@harbor ~]# docker load < alpine-3.6.tar

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@harbor ~]# docker tag b1179d 192.168.100.134/efk/elasticsearch:7.4.2

[root@harbor ~]# docker tag 636f3d 192.168.100.134/efk/fluentd-es-root:v2.5.2

[root@harbor ~]# docker tag 43773d 192.168.100.134/efk/alpine:3.6

[root@harbor ~]# docker tag 230d3d 192.168.100.134/efk/kibana:7.4.2

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

[root@harbor ~]# docker push 192.168.100.134/efk/elasticsearch:7.4.2

[root@harbor ~]# docker push 192.168.100.134/efk/fluentd-es-root:v2.5.2

[root@harbor ~]# docker push 192.168.100.134/efk/kibana:7.4.2

[root@harbor ~]# docker push 192.168.100.134/efk/alpine:3.6

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

四、部署EFK业务环境

1、准备组件Yaml文件

Yaml文件中涉及到镜像地址和 nodeSelector 选择器地址需要注意修改。

[root@k8s-master ~]# mkdir efk #上传对应的yaml文件

[root@k8s-master ~]# cd efk/

[root@k8s-master efk]# grep "image:" elasticsearch.yaml

        image: 192.168.100.134/efk/elasticsearch:7.4.2

        image: 192.168.100.134/efk/alpine:3.6

        image: 192.168.100.134/efk/alpine:3.6

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

        NodeSelector 节点选择器的修改,实际作用是决定将 Elasticsearch 服务部署到哪个节点。当前配置文件内是调度到 k8s-node01 节点,请根据实际负载情况进行调整。节点名称可以通过 kubectl get nodes 获取,在选择节点时务必确保节点有足够的资源。

[root@k8s-master efk]# grep -A1 "nodeSelector" elasticsearch.yaml

      nodeSelector:

        kubernetes.io/hostname: k8s-node01

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

对kibana.yaml文件镜像地址和调度节点进行修改,将 Kibana 部署到 k8s-node02 节点。

[root@k8s-master efk]# grep "image:" kibana.yaml

        image: 192.168.100.134/efk/kibana:7.4.2

[root@k8s-master efk]# grep -A1 "nodeSelector" kibana.yaml

      nodeSelector:

        kubernetes.io/hostname: k8s-node02

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

修改 fluentd.yaml的镜像地址

[root@k8s-master efk]# grep "image:" fluentd.yaml

        image: 192.168.100.134/efk/fluentd-es-root:v2.5.2

修改 test-pod.yaml的镜像地址

[root@k8s-master efk]# grep "image:" test-pod.yaml

    image: 192.168.100.134/efk/alpine:3.6

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

2、部署Elasticsearch

1)创建命名空间

创建名为 logging 的命名空间,用于存放 EFK 相关的服务。在 k8s-master节点的/opt/efk 目录下。

[root@k8s-master efk]# kubectl create -f namespace.yaml

[root@k8s-master efk]# kubectl get namespaces | grep logging

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

2)创建 es 数据存储目录

Elasticsearch 服务通常可以简写为 es。到 k8s-node01 节点创建数据目录/esdata。

[root@k8s-node01 ~]# mkdir /esdata

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

3)部署 es 容器

进入 k8s-master节点的/efk 目录,部署 es 容器,执行如下操作。

[root@k8s-master ~]# cd efk/

[root@k8s-master efk]# kubectl create -f elasticsearch.yaml

等待片刻,即可查看到 es 的 Pod,已经部署到 k8s-node01 节点,状态变为 running。

[root@k8s-master efk]# kubectl -n logging get pods -o wide

[root@k8s-master efk]# kubectl -n logging get svc

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

通过 curl 命令访问服务,验证 es 是否部署成功。

[root@k8s-master efk]# curl 10.98.29.202:9200

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

3、部署kibana

进入 k8s-master 的/opt/efk 目录,执行如下命令。

[root@k8s-master efk]# kubectl create -f kibana.yaml

service/kibana created

查看 Pod 的状态。

[root@k8s-master efk]# kubectl -n logging get pods

查看对应的 Service,得到 NodePort 值为 31732,此端口为随机端口,不同环境会不一致,请以实际结果为准。

[root@k8s-master efk]# kubectl -n logging get svc |grep

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

        通过访问 192.168.100.131:31591 进入到 kibana 的访问界面,观察是否可以正常打开,其中 31591 端口需要替换成实际的端口号。若能正常访问,说明 Kibana 连接 es 已经正常。

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

4、部署Fluentd

1)给集群节点打标签

        为了自由控制需要采集集群中节点上业务容器的服务日志。因此,需要给 k8s-node01和 k8s-node02 节点打上 fluentd=true 的标签 label。

[root@k8s-master efk]# kubectl label node k8s-node01 fluentd=true

[root@k8s-master efk]# kubectl label node k8s-node02 fluentd=true

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

        k8s-node01 和 k8s-node02 已经打上了 fluentd=true 的 label,那么 Fluentd 服务就会启动到这两个节点,也就意味着运行在这两个节点的 Pod 日志会被收集起来。

2)启动 Fluentd 服务

在 k8s-master节点的/opt/efk 目录,启动 Fluentd 服务

[root@k8s-master efk]# kubectl create -f fluentd-es-config-main.yaml

[root@k8s-master efk]# kubectl create -f fluentd-configmap.yaml

[root@k8s-master efk]# kubectl create -f fluentd.yaml

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

3)查看 Pod 信息

是否已经在 k8s-node01 和 k8s-node02 节点启动成功。

[root@k8s-master efk]# kubectl -n logging get pods

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

5、验证容器日志收集创建测试容器

进入 k8s-master的/opt/efk 目录,执行如下命令。

[root@k8s-master efk]# kubectl create -f test-pod.yaml

[root@k8s-master efk]# kubectl get pods

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

6、配置 Kibana

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器 

 

        索引创建完成后,可以发现已经生成了多个索引域,稍等片刻再次点击左上角的

discover 图标,进入日志检索页面。

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

        然后通过索引键去过滤,比如根据Kubernetes.host、Kubernetes.container_name、 kubernetes.container_image_id等去做过滤。

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

        通过其他元数据也可以过滤日志数据,比如单击任何日志条目以查看其他元数据,如容器名称、Kubernetes 节点、命名空间等。

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署,云原生,kubernetes,容器

 

到这里,在 Kubernetes 集群上已经成功部署了 EFK。文章来源地址https://www.toymoban.com/news/detail-653317.html

到了这里,关于【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • EFK简单部署收集K8S日志

    安装ES kibana K8S部署

    2024年04月27日
    浏览(32)
  • K8S部署EFK(fluentd)收集日志

    首先部署es和kinban es部署 创建es-svc es-statefulset.yaml 开启es跨域访问 部署kinban 创建kibana的configmap kinban开启中文 创建kibana 部署fluentd 创建fluentd-configmap 只收集pod label 标记为 logging=true 的日志 注意挂载的日志目录出现unreadable 说明日志软连接有问题,无法读取日志 部署fluentd-dae

    2024年02月16日
    浏览(42)
  • K8s部署轻量级日志收集系统EFK(elasticsearch + filebeat + kibana)

    目录 K8s部署EFK(elasticsear + filebeat + kibana)日志收集 一.准备镜像 二.搭建Elasticsearch + kibana 1.在可执行kubectl命令的服务器准备安装的yml文件 2.在elasticsearch-kibana目录下创建配置文件elasticsearch.yml 3.创建kibana配置文件kibana.yml 4.在k8s中创建elasticsearch和kibana的配置文件configmap 5.检查

    2024年02月08日
    浏览(64)
  • k8s--基础--24.3--efk--安装efk组件

    下面的步骤在k8s集群的master1节点操作 创建一个名称空间,将EFK组件安装到该名称空间中。 名称空间:kube-logging 内容 通过上面步骤已经创建了一个名称空间kube-logging,在这个名称空间下去安装日志收集组件efk 我们将部署一个3节点的Elasticsearch集群,我们使用3个Elasticsearch P

    2024年02月14日
    浏览(40)
  • 云原生|kubernetes|kubernetes集群部署神器kubekey安装部署高可用k8s集群(半离线形式)

    前面利用kubekey部署了一个简单的非高可用,etcd单实例的kubernetes集群,经过研究,发现部署过程可以简化,省去了一部分下载过程(主要是下载kubernetes组件的过程)只是kubernetes版本会固定在1.22.16版本,etcd集群可以部署成生产用的外部集群,并且apiserver等等组件也是高可用,

    2024年02月15日
    浏览(48)
  • 【云原生-K8s】Kubernetes安全组件CIS基准kube-beach安装及使用

    为了保证集群以及容器应用的安全,Kubernetes 提供了多种安全机制,限制容器的行为,减少容器和集群的攻击面,保证整个系统的安全性。 互联网安全中心(CIS,Center for Internet Security),是一个非盈利组织,致力为互联网提供免费的安全防御解决方案 官网 :https://www.cisecu

    2024年02月06日
    浏览(74)
  • 云原生Kubernetes: Ubuntu 安装 K8S 1.23版本(单Master架构) 及故障恢复

    目录 一、实验 1.环境 2.安装 Ubuntu 3.连接Ubuntu 4.master节点安装docker 5.node节点安装docker 6.master节点安装K8S 7.添加K8S工作节点 8.安装网络插件calico 9.故障 10.故障恢复 11.测试k8s网络和coredns 二、问题 1.Ubuntu如何修改镜像源 2.Ubuntu和Windows之间如何实现复制粘贴 3.Ubuntu如何开启openssh

    2024年02月21日
    浏览(42)
  • 云原生Kubernetes:K8S概述

    目录 一、理论 1.云原生 2.K8S 3.k8s集群架构与组件 4.K8S网络 二、总结 (1)概念 云原生是一种基于容器、微服务和自动化运维的软件开发和部署方法。它可以使应用程序更加高效、可靠和可扩展,适用于各种不同的云平台。 如果要更直接通俗的来解释下上面的概念,云原生更

    2024年02月10日
    浏览(52)
  • 【云原生 • Kubernetes】认识 k8s、k8s 架构、核心概念点介绍

    目录 一、Kubernetes 简介 二、Kubernetes 架构 三、Kunbernetes 有哪些核心概念? 1. 集群 Cluster 2. 容器 Container 3. POD 4. 副本集 ReplicaSet 5. 服务 service 6. 发布 Deployment 7. ConfigMap/Secret 8. DaemonSet 9. 核心概念总结 Kubernetes 简称 k8s,是支持云原生部署的一个平台,起源于谷歌。谷歌早在十几

    2024年02月03日
    浏览(170)
  • 【云原生 • Kubernetes】认识 k8s 网络、外部网络访问 k8s 内部服务

    目录 一、认识 Kubernetes 网络 二、外部网络如何访问 k8s 内部服务 1. NodePort 2. Load Balancer 3. Ingress Kubernetes 最底层的网络为节点网络,用来保证 k8s 集群的节点(master 和 worker、worker 节点之间)能够做正常的 IP 寻址和通讯。 Kubernetes 第二层网络就是 Pod 网络,构建于节点网络之上

    2024年01月16日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包