LoginSignup
35
36

More than 5 years have passed since last update.

Dockerで簡単にElasticsearchのクラスタを試してみる

Posted at

やりたいこと

Dockerを使って手軽にElasticsearchクラスタを作る

環境

  • Windows8(ホスト)
  • CoreOS(仮想マシン)
  • Docker(仮想コンテナ)

環境の準備

CoreOSの準備

VirtualBoxとVagrantをインストールする

ダウンロード先は以下
https://www.virtualbox.org/wiki/Downloads
http://www.vagrantup.com/downloads.html

coreos-vagrantをインストールする

Windows
git clone https://github.com/coreos/coreos-vagrant/
cd coreos-vagrant

coreos起動

Windows
vagrant up

CoreOSにログイン

Windows
vagrant ssh

dockerの準備

ここからはCoreOSでの作業になります

Dockerfileの作成

公式のイメージにHEADプラグインを追加したいのと、ノード名を環境変数で指定したいのでDockerfileを作ります

Dockerfile
FROM dockerfile/elasticsearch

RUN /elasticsearch/bin/plugin --install mobz/elasticsearch-head
RUN sed -ri 's/^#node\.name.*/node.name: "${NODE_NAME}"/g' /elasticsearch/config/elasticsearch.yml

EXPOSE 9200

CMD  /elasticsearch/bin/elasticsearch

Dockerfileをビルドする

CoreOS
docker build -t trial/elasticsearch .

これで準備完了

クラスタの確認

nodeを起動してみる

CoreOS
docker run -d -p 9201:9200 -e "NODE_NAME=es1" --name es1 trial/elasticsearch

-p で9201ポートをElasticsearchの9200にポートフォワード
-e "NODE_NAME=es1"で環境変数を設定
--name で起動したコンテナにes1という名前をつけています

ブラウザからアクセス

ちゃんと起動してます。
es1.png

データ投入

とりあえず適当なデータを投入すると

CoreOS
curl -XPUT 'http://localhost:9201/twitter/tweet/1' -d '{
    "user" : "kimchy",
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}'

indexが作成されshardの状況が表示されました

create_index.png

nodeを追加してみる

CoreOS
docker run -d -p 9202:9200 -e "NODE_NAME=es2" --name es2 trial/elasticsearch

nodeが自動でクラスタに追加されてreplicaが作られました。
cluster healthもgreenになっています。

es2.png

replica.png

更に追加

CoreOS
docker run -d -p 9203:9200 -e "NODE_NAME=es3" --name es3 trial/elasticsearch

いい感じに分散されました

es3.png

次は

クラスタ環境ができたので、nodeを落としたり上げたりして色々試してみようと思います。

35
36
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
36