Mesos の起動、Qiita には Vagrant を使う例 があり、仮想サーバを実際に複数台立てた場合の挙動を見るには有用ですが、もっと気軽に、最新の Marathon の挙動を見たい程度であればちょっと重い気もします。
ので、docker-compose でサクッと起動できるものを使います。
初回起動まで 10 分1 ほどでした。2 回目以降は超速。
起動確認まで
1. git clone
git clone https://github.com/bobrik/mesos-compose
cd mesos-compose
2. 起動
Docker Quickstart Terminal を起動2 して、
export DOCKER_IP=$(docker-machine ip)
echo $DOCKER_IP
make start
16.07.03 現在、以下の Docker イメージを pull します。
どれもかなり新しいバージョンですね3 :)
image | tag | transfer data size |
---|---|---|
bobrik/zookeeper | latest | 158 MB |
mesosphere/mesos-master | 1.0.0-1.0.59.rc1.ubuntu1404 | 208 MB |
mesosphere/mesos-slave | 1.0.0-1.0.59.rc1.ubuntu1404 | 208 MB |
mesosphere/marathon | v1.2.0-RC3 | 359 MB |
3. ログ確認 & 接続
Mesos 自体のログはこれでみれます。
$ docker-compose logs -f
ブラウザから Web UI に接続してみましょう。
Mesos: http://$DOCKER_IP:5050/
Marathon: http://$DOCKER_IP:8080/
Marathon でアプリを起動
GitHub の README に従えば
make APP=example deploy
これでサンプルが起動しますが、起動画面がつまらないので Marathon の GUI から別のアプリを起動してみます。
1. Marathon の Web UI に接続
Marathon: http://$DOCKER_IP:8080/
2. アプリ作成
2.1. Create Application
を押して
2.2. ID
を指定。例えば /hello
など。
2.3. 左の Docker Container
メニューを開き、Image
には dockercloud/hello-world
を入力、Network
は Bridged
を選択。
2.4. 左の Ports
メニューを開き、Container Port
に 80
を入力して、右下の Create Application
を押します。
3. アプリへの接続
3.1. Marathon のアプリ一覧画面で該当のアプリの Status
が Running
になったら、先ほど指定した ID
をクリック。
3.2. ID 欄の下に、エンドポイントが表示されています。これをクリックしましょう!
繋がりましたか?
あとは Marathon-LB でロードバランスしたり、ノードを増やしたり、アプリケーションをスケールさせたりすることになります。
停止
以下のコマンドで停止します。
make destroy
もしくは docker-compose コマンドでも OK。
docker-compose stop
docker-compose rm -a
ただし、Marathon で起動したアプリは掃除してもらえません。
別途 stop なり rm しましょう。
その他オプション
GitHub の README に記載がありますが一応。
・2 つめの Mesos Slave を起動する
docker-compose.yml
の slave-two:
以下のコメントを外し起動し直します。
・Chronos を起動する
docker-compose.yml
の chronos:
以下のコメントを外し起動し直します。Chronos の Web UI はポート 8888 で待機します。
http://$DOCKER_IP:8888/