设为首页 收藏本站
查看: 1109|回复: 0

[经验分享] 使用kuernetes提供高可用的kibana服务

[复制链接]

尚未签到

发表于 2018-1-5 21:33:03 | 显示全部楼层 |阅读模式
  在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内容:

  

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


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

  

1 #!/bin/sh  

2 set -e  

3 KIBANA_CONF_FILE="/opt/kibana-${KIBANA_VERSION}/config/kibana.yml"  
4 KIBANA_ES_URL=${KIBANA_ES_URL:-http://localhost:9200}
  
5 sed -i "s;^.*elasticsearch.url:.*;elasticsearch.url: ${KIBANA_ES_URL};" "${KIBANA_CONF_FILE}"
  
6 exec /opt/kibana-${KIBANA_VERSION}/bin/kibana
  


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

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

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

sudo docker run -it ${Image>  

  来启动镜像检查(自行替换${Image>  ================================================================================================
  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文件,只起了一个副本,可根据需求调整


  

1 apiVersion: v1  

2 kind: ReplicationController  

3 metadata:  

4   name: kibana  

5   namespace: default  

6   labels:  

7     component: elk  

8     name: kibana  

9 spec:  

10   replicas: 1  
11   selector:
  
12     component: elk
  
13     name: kibana
  
14   template:
  
15     metadata:
  
16       labels:
  
17         component: elk
  
18         name: kibana
  
19     spec:
  
20       containers:
  
21       - name: kibana
  
22         image: 10.XXX.XXXX.XXX:5000/gridsum/ld/kibana:4.5
  
23         env:
  
24         - name: KIBANA_ES_URL
  
25           value: "http://10.XXX.XXX.XXX:9200"
  
26         ports:
  
27           - containerPort: 5601
  
28             name: http
  
29             protocol: TCP
  


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

  

1 apiVersion: v1  

2 kind: Service  

3 metadata:  

4   name: kibana  

5   namespace: default  

6   labels:  

7     component: elk  

8     name: kibana  

9 spec:  

10   type: NodePort  

11   ports:  

12   - port: 5601  
13     targetPort: 5601
  
14     nodePort: 30601
  
15   selector:
  
16     component: elk
  
17     name: kibana
  


View Code  =================================================================================================
  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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432039-1-1.html 上篇帖子: 小米云深度学习平台的架构设计与实现 下篇帖子: 2016.11.4 Injection of autowired dependencies failed
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表