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

Posted 文火冰糖的硅基工坊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[云原生专题-52]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 搜索中间件Elasticsearch微服务部署过程相关的知识,希望对你有一定的参考价值。

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

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122931767


目录

前言:

第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”

https://hub.docker.com/_/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 configuration
cluster.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

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

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122931767

以上是关于[云原生专题-52]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 搜索中间件Elasticsearch微服务部署过程的主要内容,如果未能解决你的问题,请参考以下文章

[云原生专题-48]:Kubesphere云治理-操作-多租户概念概述

[云原生专题-46]:Kubesphere云治理-安装-在K8S的基础之上快速安装

[云原生专题-49]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 基本过程与步骤

[云原生专题-60]:Kubesphere云治理-DevOps-自动化开发与自动化上云部署流程概述

[云原生专题-47]:Kubesphere云治理-安装-在Linux平台上进行单机版安装

[云原生专题-53]:Kubesphere云治理-操作-通过Kubesphere应用商店一键部署微服务应用-消息中间件RabbitMQ的安装与部署