[云原生专题-52]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 搜索中间件Elasticsearch微服务部署过程

网友投稿 251 2022-10-21

[云原生专题-52]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 搜索中间件Elasticsearch微服务部署过程

作者主页(​​文火冰糖的硅基工坊​​​):​​文火冰糖(王文兵)的博客_文火冰糖的硅基工坊​

​目录​

​​前言:​​

​​第1步:前置条件​​

​​1.1 在Kubesphere选择项目空间(名字空间)​​

​​1.2 在dockerhub找到Redis部署的所需要配置参数​​

​​1.3 Redis server部署的规划​​

​​1.4 预先在微服务外部创建PVC持久化卷​​

​​1.5 预先在微服务外部创建的配置文件​​

​​第2步:部署Redis 微服务​​

​​2.1 安装容器镜像​​

​​2.2 挂在外部数据持久化卷​​

​​2.3 挂载外部配置文件(这一步是关键)​​

​​2.4 检查镜像安装情况​​

第​​3步:为Redis部署创建Service对象​​

​​3.1 创建clusterIP service对象(只能集群内部访问)​​

​​3.2 创建NodePort service对象(可以通过公网访问微服务)​​

前言:

Elasticsearch是微服务业务应用程序的中间件,其本身也是微服务,可以单独部署,遵循微服务部署基本过程。

Elasticsearch是一个基于​​Lucene​​​的搜索服务器。它提供了一个分布式多用户能力的​​全文搜索引擎​​​,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于​​云计算​​中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

第1步:前置条件

1.1 在Kubesphere选择项目空间(名字空间)

1.2 在dockerhub找到Redis部署的所需要配置参数

​(1)docker hub主页​

​​Docker Hub​​

​(2)search “Elasticsearch” ​

​​docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag$ docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d --name ES01 elasticsearch:7.2.0

1.3 Redis server部署的规划

(1)挂载用于数据持久化的卷

(2)挂载目录中的两个配置文件,而不是整个目录,这是与Redis和MySQL不一样的地方。

如果亦然采用挂载整个目录的方式,会导致部分文件被清空。

这里只选择elasticsearch.yml为例。并且这里的配置文件,并不是有容器外部创建的,而是由Elasticsearch镜像自己创建,只是暴露到docker外部,以便于docker外部可以修改该文件。

也就是说,初始的配置文件,并非在容器外生成!!!

1.4 预先在微服务外部创建PVC持久化卷

方法可以同mysql, 但这里采用不创建,由Kubesphere在创建微服务时候,自动创建(推荐做法)

1.5 预先在微服务外部创建的配置文件

# Elasticsearch.yaml configurationcluster.name:"docker-cluster"network.host:0.0.0.0

第2步:部署Redis 微服务

2.1 安装容器镜像

2.2 挂在外部数据持久化卷

2.3 挂载外部配置文件(这一步是关键)

这里有几个关键的地方:

(1)挂载的容器的路径是子路径,而不是根目录,子路径中指定的是容器内部要挂载出去的配置文件的文件名。

(2)对应的容器外的路径由es-conf指定,es-conf里面有可能多个文件,因此需要指出容器内的文件映射到容器外的文件的名字。这里选择相同名字。

2.4 检查镜像安装情况

进入容器,检查配置文件是否正确。

第3步:为Redis部署创建Service对象

3.1 创建clusterIP service对象(只能集群内部访问)

名字不容易记忆,删除该默认服务,创建一个新的clusterIP service

进入ES pod内部,通过测试如下的访问命令

# 通过service name访问微服务$ curl his-es.his:9200

3.2 创建NodePort service对象(可以通过公网访问微服务)

​在集群外(公网主机),通过IE浏览器访问:​

# 通过service name访问微服务$ http://公网IP地址:31300

作者主页(​​文火冰糖的硅基工坊​​​):​​文火冰糖(王文兵)的博客_文火冰糖的硅基工坊​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[云原生专题-26]:K8S - Kubernetes(K8S)Master集群构建与安装过程详细解读 - master节点的添加
下一篇:Java十分钟快速掌握Stream流
相关文章

 发表评论

暂时没有评论,来抢沙发吧~