三台centos服务器使用docker部署es集群
时间: 2023-11-29 07:04:31 浏览: 112
1. 首先,在三台CentOS服务器上安装Docker和Docker Compose。
2. 在其中一台服务器上创建一个Docker网络,以便容器可以相互通信。
```
$ docker network create es_network
```
3. 在每台服务器上创建一个目录,用于存储Elasticsearch配置文件、数据和日志。
```
$ mkdir -p /data/es/config
$ mkdir -p /data/es/data
$ mkdir -p /data/es/logs
```
4. 在其中一台服务器上创建一个Elasticsearch配置文件,例如:
```
cluster.name: my-es-cluster
node.name: node-1
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["192.168.1.2", "192.168.1.3"]
discovery.zen.minimum_master_nodes: 2
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
```
将该配置文件保存为 /data/es/config/elasticsearch.yml。
5. 创建一个Docker Compose文件,例如:
```
version: '3'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
container_name: es01
environment:
- node.name=node-1
- cluster.name=my-es-cluster
- network.host=0.0.0.0
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /data/es/config:/usr/share/elasticsearch/config
- /data/es/data:/usr/share/elasticsearch/data
- /data/es/logs:/usr/share/elasticsearch/logs
ports:
- "9200:9200"
- "9300:9300"
networks:
- es_network
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
container_name: es02
environment:
- node.name=node-2
- cluster.name=my-es-cluster
- network.host=0.0.0.0
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /data/es/config:/usr/share/elasticsearch/config
- /data/es/data:/usr/share/elasticsearch/data
- /data/es/logs:/usr/share/elasticsearch/logs
networks:
- es_network
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
container_name: es03
environment:
- node.name=node-3
- cluster.name=my-es-cluster
- network.host=0.0.0.0
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /data/es/config:/usr/share/elasticsearch/config
- /data/es/data:/usr/share/elasticsearch/data
- /data/es/logs:/usr/share/elasticsearch/logs
networks:
- es_network
networks:
es_network:
driver: bridge
```
将该文件保存为 docker-compose.yml。
6. 在每台服务器上启动Docker Compose。
```
$ docker-compose up -d
```
这将启动三个Elasticsearch容器,并将它们连接成一个集群。
7. 验证Elasticsearch集群是否正常工作。
```
$ curl -XGET http://localhost:9200/_cluster/health?pretty
```
如果一切正常,您应该看到一个JSON响应,指示集群状态为“绿色”。
阅读全文