Добавление нового узла в кластерasticsearch, созданный с помощью docker-compose - PullRequest
0 голосов
/ 09 июня 2018

Я создал простой «кластер» эластичного поиска на моей локальной машине (mac) с помощью docker-compose.Конфигурация показана ниже

version: '2.2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4
    environment:
      - cluster.name=elasticsearch
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "index.number_of_replicas: 1"
      - "index.number_of_shards: 2"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - esnet

volumes:
  esdata1:
    driver: local

networks:
  esnet:

Теперь я хотел бы добавить новый узел es в этот кластер, но я не уверен, как действовать дальше.Я попытался запустить Docker-контейнер с помощью команды:

docker run -e "cluster.name=elasticsearch" -e "bootstrap.memory_lock: true" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -e "discovery.zen.ping.unicast.hosts=localhost:9200" -e "network.host: _local_"  -v esdata2:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:6.2.4

Но это, кажется, создает отдельный кластер / узел, потому что, когда я пытаюсь получить доступ к http://127.0.0.1:9200/_cluster/health?pretty, я все еще вижу только один узел:

{
  "cluster_name" : "elasticsearch",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 1,
  "active_shards" : 1,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

Я не уверен, как еще мне следует создать новый узел es и добавить его в мой кластер.Нужно ли снова использовать docker-compose или флаги, которые я указал в моем docker run, неверны?

1 Ответ

0 голосов
/ 10 июня 2018

Как написано в официальном документе Elasticsearch

, вам необходимо указать узлы в файле docker-compose.yml, как здесь:

version: '2.2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4
    container_name: elasticsearch
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - esnet
  elasticsearch2:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4
    container_name: elasticsearch2
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=elasticsearch"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata2:/usr/share/elasticsearch/data
    networks:
      - esnet

volumes:
  esdata1:
    driver: local
  esdata2:
    driver: local

networks:
  esnet:
...