В настоящее время я пытаюсь развернуть кластер Elasticsearch с 3 узлами на одном экземпляре EC2 (т. Е. Используя только ОДИН экземпляр) с использованием файла docker-compose. Проблема в том, что я не смог заставить 3 узла взаимодействовать друг с другом, образуя кластер.
На моей машине с Windows 10 я использовал официальный образ Elasticsearch: 6.4.3, в то время как для AWS EC2 я использую собственный образ Elasticsearch: 6.4.3 с плагином ec2-discovery , установленным там, где я создаю используя команду " docker build -t mdasri / eswithec2disc. ". См. Файл Docker ниже.
Докер-файл:
FROM docker.elastic.co/elasticsearch/elasticsearch:6.4.3
RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch discovery-ec2
Мне удалось настроить 3-узловый кластер Elasticsearch локально с помощью docker-compose на моем компьютере с Windows 10. В моем файле docker-compose у меня есть 3 различных сервиса Elasticsearch для создания 3-узлов: es01, es02, es03. Я надеялся использовать тот же файл docker-compose для настройки кластера на экземпляре AWS EC2, но я столкнулся с ошибкой.
Я использую команду " ecs-cli compose -f docker-compose.yml up " для развертывания в AWS EC2. Состояние ecs-cli compose было следующим: «Запущен контейнер ...».
Итак, чтобы проверить состояние кластера, я набрал x.x.x.x / _cluster / health? Pretty , но получил сообщение об ошибке:
{
"error" : {
"root_cause" : [
{
"type" : "master_not_discovered_exception",
"reason" : null
}
],
"type" : "master_not_discovered_exception",
"reason" : null
},
"status" : 503
}
Когда я оцениваю каждый из журналов Docker-контейнеров в экземпляре EC2 после того, как я ssh-in, это ошибка, с которой я сталкиваюсь в ALL 3 контейнеров:
[2019-06-24T06: 19: 43,880] [WARN] [o.e.d.z.UnicastZenPing] [es01]
не удалось разрешить хост [es02]
Это мой файл docker-compose для соответствующей службы AWS EC2 :
version: '2'
services:
es01:
image: mdasri/eswithec2disc
container_name: es01
cpu_shares: 100
mem_limit: 2147482548
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
ports:
- "9200:9200"
- "9300:9300"
environment:
- "cluster.name=aws-cluster"
- "node.name=es01"
- "node.master=true"
- "node.data=false"
- "discovery.zen.hosts_provider=ec2"
- "discovery.zen.ping.unicast.hosts=es01, es02"
- "discovery.zen.minimum_master_nodes=2"
- "ES_JAVA_OPTS= -Xmx256m -Xms256m"
- "bootstrap.memory_lock=true"
volumes:
- /usr/share/elasticsearch/data
networks:
- esnet
es02:
image: mdasri/eswithec2disc
container_name: es02
cpu_shares: 100
mem_limit: 2147482548
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
environment:
- "cluster.name=aws-cluster"
- "node.name=es02"
- "node.master=true"
- "node.data=false"
- "discovery.zen.hosts_provider=ec2"
- "discovery.zen.ping.unicast.hosts=es01, es02"
- "ES_JAVA_OPTS= -Xmx256m -Xms256m"
- "bootstrap.memory_lock=true"
volumes:
- /usr/share/elasticsearch/data
networks:
- esnet
es03:
image: mdasri/eswithec2disc
container_name: es03
cpu_shares: 100
mem_limit: 2147482548
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
environment:
- "cluster.name=aws-cluster"
- "node.name=es03"
- "node.master=false"
- "node.data=true"
- "discovery.zen.hosts_provider=ec2"
- "discovery.zen.ping.unicast.hosts=es01,es02"
- "ES_JAVA_OPTS= -Xmx256m -Xms256m"
- "bootstrap.memory_lock=true"
volumes:
- /usr/share/elasticsearch/data
networks:
- esnet
networks:
esnet:
Пожалуйста, помогите мне, так как я застрял в этой проблеме в течение последних 1-2 недель.
П.С .: Пожалуйста, дайте мне знать, какая другая информация вам нужна, ребята. Спасибо!