如何在k8s中部署EFK日志监控系统?附示例之Elastic Search

如何在Kubernetes环境中使用Docker镜像部署 EFK (Elastic Search + Filebeat/Fluentd + Kibana) 日志监控系统?本文将示例如何编写Elastic Search的部署文件,部署中间会遇到什么坑,如何解决?(详见末尾!详见末尾!!详见末尾!!!)

部署架构图
上部署文件: 个人在18年预研时编写的,当时的资料是很少的

  • es-dep.yaml
# 指定部署类型为Deployment,实际生产时可能会部署为有状态的StatefulSet类型,并使用持久存储。
apiVersion: apps/v1beta1
kind: Deployment
# 设置元数据信息
metadata:
  name: es
  #namespace: ebk
  labels:	# (可选)为该Pod添加标签
    component: elasticsearch	# 标签的key可任意命名
# 具体部署配置项
spec:
  selector:		# (可选)指定具体的template,如指定则必须与spec.template.metadata.labels匹配,否则会创建不成功;如不指定,则默认是spec.template.metadata.labels
    matchLabels:
      component: elasticsearch
  replicas: 3	# 副本数量为3,可理解为部署3个Pod
  template:		# 每个副本的模板配置项,k8s会按下面配置创建各个副本
    metadata:
      labels:
        component: elasticsearch
    spec:
      # 创建一个初始容器,此容器会先于后面的应用容器运行,只有init容器运行成功后,才会运行后面的应用容器,如果运行失败,默认kubernetes会不断重启该Pod,直到Init容器成功运行。
      # 下面这种写法仅支持kubernetes1.6以上版本,在此用于为该Pod设置特殊资源请求或限制的最大值
      initContainers:
      - name: init-sysctl	# 容器名,任意指定
        image: busybox:1.27.2	# 指定镜像来源及版本号
        command:	# 容器启动命令,这里要设置vm.max_map_count=262144,否则ES会无法启动。
        - sysctl
        - -w
        - vm.max_map_count=262144
        securityContext:	# 开启特权,否则上面命令无法执行
          privileged: true
      # 配置具体的应用容器
      containers:
      - name: es-node
        # 下面镜像来源k8s官方示例推荐,其在官方elasticsearch镜像基础上,对一些配置进行了抽取,此更便于我们的部署配置
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值