在kubernetes集群中部署kibana步骤如下:

1:kibana安装文件(目前最新版本4.5.1);

2:编写Dockerfile及执行点脚本文件run.sh,制作Kibana镜像;

3:推送镜像至某个Docker源,可以是公网的源,也可以是公司内部源;

4:在kubernetes主节点编写kibana镜像对应的RC文件,service文件;

5:在kubernetes集群中创建kibana service,kibana pods;

6:测试验证。

===============================================================================

1:kibana安装文件(以4.5.1版本为例)

安装包名为:kibana-4.5.1-linux-x64.tar.gz

如无安装包,可以从官网下载安装包,或者直接在Dockerfile中使用wget的方式下载。

===============================================================================

2:编写Dockerfile及执行点脚本文件run.sh,制作Kibana镜像;

由于需要保持与开发测试环境一致,因此这里采用了centos作为基础镜像,镜像较大,可使用ubuntu或alpine作为基础镜像,能显著缩小镜像尺寸。

以下是Dockerfile内容:

 FROM jiakai/centos.base:7.2.1511
 MAINTAINER JiaKai "jiakai@gridsum.com"
 ENV KIBANA_VERSION 4.5.1-linux-x64
 COPY ./kibana-${KIBANA_VERSION}.tar.gz /opt/kibana-${KIBANA_VERSION}.tar.gz
 RUN tar -xzf /opt/kibana-${KIBANA_VERSION}.tar.gz && \
     mv -f /kibana-${KIBANA_VERSION} /opt/kibana-${KIBANA_VERSION} && \
     rm -f /opt/kibana-${KIBANA_VERSION}.tar.gz
 ADD ./run.sh /run.sh
 EXPOSE 5601
 CMD /bin/bash /run.sh

