Elasticsearch容器技术
Elastic官网:https://www.elastic.co/cn/
Elastic容器技术文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.10/docker.html#docker-cli-run-dev-mode
一.基础环境
机器内存需要4G或4G以上
[root@Docker elasticsearch]# free -h
total used free shared buff/cache available
Mem: 3.7G 2.8G 197M 11M 689M 414M
Swap: 2.0G 2.8M 2.0G
1.获取镜像
使用7.10.0版本
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.0
2.设置内存映射
sysctl -w vm.max_map_count=262144 > /etc/sysctl.conf
sysctl -p
sysctl -w vm.max_map_count=262144
vm.max_map_count = 262144 #显示结果
3.增大文件句柄和连接数
在 /etc/security/limits.conf 文件末尾修改或添加如下内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
4.增加nofile和nproc的ulimit
docker run --rm centos /bin/bash -c 'ulimit -Hn && ulimit -Sn && ulimit -Hu && ulimit -Su'
1048576
1048576
unlimited
unlimited
二.配置Docker-compose
mkdir elastic #创建elastic目录
cd elastic #进入elastic目录
vim docker-compose.yml #编写一个docker-compose
编写内容如下:
version: '3'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nproc: 65535
nofile: 65535
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nproc: 65535
nofile: 65535
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nproc: 65535
nofile: 65535
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
1.启动Docker-compose
docker-compose up
2.切换一个终端验证结果
es01节点
docker-compose exec es01 curl -X GET "localhost:9200/_cat/nodes?v=true&pretty"
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.25.0.4 47 97 37 1.88 1.50 0.87 cdhilmrstw * es03
172.25.0.2 54 97 35 1.88 1.50 0.87 cdhilmrstw - es02
172.25.0.3 16 97 34 1.88 1.50 0.87 cdhilmrstw - es01
es02节点
docker-compose exec es02 curl -X GET "localhost:9200/_cat/nodes?v=true&pretty"
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.25.0.4 48 96 16 1.73 1.48 0.87 cdhilmrstw * es03
172.25.0.2 56 96 16 1.73 1.48 0.87 cdhilmrstw - es02
172.25.0.3 17 96 16 1.73 1.48 0.87 cdhilmrstw - es01
es03节点
docker-compose exec es03 curl -X GET "localhost:9200/_cat/nodes?v=true&pretty"
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.25.0.4 64 97 6 0.15 0.19 0.31 cdhilmrstw * es03
172.25.0.2 32 97 6 0.15 0.19 0.31 cdhilmrstw - es02
172.25.0.3 28 97 6 0.15 0.19 0.31 cdhilmrstw - es01