步骤一、先建立elaticsearch配置映射(configMap)
映射键:elasticsearch.yml
映射值:
cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.security.enabled: false
xpack.security.authc.accept_default_password: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
http.cors.enabled: true
http.cors.allow-origin: "*"
对应的操作图如下:
步骤二、建立elasticsearch 工作负载-部署配置
工作负载配置界面的信息如下:
镜像地址:
daocloud.io/library/elasticsearch:7.7.1
挂载路径:
/usr/share/elasticsearch/config/elasticsearch.yml
挂载子路径:
elasticsearch.yml
环境变量:
ES_JAVA_OPTS : -Xms64m -Xmx128m
discovery.type : single-node
elasticsearch.yml挂载的configmap内容如下:
其中如果xpack.security.enabled: false属性配置为false则不需要密码就可以访问elasticsearch,
如果配置成 true,则需要账号密码才能访问elasticesearch
cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.security.enabled: false
xpack.security.authc.accept_default_password: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
对应的操作图如下:
步骤三: 工作负载配置完,容器启动后,配置elasticsearch的用户名与密码,为了方便,所有用户统一输入elastic
进入pod容器内部需要执行的命令如下:
bin/elasticsearch-setup-passwords interactive
然后输入按提示继续输入y , 然后一直输入elastic , 配置所有用户的密码为elastic
操作图如下:
步骤四、验证elasticsearch 是否可以访问
由于配置的是节点端口访问:
所以输入节点的地址+端口, http://master:30002 (自己根据实际情况填写 , 我这里的master 在host中配置了节点的ip的)
然后输入用户名elastic 密码 elastic 即可
操作图如下:
步骤五: 可以通过配置负载均衡域名来访问es
具体可以参考以下截图进行配置
配置完后,就可以通过负载均衡域名访问es,
直接输入http://负载均衡域名即可
假设负载均衡域名是 elasticsearch.com
则访问地址是 http://elasticsearch.com/
访问成功截图如下:
注意点:
1. 数据卷映射-模式输入框 最好输入 777 保证挂载的文件权限没问题
2. 数据卷的容器路径需要填写elasticserach.yml的全路径,且子路径输入框 elasticsearch.yml 需要与挂载的配置映射下的 键名 elasticsearch.yml 保持一致
如下两个操作的红色框保持一致,
如果配置映射键名为elasticsearch.yml 则子路径填写的也应该是elasticsearch.yml,
代表容器路径的内容,挂载的是配置映射对应的elasticsearch.yml的键值的内容
如果配置映射键名为elasticsearch2.yml 则子路径填写的也应该是elasticsearch2.yml,
代表容器路径的内容,挂载的是配置映射对应的elasticsearch2.yml的键值的内容
如下图所示:
3. 由于配置了权限访问,故访问elasticsearch-restful-api 接口时需要指定用户名,如下所示为 创建索引接口调用形式:
curl -XPUT -u elastic master:30002/product ,然后输入密码elastic
操作图如下:
对应的docker容器启动命令
docker run
--name elasticsearch -p 9200:9200 \ -p 9300:9300 \
-e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
\ -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data
\ -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ -d elasticsearch:7.7