Rancherのインストール

目次

注意

ここで紹介するものは、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の場合の例です。

実際の環境では、適切な値で置き換えてください。

さいごに

現在使っていますが、かなり使いやすいです。

後で、インストール後の使い方についても書きたいと思います。