• k8s~部署EFK框架


    EFK,ELK都是目前最为流行的分布式日志框架,主要实现了日志的收集,存储,分析等,它可以与docker容器进行结合,来收集docker的控制台日志,就是stdout日志.

    elasticsearch.master_data_client说明

      默认情况下,每个节点都有成为主节点的资格,也会存储数据,还会处理客户端的请求。在一个生产集群中我们可以对这些节点的职责进行划分。

    1. 建议集群中设置 3台 以上的节点作为 master 节点node.master: true node.data: false node.ingest:false,这些节点只负责成为主节点,维护整个集群的状态。
    2. 再根据数据量设置一批 data节点node.master: false node.data: true node.ingest:false,这些节点只负责存储数据,后期提供建立索引和查询索引的服务,这样的话如果用户请求比较频繁,这些节点的压力也会比较大
    3. 所以在集群中建议再设置一批 ingest 节点也称之为 client 节点node.master: false node.data: false node.ingest:true,这些节点只负责处理用户请求,实现请求转发,负载均衡等功能。

      master节点:普通服务器即可(CPU 内存 消耗一般)
      data 节点:主要消耗磁盘,内存
      client | ingest 节点:普通服务器即可(如果要进行分组聚合操作的话,建议这个节点内存也分配多一点)

    部署 elasticsearch

    为elasticsearch打镜像包,使用docker-elasticsearch-kubernetes-master里的Dockerfile即可,这在建立k8s的pod时需要用到

    docker build -t quay.io/pires/docker-elasticsearch-kubernetes:6.1.1 .
    

    可以依次执行k8s的yaml文件,就可以部署elasticsearch集群到k8s了

    kubectl create -f es-discovery-svc.yaml
    kubectl create -f es-svc.yaml
    kubectl create -f es-master.yaml
    kubectl rollout status -f es-master.yaml
    kubectl create -f es-client.yaml
    kubectl rollout status -f es-client.yaml
    kubectl create -f es-data.yaml
    kubectl rollout status -f es-data.yaml
    

    执行成功后,看一下是否启来了

    curl http://ip:9200
    
    {
      "name" : "es-client-76fb6ffdf4-nn5b2",
      "cluster_name" : "myesdb",
      "cluster_uuid" : "SEjviHIJQ8-SEloYYcez8w",
      "version" : {
        "number" : "6.1.1",
        "build_hash" : "bd92e7f",
        "build_date" : "2017-12-17T20:23:25.338Z",
        "build_snapshot" : false,
        "lucene_version" : "7.1.0",
        "minimum_wire_compatibility_version" : "5.6.0",
        "minimum_index_compatibility_version" : "5.0.0"
      },
      "tagline" : "You Know, for Search"
    }
    

    部署kibana

    构建镜像Dockerfile

    FROM docker.elastic.co/kibana/kibana:6.4.2
    RUN bin/kibana-plugin remove x-pack
    

    生成镜像

    docker build -t cfontes/kibana-xpack-less:6.4.2 .
    

    部署到k8s里

    kubectl create -f kibana.yaml
    kubectl create -f kibana-svc.yaml
    

    注意:在这里有一个环境变量SERVER_BASEPATH,如果没有使用代理,这个值需要设为空,否则你的js,css和其它文件都是404,这块要注意一下;另外CLUSTER_NAME表示的是elasticsearch集群的名称.

    部署fluentd

    有两个yaml文件,mapconfig为配置文件,另一个就是deploy文件,我们先执行配置 ,再运行pod即可

    kubectl create -f fluentd-es-configmap.yaml
    kubectl create -f fluentd-es-ds.yaml
    
  • 相关阅读:
    SpringSource发布Spring Data Redis 1.0.0
    C#实现的GDI+时钟
    敏捷团队应对打扰的七种方法
    JBoss发布Hibernate 4.0
    在 IE10 的 XHR 的麦子
    Spring AMQP 1.0 GA发布了
    对 64 个以上逻辑处理器使用任务管理器
    预览Visual Studio11: 敏捷的支持、团队协作以及代码克隆监测
    在 Windows 8 中支持传感器
    HTTP API可演进性最佳实践
  • 原文地址:https://www.cnblogs.com/lori/p/12119648.html
Copyright © 2020-2023  润新知