使用kuernetes提供高可用的kibana服务
在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服务的更多相关文章
- 使用kuernetes提供高可用的logstash服务
在kubernetes集群中部署logstash步骤如下: 1:logstash安装文件(目前最新版本2.3.4): 2:编写Dockerfile及执行点脚本文件run.sh,并且修改logstash ...
- heartbeat单独提供高可用服务
本文目录:1.简介2.安装heartbeat 2.1 编译安装Heartbeat3.heartbeat相关配置文件 3.1 配置文件ha.cf 3.2 配置文件authkeys 3.3 配置文件har ...
- 每天响应数亿次请求,腾讯云如何提供高可用API服务?
每天响应数亿次请求,腾讯云如何提供高可用API服务? https://mp.weixin.qq.com/s/OPwlHcqkaTT_gcwHfr5Shw 李阳 云加社区 2020-09-16 导语 | ...
- 搭建高可用的Redis服务,需要注意这些方面!
搭建高可用的Redis服务,需要注意这些方面! HorstXu 占小狼的博客 今天 ◎作者 | HorstXu www.cnblogs.com/xuning/p/8464625.html 基于内存的R ...
- [ Openstack ] Openstack-Mitaka 高可用之 网络服务(Neutron)
目录 Openstack-Mitaka 高可用之 概述 Openstack-Mitaka 高可用之 环境初始化 Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...
- [ Openstack ] Openstack-Mitaka 高可用之 计算服务(Nova)
目录 Openstack-Mitaka 高可用之 概述 Openstack-Mitaka 高可用之 环境初始化 Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...
- [ Openstack ] OpenStack-Mitaka 高可用之 镜像服务(glance)
目录 Openstack-Mitaka 高可用之 概述 Openstack-Mitaka 高可用之 环境初始化 Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...
- MaxCompute,基于Serverless的高可用大数据服务
摘要:2019年1月18日,由阿里巴巴MaxCompute开发者社区和阿里云栖社区联合主办的“阿里云栖开发者沙龙大数据技术专场”走近北京联合大学,本次技术沙龙上,阿里巴巴高级技术专家吴永明为大家分享了 ...
- suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用
文章目录 编译部署nginx 下载nginx源码包 编译nginx 配置nginx.conf 配置nginx为systemctl管理 分发nginx二进制文件和配置文件 启动kube-nginx服务 ...
随机推荐
- Android两个独立的应用跳转实现方式小结
在Android应用实现过程中,有时候会遇到应用之间相互跳转的情况,比如跳转至系统设置界面.WiFi设置界面.或者其它的用户实现的应用主界面等等.这里总结了几种常见的打开其它应用activity的方式 ...
- CentOS 6.4 下安装vsftpd
概述: vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个. 本文介绍了在CentOS 6.4下安装vsftpd.配置虚拟用户登录FTP的过程. 正文: 一:安装vsftp ...
- iOS运行时Runtime浅析
运行时是iOS中一个很重要的概念,iOS运行过程中都会被转化为runtime的C代码执行.例如[target doSomething];会被转化成objc)msgSend(target,@select ...
- 针对苹果最新审核要求为应用兼容IPv6
在WWDC2015上苹果宣布iOS9将支持纯IPv6的网络服务.2016年初开始所有提交到App Store的应用必须支持IPv6.为确保现有的应用是兼容的,我们需要注意下面几点. 不建议使用底层的网 ...
- Hibernate总结2 API和配置文件
1,Configuration 配置 获取config配置文件的方法 Configuration cfg = new Configuration(); cfg.下面的方法 configure() co ...
- 044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)
我们上上一篇文章(042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中)做的工作是把数据插入到了数据库,我们这篇文章做的是042医疗项目-模块四:采购单模块-采购单明细添加 ...
- Spring Security笔记:HTTP Basic 认证
在第一节 Spring Security笔记:Hello World 的基础上,只要把Spring-Security.xml里改一个位置 <http auto-config="true ...
- 【传递智慧】C++基础班公开课第六期培训
11月11日 二 213 进程间关系和守护进程 11月12日 三 213 信号 11月13日 四 11月14日 五 213 线程(创建,销毁,回收) 11月15日 六 213 线程同步机制 1 ...
- Block Chain, a protocol view
我做了个区块链的文档,给自己扫盲用的,有兴趣的可以看下,主要是自己画示意图比较好理解,示意图之后的专题部分,内容直接取自参考链接.网上的资料都是谈区块链有什么性质.有什么能力.有什么应用之类的,我主要 ...
- 分布式中使用Redis实现Session共享(一)
上一篇介绍了如何使用nginx+iis部署一个简单的分布式系统,文章结尾留下了几个问题,其中一个是"如何解决多站点下Session共享".这篇文章将会介绍如何使用Redis,下一篇 ...