LoginSignup
3
4

More than 5 years have passed since last update.

Mesos & Marathon on Google Cloud Platform by Rancher ~Install & ‎Architecture~

Last updated at Posted at 2017-06-20

先日のMesos Meetup Tokyo #1でのLTで発表させていただ内容を実践的にした形でQiitaに投稿します。

RancherでMesosとMarathonやってみた!!の資料をベースとしています。

Rancher ServerとAgent環境を構築して、Mesos & Marathon環境も構築して、RancherのMesosのArchitecutreを考えてみたいと思います。

Rancher Server & Agent on GCP

今回は、Google Cloud Platformを利用して、Rancher Server 1台とAgentホスト 4台の環境を作成します。

01.png

※他のクラウドベンダー、オンプレミス環境でも構いません。

Compute Engineで以下の5インスタンスを作成します。

項目 入力概要
ゾーン asia-southeast1-a
マシンタイプ vCPUx1
ブートディスク Ubuntu 14.04 LTS
ファイアウォール HTTP トラフィックを許可する、HTTPS トラフィックを許可するの両方をチェックします。

GCPでは、デフォルトでファイアウォールが設定されていて、ホスト間でのコンテナの通信が行えないため、
設定を変更する必要があります。

GCPのダッシュボードで、「ネットワーキング」-「ファイアウォール」を選択して、ファイアウォールルールを作成します。

image.png

名前は任意名、ソースIPの範囲は0.0.0.0/0、プロトコルとポートは全て許可とします。
今回はお試しということで、全許可にしています。
最後に「作成」ボタンをクリックします。

Rancher Serverの構築

rootパスワードの設定

GCPではrootのパスワードがデフォルトでは設定されていないので、まずはrootのパスワードを設定します。
5インスタンスに任意のパスワードを設定します。

コマンド
$ sudo passwd root

Dockerのインストール

Dockerをインストールします。
前回の「Kubernetes on Google Cloud Platform by Rancher ~Install & ‎Architecture~」と同様に1.12.6をインストールします。
(※特に理由はありません)

5インスタンスにDockerをインストールします。

コマンド
$ curl https://releases.rancher.com/install-docker/1.12.6.sh | sh
.
.
.
Client:
 Version:      1.12.6
 API version:  1.24
 Go version:   go1.6.4
 Git commit:   78d1802
 Built:        Tue Jan 10 20:26:30 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.6
 API version:  1.24
 Go version:   go1.6.4
 Git commit:   78d1802
 Built:        Tue Jan 10 20:26:30 2017
 OS/Arch:      linux/amd64
.
.
.
Remember that you will have to log out and back in for this to take effect!

Rancher Serverのインストール

5インスタンスうちの1台に最新版のRancher Serverのコンテナをインストールします。
2017年6月現在Rancher Serverはv1.6.2となります。

コマンド
$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server

対象のインスタンスの外部IPにポート8080でブラウザからアクセスします。

http://外部IPアドレス:8080/

screencapture-35-186-144-37-8080-env-1a5-apps-stacks-1497185148604.png

1.「Got it」をクリックします。

2.下部メニューの言語選択から「日本語」を選択します。

image.png

3.上部メニューの「管理者」-「アクセスコントロール」を選択します。

image.png

4.「click here」をクリックします。

rancher03.png

5.GitHubのログイン画面が表示されます。ログインします。
※GitHubのアカウントを持っていない場合は作成しましょう。

rancher04.png

6.「Register a new Application」ボタンをクリックします。
rancher05.png

7.赤枠箇所を入力し、「Register application」ボタンをクリックします。

rancher06.png

8.「Client ID」および「Client Secret」が払い出されます。

rancher07.png

9.GitHubから払い出された「クライアント ID」および「クライアント秘密キー」を入力して「保存」をクリックします。

image.png

10.「GitHubアカウントで認証」ボタンをクリックします。

image.png

11.Rancher側の画面が切り替わり「GitHubは有効です」と表示されます。

image.png

Mesos環境テンプレートの作成

1.上部メニュー「環境管理」を選択します。

image.png

2.「環境追加」をクリックします。

image.png

3.「名前」に任意の名前を入力します。ここでは「Mesos」とします。「環境のテンプレート」でMesosのアイコンを選択します。「作成」をクリックします。

image.png

4.上部メニューから「Mesos」を選択します。

image.png

5.「ホストを追加」をクリックします。

image.png

Rancher Agentのインストール

1.赤枠のコマンドをコピーして、残り4台にペーストし、「閉じる」をクリックします。

image.png

コマンド
sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.2 http://RancherServer外部IP:8080/v1/scripts/F9EECE5AE8FBF581E48F:1483142400000:Bzx0M3N05gizRN4WkiJPSKtUp0

2.上部メニュー「インフラストラクチャー」から「ホスト」を選択します。

image.png

3.Rancher ServerとRancher Agentが連携し、約5分以内にMesos環境が構築されます。

image.png

4.上部メニュー「MESOS」-「概要」を選択します。

image.png

5.「Mesos UI」をクリックします。

image.png

自動的にブラウザが起動し、Mesos UIを利用できます。

image.png

Marathonのデプロイ

Rancherのカタログ機能を利用して、Marathonをデプロイします。

1.上部メニュー「カタログ」-「コミュニティ」を選択します。

image.png

2.Marathonの「詳細を見る」をクリックします。

image.png

3.「起動」をクリックします。

image.png

4.上部メニュー「インフラストラクチャー」から「ホスト」を選択します。

image.png

HOST4にデプロイされたことが確認できます。
※デプロイホストはRancherにより自動的に決まります。

image.png

http://host4の外部IPアドレス:8080/ にブラウザでアクセスすることでMarathon UIを利用できます。

screencapture-35-190-226-192-8080-ui-1497803266540.png

以下構成となります。

image.png

image.png

MarathonによるNginxのスケールアウト

1.Marathonのコンテナがあるホストの外部IPとポート8080にブラウザでアクセスし、「Create Application」をクリックします。

image.png

2.IDに任意名を入力(ここではnginxとします)し、「Docker Container」を選択します。

image.png

3.「Image」にnginxと入力して、「Create Application」をクリックします。

image.png

4.nginxのイメージがデプロイされて、Runningであることを確認し、nginxをクリックします。

image.png

5.「Scale Application」をクリックします。

image.png

6.スケールする数を入力し、「Scale Application」をクリックします。

image.png

7.nginxがスケールされたことを確認します。

image.png

6.Rancher UIからも確認できます。

image.png

以下構成となります。

image.png

Mesos Architecture of Rancher

ホスト3台に、MesosスタックにMesos Master,Mesos Slave,Zookeeperのコンテナがデプロイされて、4台目以降のホストにはMesosスタックにMesos Slaveがデプロイされますが、各ホストへの配置はRancherにより自動で行われます。

MarathonやCHRONOS等のカタログは、スタックとしてまとめられて、Rancherにより自動的にホストにデプロイされます。

スタンドアロンのコンテナは、基本的に独立型コンテナスタックにデプロイされます。
どのホストにデプロイされるかはRancherにより自動的に決まります。

テンプレート選択するだけで、Mesos環境が簡単に構築でき、カタログを利用すれば、MarathonやCHRONOS等のMesos FrameworkもデプロイできるのでDC/OSような環境がすぐに構築できます。

RancherではMesos同様にK8S環境も簡単に構築できるので、「Kubernetes on Google Cloud Platform by Rancher ~Install & ‎Architecture~」と合わせて、試してみましょう。

3
4
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
3
4