0

ES (Elasticsearch) クラスターをどのようにデプロイしますか?

システムのデプロイに Docker Swarm + Compose を使用し、.yml で ES クラスターをデプロイしようとしています。

version: '3.3'  
services:  
  elasticsearch:
    image: elasticsearch:alpine
    ports:
      - '9200:9200'
      - '9300:9300'
    command: [ elasticsearch, -E, network.host=0.0.0.0, -E, discovery.zen.ping.unicast.hosts=elasticsearch, -E, discovery.zen.minimum_master_nodes=1, -E, cluster.name=mycluster ]
    networks:
      - esnet1
    environment:
        ES_JAVA_OPTS: "-Xmx512m -Xms512m"
    deploy:
      mode: replicated
      replicas: 2
      #endpoint_mode: dnsrr
      resources:
        limits:
          cpus: '2'
          memory: 1024M
        reservations:
          cpus: '0.50'
          memory: 512M

networks:
  esnet1:

Call request<ip>:9200/_cat/nodes?v単一のインスタンスが表示されます。問題https://github.com/elastic/elasticsearch-docker/issues/91は、Docker のバグであり、修正されると述べています。それはいいのですが、クラスタのない ES は ES ではありません! インターネットでは、マスターとスレーブとして異なるサービスを展開する人がいるのを見ましたが、それは不器用な解決策です.ES自体が誰がマスターで誰がそうでないかを決定し、有能にそれを行います. 興味深い質問: ES クラスターをどのようにデプロイしますか?

4

1 に答える 1