KubeSphere部署:(二)Elasticsearch,IK分词器,Kibana

Elasticsearch自带的分词器对中文支持不好,所以需要安装ik分词器。如果直接用docker部署并运行,可以把分词器的目录挂载出来,然后把下载好的分词器放到对应目录即可,或者不挂载目录,直接把分词器复制到容器内也可以。

使用KubeSphere进行部署的话,不直接访问宿主机的情况下,没法往容器中复制文件,况且通常kubernetes都是集群部署,复制文件操作不便,服务迁移时也会造成额外的工作量。最好的办法就是把ik分词器打包到Elasticsearch镜像中,二者融为一体。

一、构建带有IK分词器的Elasticsearch镜像

1.拉取Elasticsearch&下载ik分词器

Elasticsearch和ik分词器需要对应版本,经多次测试后,找到了版本号一致且相对较新的版本8.11.1,ES镜像拉取命令及分词器下载地址如下:

# es8.11.1镜像拉取命令
docker pull elasticsearch:8.11.1

# ik分词器下载地址
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.11.1/elasticsearch-analysis-ik-8.11.1.zip

# 拼音分词器下载地址(该处记录地址备用,下面的打包未包含该分词器)
https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v8.11.1/elasticsearch-analysis-pinyin-8.11.1.zip

2.运行Elasticsearch容器

运行容器的时候,不要挂载插件目录,因为我们要把ik分词器插件复制到容器内部再重新打包。启动命令如下:

# es容器启动命令
docker run -d \
	--name es \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v es-data:/usr/share/elasticsearch/data \
    --privileged \
    -p 9200:9200 \
    -p 9300:9300 \
elasticsearch:8.11.1

# 指定插件挂载路径参数(直接docker启动时可以加上这个参数)
-v es-plugins:/usr/share/elasticsearch/plugins

3.将ik分词器复制文件复制到Elasticsearch容器中

将下载好的ik分词器压缩包加压缩到ik文件夹下,并将整个文件夹复制到容器的“/usr/share/elasticsearch/plugins”目录下

# 1.把下载好的压缩包复制到制作镜像的linux系统中

# 2.创建ik目录
mkdir ik

# 3.把压缩包复制到ik目录下
cp elasticsearch-analysis-ik-8.11.1.zip ik/

# 4.将压缩包解压
cd ik
unzip -o elasticsearch-analysis-ik-8.11.1.zip

# 5.删除压缩包,只保留加压缩后的文件
rm -f elasticsearch-analysis-ik-8.11.1.zip

# 6.将ik文件夹复制到运行中的es容器中
# ./ik/ 写的是相对路径,改为绝对路径也可以
# 83a2c6991dd4为运行中的容器的id,可以通过 docker ps 命令查看
cd ..
docker cp ./ik/ 83a2c6991dd4:/usr/share/elasticsearch/plugins

复制压缩包及解压缩截图

删除压缩包,查看容器id,复制文件截图

在容器内部,查看插件目录截图

4.打包带有ik分词器的Elasticsearch镜像,并推送到harbor


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值