Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

やりたいこと

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を落としたり上げたりして色々試してみようと思います。

jun-1
genuine
確かな技術力と誠実な人間力、ユーザー目線の業務スキルで本当に必要とされるシステムを構築する会社です。
https://genuine-pt.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした