我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Kubernetes中EFK怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Kubernetes中EFK怎么用

这篇文章给大家分享的是有关Kubernetes中EFK怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一:前言

1.在安装Kubernetes集群的时候我们有下载过压缩包https://dl.k8s.io/v1.8.5/kubernetes-client-linux-amd64.tar.gz
解压缩后 在目录cluster\addons 下有各插件的yaml文件,大部分情况仅需少量改动即可使用。

2.在搭建Kubernetes的集群过程中,涉及到很多镜像的下载,建议可以在阿里云购买一个香港所在地的ECS服务器,镜像下载完成后通过docker save -o 将镜像导出,在通过docker load 导入镜像或者上传镜像到个人镜像仓库。

3.Kubernetes从1.8版本开始,EFK的安装中,elasticsearch-logging采用StatefulSet类型,但存在bug,会导致elasticsearch-logging-0 POD 一直无法成功创建。 所以建议还是采用1.8之前的版本采用ReplicationController。

4.要成功安装EFK,一定要先安装kube-dns前面的文章已有介绍。

5.EFK安装过程中elasticsearch和kibana版本要兼容。这里采用的镜像如下:
gcr.io/google_containers/elasticsearch:v2.4.1-2

gcr.io/google_containers/fluentd-elasticsearch:1.22

gcr.io/google_containers/kibana:v4.6.1-1


二:yaml文件
Kubernetes中EFK怎么用

efk-rbac.yaml

点击(此处)折叠或打开

  1. apiVersion: v1

  2. kind: ServiceAccount

  3. metadata:

  4.   name: efk

  5.   namespace: kube-system

  6. ---

  7. kind: ClusterRoleBinding

  8. apiVersion: rbac.authorization.k8s.io/v1beta1

  9. metadata:

  10.   name: efk

  11. subjects:

  12.   - kind: ServiceAccount

  13.     name: efk

  14.     namespace: kube-system

  15. roleRef:

  16.   kind: ClusterRole

  17.   name: cluster-admin

  18.   apiGroup: rbac.authorization.k8s.io

es-controller.yaml

点击(此处)折叠或打开

  1. apiVersion: v1

  2. kind: ReplicationController

  3. metadata:

  4.   name: elasticsearch-logging-v1

  5.   namespace: kube-system

  6.   labels:

  7.     k8s-app: elasticsearch-logging

  8.     version: v1

  9.     kubernetes.io/cluster-service: "true"

  10.     addonmanager.kubernetes.io/mode: Reconcile

  11. spec:

  12.   replicas: 2

  13.   selector:

  14.     k8s-app: elasticsearch-logging

  15.     version: v1

  16.   template:

  17.     metadata:

  18.       labels:

  19.         k8s-app: elasticsearch-logging

  20.         version: v1

  21.         kubernetes.io/cluster-service: "true"

  22.     spec:

  23.       serviceAccountName: efk

  24.       containers:

  25.       - image: gcr.io/google_containers/elasticsearch:v2.4.1-2

  26.         name: elasticsearch-logging

  27.         resources:

  28.           # need more cpu upon initialization, therefore burstable class

  29.           limits:

  30.             cpu: 1000m

  31.           requests:

  32.             cpu: 100m

  33.         ports:

  34.         - containerPort: 9200

  35.           name: db

  36.           protocol: TCP

  37.         - containerPort: 9300

  38.           name: transport

  39.           protocol: TCP

  40.         volumeMounts:

  41.         - name: es-persistent-storage

  42.           mountPath: /data

  43.         env:

  44.         - name: "NAMESPACE"

  45.           valueFrom:

  46.             fieldRef:

  47.               fieldPath: metadata.namespace

  48.       volumes:

  49.       - name: es-persistent-storage

  50.         emptyDir: {}

es-service.yaml

点击(此处)折叠或打开

  1. apiVersion: v1

  2. kind: Service

  3. metadata:

  4.   name: elasticsearch-logging

  5.   namespace: kube-system

  6.   labels:

  7.     k8s-app: elasticsearch-logging

  8.     kubernetes.io/cluster-service: "true"

  9.     addonmanager.kubernetes.io/mode: Reconcile

  10.     kubernetes.io/name: "Elasticsearch"

  11. spec:

  12.   ports:

  13.   - port: 9200

  14.     protocol: TCP

  15.     targetPort: db

  16.   selector:

  17.     k8s-app: elasticsearch-logging

fluentd-es-ds.yaml

