RancherでDockerクラスタを構築する-② VultrにRancher Server を立ち上げる


Vultrのサーバを起動し、Rancher ServerをDockerで立ち上げます。次にGitHubによるアクセス制限を行います。

Rancher Serverで何をするのか

Dockerは複数のコンテナの連携を行って初めてサーバアプリケーションとして機能します。その際、

  • どのホストにどのコンテナをupするのか
  • コンテナ間の連携(link)をどうするか
  • ホストをまたがる連携(link)
  • ロードバランサはどうするか
  • Webサーバのクラスタ構成をどうするか

などの問題がいつもつきまといます。Rancher Serverでは、Dockerのホストを管理し、ホストをまたがる連携などを簡単に管理することが出来ます。

Vultrサーバの起動

vultrは今一番ノリに乗っているクラウドプロバイダ(当社調べ)です。メリットとしては

  • 東京リージョンがある
  • (比較的)安い
  • Server TypeにCore OSを選択できる

などでしょうか。逆にデメリットとしては、

  • 自動課金が出来ず、プリペイド方式でチャージしないといけない

ことです。きっちり使いたい場合は定期的にチャージする必要がある点が難点です。また、東京リージョンの人気が高かったのか、数日間売切れになったことが何回かありました。

インスタンスを起動

Vultrにログインし、

上記のように

  • Server Location: Tokyo
  • Server Type: CoreOS

を選択し、起動します。また、SSHキーログインにしておいた方が今後の作業が楽になります。今回はCoreOSにしましたが、他のOSでももちろん問題ありません(Rancher OSもあり、vultrでRancher OSを起動するようにScript Templateを書けば出来るらしいですが、そこまではやっていません)

しばらくすると、

Runningに変わります。

Rancher Serverのインストール

Installing Rancher Server (Single Node)を参考にRancher Serverをインストールします。

SSHで先程起動したサーバにログインし、

$ mkdir ~/data
$ docker run -d -v data:/var/lib/mysql --restart=always -p 8080:8080 rancher/server

とします。すべて完了するまで少し時間がかかります。
ここでVolumeを設定したのは、再起動後もMySQLのデータが消えないようにするためです。

ブラウザで http://[HOST]:8080/ にアクセスします。

このように表示されれば成功です。

アクセス制限を設定する

この時点ではアクセス制限が設定されていません。ということは、上記のURLで誰でもアクセス出来てしまいます。そこでアクセス制限を設定しましょう。

メニューから ADMIN > Access Controll を選択します。

Rancherでは、いろいろなアクセスコントロールが設定できますが、ここでは一番わかり易いgithubで設定してみます。

1. Setup a Github Applicationの下にあるclick hereをクリックします。githubにログイン済みであれば、新しくアプリケーションを登録する画面が開きます。

githubでRegister New Applicationをクリックします。

4つの項目は、Rancher画面上のRegister new application" and fill out the formを参考に入力していきます。入力が完了し、Register Applicationをクリックしてアプリケーションを登録します。

アプリケーションの登録が完了すると、アプリ固有のClient IDClient Secretが生成されますので、それをRancher側にコピペし、Authenticate with GitHubでGitHubによるアクセス制限が完了します。

以上で完了です。

ProductionではSSLにしたり、クラスタを構築したりする必要があるかと思いますが、詳しくはRancher Documentを参考にしてください。

次回予告

次回は、もうひとつvultrのサーバをたて、そこにRancherのスタックを構築して行きたいと思います。