Невозможно получить доступ к 2 из 3 узлов в кластере elasticsearch (только сначала) через браузер с http://localhost:9200 , 9201, 9203. Нормально ли это и почему?

#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 теперь доступны. Спасибо.