点击(此处)折叠或打开

  1. apiVersion: extensions/v1beta1

  2. kind: DaemonSet

  3. metadata:

  4.   name: fluentd-es-v1.22

  5.   namespace: kube-system

  6.   labels:

  7.     k8s-app: fluentd-es

  8.     kubernetes.io/cluster-service: "true"

  9.     addonmanager.kubernetes.io/mode: Reconcile

  10.     version: v1.22

  11. spec:

  12.   template:

  13.     metadata:

  14.       labels:

  15.         k8s-app: fluentd-es

  16.         kubernetes.io/cluster-service: "true"

  17.         version: v1.22

  18.       # This annotation ensures that fluentd does not get evicted if the node

  19.       # supports critical pod annotation based priority scheme.

  20.       # Note that this does not guarantee admission on the nodes (#40573).

  21.       annotations:

  22.         scheduler.alpha.kubernetes.io/critical-pod: ''

  23.     spec:

  24.       serviceAccountName: efk

  25.       containers:

  26.       - name: fluentd-es

  27.         image: gcr.io/google_containers/fluentd-elasticsearch:1.22

  28.         command:

  29.           - '/bin/sh'

  30.           - '-c'

  31.           - '/usr/sbin/td-agent 2>&1 >> /var/log/fluentd.log'

  32.         resources:

  33.           limits:

  34.             memory: 200Mi

  35.           requests:

  36.             cpu: 100m

  37.             memory: 200Mi

  38.         volumeMounts:

  39.         - name: varlog

  40.           mountPath: /var/log

  41.         - name: varlibdockercontainers

  42.           mountPath: /var/lib/docker/containers

  43.           readOnly: true

  44.       nodeSelector:

  45.         beta.kubernetes.io/fluentd-ds-ready: "true"

  46.       tolerations:

  47.       - key : "node.alpha.kubernetes.io/ismaster"

  48.         effect: "NoSchedule"

  49.       terminationGracePeriodSeconds: 30

  50.       volumes:

  51.       - name: varlog

  52.         hostPath:

  53.           path: /var/log

  54.       - name: varlibdockercontainers

  55.         hostPath:

  56.           path: /var/lib/docker/containers

kibana-controller.yaml  此处需要特殊说明,绿色标识的部分KIBANA_BASE_URL 的value要设置为空,默认值会导致Kibana访问出现问题。

点击(此处)折叠或打开

  1. apiVersion: extensions/v1beta1

  2. kind: Deployment

  3. metadata:

  4.   name: kibana-logging

  5.   namespace: kube-system

  6.   labels:

  7.     k8s-app: kibana-logging

  8.     kubernetes.io/cluster-service: "true"

  9.     addonmanager.kubernetes.io/mode: Reconcile

  10. spec:

  11.   replicas: 1

  12.   selector:

  13.     matchLabels:

  14.       k8s-app: kibana-logging

  15.   template:

  16.     metadata:

  17.       labels:

  18.         k8s-app: kibana-logging

  19.     spec:

  20.       serviceAccountName: efk

  21.       containers:

  22.       - name: kibana-logging

  23.         image: gcr.io/google_containers/kibana:v4.6.1-1

  24.         resources:

  25.           # keep request = limit to keep this container in guaranteed class

  26.           limits:

  27.             cpu: 100m

  28.           requests:

  29.             cpu: 100m

  30.         env:

  31.           - name: "ELASTICSEARCH_URL"

  32.             value: "http://elasticsearch-logging:9200"

  33.           - name: "KIBANA_BASE_URL"

  34.             value: ""

  35.         ports:

  36.         - containerPort: 5601

  37.           name: ui

  38.           protocol: TCP

kibana-service.yaml

点击(此处)折叠或打开

  1. apiVersion: v1

  2. kind: Service

  3. metadata:

  4.   name: kibana-logging

  5.   namespace: kube-system

  6.   labels:

  7.     k8s-app: kibana-logging

  8.     kubernetes.io/cluster-service: "true"

  9.     addonmanager.kubernetes.io/mode: Reconcile

  10.     kubernetes.io/name: "Kibana"

  11. spec:

  12.   ports:

  13.   - port: 5601

  14.     protocol: TCP

  15.     targetPort: ui

  16.   selector:

  17.     k8s-app: kibana-logging


三:启动与验证

1. 创建资源
kubectl create -f .
Kubernetes中EFK怎么用

2.通过 kubectl logs -f  查看相关pod的日志,确认是否正常启动。 其中kibana-logging-* POD 启动需要一定的时间。
Kubernetes中EFK怎么用

3.elasticsearch验证(可以通过kube proxy创建代理)
http://IP:PORT/_cat/nodes?v

