Kubernetes集群部署安装EFK(Elasticsearch,Fluentbit,Kibana)

EFK是 Elasticsearch,Fluentbit,Kibana的缩写,是k8s集群常用的日志解决方案。

将EFK部署到k8s集群上也比较简单,安装步骤如下:

前期准备

为EFK创建namespace “logging”。

kubectl create namespace logging

安装Helm(Helm是kubernetes的包管理平台,目前的版本是3.0+,安装办法参考官网

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh
chmod 700 get_helm.sh
./get_helm.sh

安装Elasticsearch

由于是为了测试目的,安装单节点, 这里安装的es版本是6.7.0

kubectl run elasticsearch --image=docker.elastic.co/elasticsearch/elasticsearch:6.7.0 --namespace=logging
kubectl expose deploy elasticsearch --port 9200

将集群上运行ES的节点执行下边的命令:

sysctl -w vm.max_map_count=262144

通过下边命令查看设置是否成功:

sysctl -a|grep vm.max_map_count

安装kibana(通过helm)

helm install kibana stable/kibana --set env.ELASTICSEARCH_URL=http://elasticsearch:9200 --namespace logging

安装flunetbit

参考Github

Apply account,并绑定role:

kubectl apply -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-service-account.yaml
kubectl apply -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-role.yaml
kubectl apply -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-role-binding.yaml

安装fluentbit ,output到es。

kubectl apply -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/output/elasticsearch/fluent-bit-configmap.yaml
kubectl create -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/output/elasticsearch/fluent-bit-ds.yaml

最后查看EFK运行状况如何

[root@k8s-master ~]#  kubectl -n logging get pods
NAME                             READY   STATUS    RESTARTS   AGE
elasticsearch-5bf5995c77-2fb9n   1/1     Running   1          11d
fluent-bit-5b8z4                 1/1     Running   0          8d
fluent-bit-6bdnl                 1/1     Running   0          8d
fluent-bit-6j7z7                 1/1     Running   1          8d
fluent-bit-bddcx                 1/1     Running   0          8d
kibana-5fbfdbc4db-8qfq2          1/1     Running   0          11d
[root@k8s-master ~]#  kubectl -n logging get svc
NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
elasticsearch   ClusterIP   10.96.83.179     <none>        9200/TCP         11d
kibana          NodePort    10.111.19.55     <none>        443:31588/TCP    11d

注:默认情况下,kibana service 是不能被外网访问的,类型ClusterIP需要改成NodePort,才能被外网访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值