目录
上一篇文章
概述
本次主要是单集群多节点部署,由于elasticsearch 7版本以后不支持单机多实例,所以本文采用的是两台物理机进行部署
es版本:9.1.2
节点一
物理机配置
系统:MAC
解压后,修改elasticsearch.yml文件
#集群名字
cluster.name: testCluster
#节点名字
node.name: node-1
#对外绑定的ip
network.host: 192.168.0.115
#对外支持的端口
http.port: 9200
#节点间通信的端口
transport.port: 9300
#集群初始化的主节点
cluster.initial_master_nodes: ["node-1"]
#https支持
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
以上配置都是必须的
对外绑定的ip和端口用于节点服务发现
节点间通信的端口用于节点间通信
https支持提供通过token加入集群功能
集群初始化的主节点不配置会导致其他节点无法发现集群master节点
启动elasticsearch
查看节点是否正常
https://localhost:9200/_cat/nodes
https://localhost:9200/
执行命令生成token
➜ bin elasticsearch-create-enrollment-token -s node --url "https://192.168.0.115:9200"
warning: ignoring JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home; using bundled JDK
eyJ2ZXIiOiI4LjE0LjAiLCJhZHIiOlsiMTkyLjE2OC4wLjExNTo5MjAwIl0sImZnciI6IjdkODI1YjJmMWMxNDRhMGQ0YzU2YTA1N2Q5ZGNiZDNlZTM2MmQxN2Y2ODg4ZGNiM2I1Nzc3ZmUxYzQ4NTUzNWQiLCJrZXkiOiJVdEV1MkpnQjhWOFdXYkU3cWJ1ZDp4OFFqWmJjTENMcjZ6eklraFBkc1ZRIn0=
–url最好加上,否则可能会出现从节点访问失败的问题
记录下返回值,从节点加入时需要使用
节点二
物理机配置
系统:Windows
解压后,修改elasticsearch.yml文件
#集群名字
cluster.name: testCluster
#节点名字
node.name: node-2
#对外绑定的ip
network.host: 192.168.0.128
#对外支持的端口
http.port: 9200
#节点间通信的端口
transport.port: 9300
#直接指定发现的节点一
discovery.seed_hosts: ["192.168.0.115:9300"]
在命令行执行启动命令(不要用bat)
elasticsearch --enrollment-token
TOKEN是节点一生成的
F:\workspace\elasticsearch-9.1.2-windows-x86_64\elasticsearch-9.1.2\bin>elasticsearch --enrollment-token eyJ2ZXIiOiI4LjE0LjAiLCJhZHIiOlsiMTkyLjE2OC4wLjExNTo5MjAwIl0sImZnciI6IjdkODI1YjJmMWMxNDRhMGQ0YzU2YTA1N2Q5ZGNiZDNlZTM2MmQxN2Y2ODg4ZGNiM2I1Nzc3ZmUxYzQ4NTUzNWQiLCJrZXkiOiJVdEV1MkpnQjhWOFdXYkU3cWJ1ZDp4OFFqWmJjTENMcjZ6eklraFBkc1ZRIn0=
启动完毕,访问节点一
https://192.168.0.115:9200/_cat/nodes
可能遇到的问题
1 节点二启动时报错
原因:
1 节点一没有绑定ip
2 节点一生成的token对应的url和节点二发现的https://192.168.0.115:9200不一致
3 发现加入集群服务使用https链接,节点一没有开启https支持会导致访问不到
解决方案:
1 加上绑定配置
2 生成token命令中加上url指定(url必须是有效的才能生成token)
3 节点一开启https服务
2 节点二启动后,没找到节点一
原因:
1 节点一没有配置9300端口,导致节点二请求失败
解决方案:
1 节点一加上9300端口配置
3 节点二启动并找到节点一,但加入集群失败
原因:
1 节点一和节点二版本不一致,可以通过看log来判断
Caused by: java.lang.IllegalStateException: index [.security-7/-dQ3_vgwT7eixer_KAq45g] version not supported: 9.1.0-9.1.2 maximum compatible index version is: 9.0.0-9.0.4
at org.elasticsearch.cluster.coordination.NodeJoinExecutor.ensureIndexCompatibility(NodeJoinExecutor.java:422) ~[elasticsearch-9.0.4.jar:?]
at org.elasticsearch.cluster.coordination.NodeJoinExecutor.lambda$addBuiltInJoinValidators$11(NodeJoinExecutor.java:560) ~[elasticsearch-9.0.4.jar:?]
at org.elasticsearch.cluster.coordination.Coordinator.lambda$validateJoinRequest$11(Coordinator.java:723) ~[elasticsearch-9.0.4.jar:?]
at java.util.ArrayList.forEach(ArrayList.java:1604) ~[?:?]
解决方案:
1 保持一致的版本