点击(此处)折叠或打开

  1. host      ip        heap.percent ram.percent load node.role master name

  2. 1.88.4 10.1.88.4            9          87 0.45 d         m      elasticsearch-logging-v1-hnfv2

  3. 1.67.4 10.1.67.4            6          91 0.03 d         *      elasticsearch-logging-v1-zmtdl

http://IP:PORT/_cat/indices?v

点击(此处)折叠或打开

  1. health status index               pri rep docs.count docs.deleted store.size pri.store.size

  2. green open   logstash-2018.04.07   5   1        515            0      1.1mb        584.4kb

  3. green open .kibana               1   1          2            0     22.2kb          9.7kb

  4. green open   logstash-2018.04.06   5   1      15364            0      7.3mb          3.6mb

kibana验证
http://IP:PORT/app/kibana#/discover?_g
Kubernetes中EFK怎么用

四:备注
要成功搭建EFK,需要注意一下几点:
1.确保已经成功安装了kube-dns
2.当前版本elasticsearch-logging采用ReplicationController
3.elasticsearch和kibana的版本要兼容
4.KIBANA_BASE_URL value设置为“”

感谢各位的阅读!关于“Kubernetes中EFK怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Kubernetes中EFK怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Kubernetes中EFK怎么用

这篇文章给大家分享的是有关Kubernetes中EFK怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一:前言1.在安装Kubernetes集群的时候我们有下载过压缩包https://dl.k8s.io/v1
2023-06-04

GlusterFS在Kubernetes中怎么应用

这篇文章主要介绍“GlusterFS在Kubernetes中怎么应用”,在日常操作中,相信很多人在GlusterFS在Kubernetes中怎么应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Gluster
2023-06-04

Kubernetes探针怎么用

小编给大家分享一下Kubernetes探针怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、基本介绍当我们在 K8s 上运行应用时,应用是否运行正常这是我们
2023-06-29

docker怎么部署EFK日志系统

这篇文章主要介绍“docker怎么部署EFK日志系统”,在日常操作中,相信很多人在docker怎么部署EFK日志系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”docker怎么部署EFK日志系统”的疑惑有所
2023-06-04

Kubernetes Helm怎么使用

本篇内容主要讲解“Kubernetes Helm怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Kubernetes Helm怎么使用”吧!什么是Helm?这可不是暗黑破坏神里装备的名称:
2023-06-04

kubernetes中NetworkPolicy有什么用

小编给大家分享一下kubernetes中NetworkPolicy有什么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一: 简介 1.Kubernetes的一个重要特性就是要把不同node节点的pod连接起来,无视物理节
2023-06-04

kubernetes中Harbor有什么用

这篇文章主要介绍了kubernetes中Harbor有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一:简介Harbor是一个用于存储和分发Docker镜像的企业级Re
2023-06-04

Kubernetes中怎么创建一个Nginx应用

本篇文章给大家分享的是有关Kubernetes中怎么创建一个Nginx应用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用命令行kubectl run --image=ngi
2023-06-06

怎么在kubernetes中创建Pod

本篇文章给大家分享的是有关怎么在kubernetes中创建Pod,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。如何创建Pod?kubectl create -f 配置文件Po
2023-06-14

kubernetes中怎么安装Node节点

今天就跟大家聊聊有关kubernetes中怎么安装Node节点,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一:前言1.Kubernetes版本1.8.5;node ip 10.11
2023-06-04

kubernetes中TLS bootstrapping有什么用

这篇文章主要介绍了kubernetes中TLS bootstrapping有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一: 前言当集群开启了 TLS 认证后,每个节
2023-06-04

kubernetes中怎么部署coredns 插件

这期内容当中小编将会给大家带来有关kubernetes中怎么部署coredns 插件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一:简介 从Kubernetes 1.10开始,在安装时将默认的DN
2023-06-04

Kubernetes中怎么选Secrets管理器

Kubernetes中怎么选Secrets管理器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Secrets是Kubernetes中一种对象类型,用来保存密码、私钥、口令等敏感
2023-06-04

CentOS7中怎么安装 Kubernetes集群

CentOS7中怎么安装 Kubernetes集群,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。CentOS7(mini) 安装 Kubernetes 集群(kubeadm
2023-06-19

Kubernetes中yaml文件有什么用

小编给大家分享一下Kubernetes中yaml文件有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!YAML 基础YAML(Yet Another Mark
2023-06-19

怎么安装Kubernetes

本篇内容主要讲解“怎么安装Kubernetes”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么安装Kubernetes”吧!安装过程安装过程基本包括下载软件,下载镜像,主机配置,启动 Mast
2023-06-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录