3

swarm を有効にして Docker 1.12.2 ビルド bb80604 を使用しています

私は持っている

  • 2 つのリーダー ノードと 3 つのスレーブ ノードを備えた swarm クラスター。
  • スレーブ ノードとリーダー ノードのそれぞれに名前付きボリューム。
  • 2 台のマスター サーバーで実行されている Elistacsearch

ボリューム作成コマンド

docker volume create -d local-persist -o mountpoint=/data/docker/swarm/elasticsearch --name esvolume

docker service create コマンドを実行して Elasticsearch の 5 つのレプリカを作成すると、3 つのノード (各スレーブ サーバーに 1 つ) が起動しますが、残りの 2 つのレプリカは失敗します。

docker service create --replicas 5 --name esdata \
--restart-max-attempts 5 --network myesnetwork \
-e CLUSTER_NAME=swarmescluster \
-e MASTER_NODES=esmaster \
--mount type=volume,src=esvolume,dst=/var/lib/elasticsearch \
--mount type=volume,src=esvolume,dst=/var/log/elasticsearch \
myimagename

失敗時のエラーは

原因: java.lang.IllegalStateException:ノード ロックの取得に失敗しました。[[/var/lib/elasticsearch/swarmescluster]] を試行しましたロック ID [0] 付き。おそらく、これらの場所は書き込み可能ではないか、[node.max_local_storage_nodes] を増やさずに複数のノードが開始されました ([1] でした)? org.elasticsearch.env.NodeEnvironment.(NodeEnvironment.java:259) で ~[elasticsearch-5.0.0.jar:5.0.0] org.elasticsearch.node.Node.(Node.java:240) で ~[elasticsearch- 5.0.0.jar:5.0.0] at org.elasticsearch.node.Node.(Node.java:220) ~[elasticsearch-5.0.0.jar:5.0.0] at org.elasticsearch.bootstrap.Bootstrap$5. (Bootstrap.java:191) ~[elasticsearch-5.0.0.jar:5.0.0] at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:191) ~[elasticsearch-5.0.0.jar:5.0. 0] org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286) で ~[elasticsearch-5.0.0.jar:5.0.0]

質問

  1. 同じパスまたは動的パスに書き込むようにレプリカを構成するにはどうすればよいですか (永続データが必要です)
  2. レプリカの作成時に「node.max_local_storage_nodes」の値を設定したい場合、ランタイムでどのように設定しますか?
4

0 に答える 0