入口点的shell脚本文件如下:

 #!/bin/sh
 set -e
 KIBANA_CONF_FILE="/opt/kibana-${KIBANA_VERSION}/config/kibana.yml"
 KIBANA_ES_URL=${KIBANA_ES_URL:-http://localhost:9200}
 sed -i "s;^.*elasticsearch.url:.*;elasticsearch.url: ${KIBANA_ES_URL};" "${KIBANA_CONF_FILE}"
 exec /opt/kibana-${KIBANA_VERSION}/bin/kibana

此时可以制作kibana的 Docker镜像:

sudo docker build -t="jiakai/kibana:4.5" .

无误的话将得到名为jiakai/kibana,Tag为4.5的kibana镜像,可以通过

sudo docker run -it ${Image Id} /bin/bash

来启动镜像检查(自行替换${Image ID}为实际获得的镜像ID);

================================================================================================

3:推送镜像至某个Docker源,可以是公网的源,也可以是公司内部源

推送镜像之前需要为镜像重新标记(TAG),这里以公司的内部源为例,将制作好的镜像推送至目标源:

sudo docker Tag jiakai/kibana:4.5 10.200.XXX.XXX:5000/gridsum/logstash:4.5

================================================================================================

4:在kubernetes主节点编写kibana镜像对应的RC文件,service文件

由于kibana需要向外界提供web服务,因此需要在kubernetes中对kibana建立RC及service;

下面是RC文件,只起了一个副本,可根据需求调整

 apiVersion: v1
 kind: ReplicationController
 metadata:
   name: kibana
   namespace: default
   labels:
     component: elk
     name: kibana
 spec:
   replicas: 1
   selector:
     component: elk
     name: kibana
   template:
     metadata:
       labels:
         component: elk
         name: kibana
     spec:
       containers:
       - name: kibana
         image: 10.XXX.XXXX.XXX:5000/gridsum/ld/kibana:4.5
         env:
         - name: KIBANA_ES_URL
           value: "http://10.XXX.XXX.XXX:9200"
         ports:
           - containerPort: 5601
             name: http
             protocol: TCP

下面是service文件,将自行LB所有的kibana pod:

 apiVersion: v1
 kind: Service
 metadata:
   name: kibana
   namespace: default
   labels:
     component: elk
     name: kibana
 spec:
   type: NodePort
   ports:
   - port: 5601
     targetPort: 5601
     nodePort: 30601
   selector:
     component: elk
     name: kibana

=================================================================================================

5:在kubernetes集群中创建kibana service,kibana pods

正确建立了kibana的RC及service文件后,即可在kubernetes集群中部署kibana服务对外提供服务;

这里我们在第4步建立的RC文件名为kibana-controller.yaml,建立的service文件名为kibana-service.yaml:

启动kibana service:

kubectl create -f kibana-service.yaml

启动kibana pods:

kubectl create -f kibana-controller.yaml

=================================================================================================

6:测试验证
在kubernetes集群中可以通过

kubectl get pods

查看当前所有pods状态;

通过

kubectl get service

查看当前所有service状态。

确定服务状态及pod状态正常后,即可通过浏览器来访问kibana服务,不过这里要注意一点就是kubernetes集群提供的kibana服务不再是通过5601端口,而是在service文件中定义的30601端口,可访问这个URL测试kubernetes集群提供的kibana服务。


Kibana默认安装路径 /opt/kibana

默认配置文件路径 /opt/kibana/config/kibana.yml

使用kuernetes提供高可用的kibana服务的更多相关文章

  1. 使用kuernetes提供高可用的logstash服务

    在kubernetes集群中部署logstash步骤如下: 1:logstash安装文件(目前最新版本2.3.4): 2:编写Dockerfile及执行点脚本文件run.sh,并且修改logstash ...

  2. heartbeat单独提供高可用服务

    本文目录:1.简介2.安装heartbeat 2.1 编译安装Heartbeat3.heartbeat相关配置文件 3.1 配置文件ha.cf 3.2 配置文件authkeys 3.3 配置文件har ...

  3. 每天响应数亿次请求,腾讯云如何提供高可用API服务?

    每天响应数亿次请求,腾讯云如何提供高可用API服务? https://mp.weixin.qq.com/s/OPwlHcqkaTT_gcwHfr5Shw 李阳 云加社区 2020-09-16 导语 | ...

  4. 搭建高可用的Redis服务,需要注意这些方面!

    搭建高可用的Redis服务,需要注意这些方面! HorstXu 占小狼的博客 今天 ◎作者 | HorstXu www.cnblogs.com/xuning/p/8464625.html 基于内存的R ...

  5. [ Openstack ] Openstack-Mitaka 高可用之 网络服务(Neutron)

    目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...

  6. [ Openstack ] Openstack-Mitaka 高可用之 计算服务(Nova)

    目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...

  7. [ Openstack ] OpenStack-Mitaka 高可用之 镜像服务(glance)

    目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...

  8. MaxCompute,基于Serverless的高可用大数据服务

    摘要:2019年1月18日,由阿里巴巴MaxCompute开发者社区和阿里云栖社区联合主办的“阿里云栖开发者沙龙大数据技术专场”走近北京联合大学,本次技术沙龙上,阿里巴巴高级技术专家吴永明为大家分享了 ...

  9. suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用

    文章目录 编译部署nginx 下载nginx源码包 编译nginx 配置nginx.conf 配置nginx为systemctl管理 分发nginx二进制文件和配置文件 启动kube-nginx服务 ...

随机推荐

  1. for循环与for循环嵌套

    今天温习了下分支语句跟for循环,主要讲解了for循环嵌套,这里开始有点迷糊了,整理下思路在做练习 for循环嵌套用我自己的大白话来说就是一个外圈的for程序里面一个套着一个小的for程序,如果在范围 ...

  2. Win7虚拟机无法打开内核设备:\\Global\\vmx86

    Win7虚拟机无法打开内核设备:\\Global\\vmx86 听语音 | 浏览:16844 | 更新:2014-07-21 11:21 | 标签:虚拟机 1 2 3 4 5 6 7 分步阅读 一键约 ...

  3. oracl中的集合操作符

    1:union(并集)     union连接两条sql语句,并且去除两条sql语句重复的记录 2.union all(并集) 接两句sql语句,两句sql语句的和不用去掉重复的记录. 3:inter ...

  4. oracle基本用法

    作为企业版的后台数据支撑,就首先要掌握oracle的使用方法!!! 注册用户之前,需要使用system管理员来进行注册功能!!! 1.首先创建新用户 2.这样就能使创建的新用户能够登陆吗?不,还需要分 ...

  5. Y2161 Hibernate第三次考试 2016年8月18日 试卷分析

  6. 运用.net core配合VS 2015制作nuget包

    from:http://www.cnblogs.com/zeusro/p/5171084.html 运用.net core配合VS 2015制作nuget包 以往做nuget包我们一般要么用命令行,要 ...

  7. Maven私服Nexus3.x环境构建操作记录

    Maven介绍Apache Maven是一个创新的软件项目管理和综合工具.Maven提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文件.Ma ...

  8. 045医疗项目-模块四:采购单模块—采购单提交(Dao,Service,Action三层)

    我们之前做的就是采购单的编辑,在采购单里面添加了药品,然后我们这篇文章要做的就是说提交这个采购单. 当我们创建完成采购单,确定采购单不再修改,需要提交采购单,由监管单位进行审核. 我们在提交这个采购单 ...

  9. scrapy 保存到 sqlite3

    scrapy 爬取到结果后,将结果保存到 sqlite3,有两种方式 item Pipeline Feed Exporter 方式一 使用 item Pipeline 有三个步骤 文件 pipelin ...

  10. lecture4-神经网络在语言上的应用

    Hinton第四课 这一课主要介绍神经网络在语言处理上应用,而主要是在文本上,并附上了2003年Bengio 等人的19页的论文<A Neural Probabilistic Language ...