#elasticsearch #browser #nodes #cluster-computing
#эластичный поиск #браузер #узлы #кластерные вычисления
Вопрос:
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.9.1
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
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.9.1
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
volumes:
- data02:/usr/share/elasticsearch/data
ports:
- 9201:9201
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.9.1
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
volumes:
- data03:/usr/share/elasticsearch/data
ports:
- 9202:9202
networks:
- elastic
kib01:
image: docker.elastic.co/kibana/kibana:7.9.1
container_name: kib01
ports:
- 5601:5601
environment:
ELASTICSEARCH_URL: http://es01:9200
ELASTICSEARCH_HOSTS: http://es01:9200
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
Я пытаюсь понять, как работают узлы кластера elasticsearch, где конечные клиенты могут получить доступ к кластеру через любой из узлов. Роли узлов сохраняются по умолчанию, чтобы быть главными и хранить данные.
Запустив этот кластер elasticsearch из руководства, я могу получить доступ к узлу es01 через браузер. однако es02 и es03 недоступны. Я получаю сообщение «Соединение было сброшено» в firefox.
Теперь должны ли узлы 2 и 3 быть доступны через браузер или нет?
Ответ №1:
В вашем файле docker-compose, es01, es02 и es03, запустите наш контейнер с портом 9200 списка по умолчанию (этот порт может быть установлен в файле конфигурации).
Так что все в порядке, когда вы проверяете localhost: 9200, у вас есть ответ es01, но когда вы проверяете localhost: 9201, это указывает на es02: 9201, и на этом процесс не прослушивает этот порт, в контейнер, es02 прослушивает 9200. Та же проблема для es03.
Чтобы исправить это, просто измените порт сопоставления в вашем файле docker-compose. Это должно выглядеть так, например, для es02 :
ports:
- 9201:9200
Комментарии:
1. О, конечно ….. теперь вопрос кажется глупым. Да, изменение карт на 9201: 9200, 9202: 9200 работает. es02 и es03 теперь доступны. Спасибо.