注意
ここで紹介するものは、Rancherのバージョンが1の時のお話です。
今は、アップデートを重ねてバージョンが2となっているため、バージョンの2以降を使いたい場合はこの方法ではうまくいきません。
概要
Rancherをインストールする機会があったので、どのようにしてRancherをサーバにインストールしたのか紹介します。
環境
- Ubuntu 16.04
- Rancher 1.6
Rancher とは
Rancherとは、Dockerコンテナのオーケストラレーションをするためのソフトウェアです。
オーケストラレーションをするためのツールとしては、KubernetesやDocker Swarmが有名ですが、Rancherではそれらの構築を楽にしたり、独自のCattleというオーケストラレーションツールを使うことができます。
Rancherのデフォルトでは、Cattleというオーケストラレーションツールを使いますが、新たに何かをインストールすることもなく、KubernetesやDocker Swarmなどのオーケストラレーションツールを使うことができるので、非常に汎用性が高く、Kubernetesなどの環境を複数管理することもできます。
複数の環境を管理したり、簡単にオーケストラレーションの環境を構築できるので、オーケストラレーションを使い始めるにはもってこいだと思います。
インストール
古い情報として、RancherのイメージとしてISOが配布されていたときもありましたが、最新のRancherは、Dockerのイメージが配布されており、それを元にDockerのコンテナを実行することで、Rancherの環境を作ります。
そのため、まずDockerの環境をインストールしましょう。
私はUbuntuを使って作ったので、次のコマンドでDockerのインストールをします。CentOSなどの場合は別のコマンドでインストールします。
sudo apt-get install docker.io
Dockerのインストールが終わったら、次のコマンドで、DockerでRancherのイメージを元にコンテナを作ります。
sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable
コンテナの起動後、5分程度アクセスできるようになるまで待ち、サーバの8080番ポートにブラウザ等でアクセスしましょう。
これで、RanchrOSのインストールは終わりです。
永続化
実は、このままだとアップデートをしたいときなど、コンテナを作り直したときに設定したデータが無くなります。
デフォルトでRancherでは、設定したデータなどはコンテナ内のMySQLに保存されています。そのため、コンテナを削除するとその保存されたデータも一緒に削除されてしまいます。
そこで、MySQLのデータをホストマシンに保存する方法とMySQLサーバを別に用意してそこにアクセスする方法のどちらかを実行して、データを削除されないようにしましょう。
ここから先は、すでにRancherのコンテナを構築していた場合には削除しておいてください。
ホストマシンに保存
一番簡単なのは、ホストマシンにMySQLの情報を保存する方法です。
例えば、/opt/mysql
という場所にデータを保存する場合は次のようにしてコンテナを作ります。
sudo docker run -d -v /opt/mysql:/var/lib/mysql --restart=unless-stopped -p 8080:8080 rancher/server
-v /opt/mysql:/var/lib/mysql
のようにします。
外部のMySQLに接続
直接ホストマシンに保存する方法は簡単でいいのですが、もしRancherを複数動かして冗長性をもたせたい場合には、複数のコンテナが同じデータベースを参照できるようにする必要があります。
その場合には、外部にMySQLサーバを用意してそこにアクセスさせましょう。
sudo docker run -d --restart=unless-stopped -p 8080:8080 \
-e CATTLE_DB_CATTLE_MYSQL_HOST=examole.com \
-e CATTLE_DB_CATTLE_MYSQL_PORT=3306 \
-e CATTLE_DB_CATTLE_MYSQL_NAME=rancher \
-e CATTLE_DB_CATTLE_USERNAME=rancher \
-e CATTLE_DB_CATTLE_PASSWORD=rancher \
rancher/server
ここでは、example.comというドメインでアクセスすることができるサーバにMySQLがインストールされ、データベースの名前がrancher、ユーザ名がrancher、パスワードがrancherの場合の例です。
実際の環境では、適切な値で置き換えてください。
さいごに
現在使っていますが、かなり使いやすいです。
後で、インストール後の使い方についても書きたいと思います。