動作確認
Mesos
VPNをつないだ状態で、ブラウザから http://192.168.200.11:5050/ にアクセスしてみましょう。 以下のようなページが表示されればOKです。 このとき、Mesosのリーダーサーバが11ではなかった場合は、現在のリーダーサーバに自動でリダイレクトされます。
また、FrameworkタブにはMarathonが、Slaveタブには二台のスレーブサーバが認識されているはずです。 スレーブサーバが認識されていない場合には、スレーブサーバを再起動してみてください。
Marathon
Marathonの管理画面は、 http://192.168.200.11:8080/ からアクセスできます。 Mesosと異なり、リーダーでないサーバに接続した場合でもリダイレクトはされません。 内部的にリーダーのサーバに対しリバースプロキシが行われる実装になっています。
アプリケーションのデプロイ
確認のために、DockerでNginxを起動させてみましょう。 DockerHubという、Docker公式のイメージリポジトリにNginxがあるため、簡単に利用することができます。
Marathonの画面で、左上の「Create」ボタンをクリックし、以下の内容を入力してください。
基本項目
- ID
nginx
(適当でよい)
Docker container settings
- Image
nginx
- Network
Bridged
- Port MappingsのContainer Port
80
- Port MappingsのProtocol
tcp
そして、青い「+Create」ボタンをクリックします。
そうすると、新しくタスクが登録され、StatusがDeployingから、Runningに変わります。
クリックすると詳細が確認できるので、クリックしてみます。
ここで、どのサーバのどのポートでNginxが動作しているか確認できます。
上図の場合だと、 192.168.200.21:31867
で稼働していることがわかるため、
http://192.168.200.21:31867/ へアクセスすると、Nginxのデフォルトのindex.htmlが表示されます。
スケール
ここからがクラスタリングの本領発揮です。
さきほどのタスクの詳細画面にある、Scale Application
ボタンをクリックし、表示されるテキストボックスに 5
と入力してみましょう。
すると、どうでしょう。しばらくすると5つNginxが起動していることが確認できるはずです。
また、1に戻すと、起動しているNginxは1つだけになります。
このように、MesosとMarathonを使うことで、いつでも好きな時に、好きなアプリケーションを好きな数だけ起動させることができるのです。