Dockerコンテナ管理ソフトRancherをVPSにインストールする

rancher-logo

http://rancher.com/

 

 

Rancherとは

Dockerを使ってコンテナを利用する際に“より簡単に”コンテナイメージの管理やコンテナのオーケストレーション機能を使いたいという要望に応えるコンテナ管理ソフトウェアです。アメリカのRancher Labs,Inc.が開発し、OSSとして利用可能です。有償でサポートを受けることも出来ます。

 

Rancher

2016年にVer.1.Xがリリースされました。このブログを書いた2017年5月時点では、Release v1.5.10が最新でした。現在はもっと新しいのが出ていると思います。

https://github.com/rancher/rancher/releases/tag/v1.5.10

 

 

Dockerバージョンの確認

Dockerバージョンの確認

 

1ヵ月に一度はバージョンアップしますので、最新版を利用する際は必ずサポートされるDockerバージョンを確認しましょう。

 

上記画面内容から次のことがわかります。

Rancher v1.5.10がサポートしているDockerバージョンは以下となります。

 

Supported Docker Versions
Docker 1.10.3
Docker 1.12.3-1.12.6
Docker 1.13.1 (Kubernetesを使う場合サポート対象外)
Docker 17.03.0-ce (Kubernetesを使う場合サポート対象外)

※Rancher1.5系になってDockerの対応バージョンが上がりました。

 

上記表のようにDocker1.10.X以降である必要があります。

またKubernetesを使う場合はDockerのバージョンを上げるとサポート対象外になるので注意が必要です。ですので、今はDocker 1.12.3-1.12.6あたりを使うのが丁度良いように思います。

 

 

■Rancherインストール手順

0.今回は次のような構成でRancher環境を作ります。

・Rancher管理サーバー1台 Rancherの管理機能、GUI,APIのエンドポイントが入ります。

・Rancherホスト2台 コンテナを収容します。オーケストレーションソフトを使って故障時にフェイルオーバーさせるには2台以上が必要です。

・各サーバーは仮想サーバー、ベアメタル何でも良いですし、複数のクラウド(AWS、Azure、ECL2.0など)や、社内サーバーを跨る構成でもIP的に繋がればOKです。但し、ホスト間の接続についてレイテンシーが大きい場合は除きます。

インストール 構成

インストール 構成

 

1.サーバーへのDockerインストール

ここでは各サーバー(Rancher管理サーバー、ホスト1,ホスト2)共通となるDocker環境をインストールします。

今回は、VPS(弊社、VPSクラウド)を利用し、メモリ6GB・SSD・CentOS7のモデルでサーバーを作ります。

 

①サーバーのOS確認

DockerはLinuxカーネル3.10以降しか動かないので、CentOS系であれば7.X以上にして下さい。UbuntuもLinuxカーネルの条件は同様です。(CentOS 6.XではRancherは動かないので注意して下さい。)

 

②Docker-engineのインストール

次のコマンドをrootまたは同等の優先権限で実施します。

・リポジトリ設定

sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'

[dockerrepo]

name=Docker Repository

baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/

enabled=1

gpgcheck=1

gpgkey=https://yum.dockerproject.org/gpg

EOF

 

・Docker1.12.6をインストール

RancherのサポートするDockerバージョンをインストールしましょう。

「sudo yum install docker-engine」コマンドだけでインストールすると最新版が入ってしまい、RancherやKubernetesが正常に動かない状況になります。(私ははまりました)

ここではDocker1.12.6指定でインストールを実施します。

sudo yum -y install docker-engine-1.12.6-1.el7.centos

 

・起動、自動起動設定

systemctl start  docker.service

systemctl enable docker.service

 

・バージョンチェック

インストールしたバージョンを必ず確認しましょう。

Docker version

 

Rancher管理サーバー、ホストサーバー各々で同様の処理が必要となりますので、一台作業が完了したら、クラウドやVPSのVMイメージをバックアップし、クローンする機能を使ってはどうでしょうか。構築の手間を省くことが出来ます。

VPSクラウド VMイメージのバックアップ機能例

VPSクラウド VMイメージのバックアップ機能例

 

注意!インストール完了後、必ず実施!!

/etc/yum.repos.d/docker.repoファイルの自動更新設定をOFFにしましょう。

そうしないと、Dockerのバージョンが自動的に上がってしまい、Rancherのサポートバージョンから外れることがあります。その場合、Rancherの管理NWやオーケストレーション機能であるCattleやKubernetesが、正常に動かない状況になる場合があります。(私ははまりました)

※KubernetesがサポートされるDockerバージョンはCattleより限定されるので更に注意が必要です。自動UpdateをONにするとDockerのバージョンが上がり過ぎてサポート対象外(要はフェールオーバーなどのKubernetesの各種機能が正常に動作しなくなることが多い)になってしまいます。

vi /etc/yum.repos.d/docker.repo 

enabled=0

 

2.Rancher管理サーバーの構築

DockerのがインストールされたサーバーにRancher管理サーバーとなるコンテナをインストールします。その前に次のコマンドを実行し、FWの穴あけを行っておきましょう。

UDPポート 500番、4500番 Rancherホストとの通信用
TCPポート 8080番 管理サーバーのGUI(Web)用

 

次の、ファイヤウォールコマンドを実行

firewall-cmd --add-port=500/udp --permanent
firewall-cmd --add-port=4500/udp --permanent
firewall-cmd --add-port=8080/tcp --permanent

 

・Rancher管理サーバーのコンテナをインストール

sudo docker run -d -p 8080:8080 rancher/server:stable

 

・DockerコマンドでDocker ps –aでコンテナの状況を確認、以下は正常に動作している状況(Status欄に注目、Upになっていればコンテナとして正常に動作中)

 

Dockerコマンド

Dockerコマンド

 

作業が正しく完了したか確認する為に、Rancher管理サーバーへアクセスします。

管理サーバーURL↓

http://(管理サーバーのIP):8080

ログインの為の認証は様々な方式がありますが、今回はgithubを利用します。

(画面コピー入れる)

 

 

3.Rancherホストの追加

・管理サーバーをインストールしたIPアドレス:管理サーバーIP

・http://(管理サーバーのIP):8080へブラウザからアクセスします。

 

今回、認証方式はGitHubを選択しました。GitHubアカウントで認証します。

 

次のような画面が表示されます。

最初のスタックを追加するように求めています。

Rancher 管理サーバー

Rancher 管理サーバー

 

注意!接続した後、画面がうまく動かない場合は、通信経路にある機器がWebSocketに対応しているか確認しましょう!

※画面右下でGUIで使用する言語を選択出来ます。日本語版はRancher.jpの有志により開発されています。

 

・enviroment(環境)の登録

Rancherホストを登録する前にRancherホストをグルーピングするenviroment(環境)を登録する必要があります。enviroment(環境)はコンテナを使うシステム単位やユーザ(利用者グループ)単位、開発や検証といった目的ごとに定義出来ます。

一般的には商用、検証、開発などで分けると使いやすいと思います。

 

管理サーバー 環境の追加

管理サーバー 環境の追加

オーケストレーション/スケジューラを選択します。

デフォルトはRancher社で開発しているCattleになります。

 

管理サーバー 環境の追加

 

オーケストレーション&スケジュール 開発元 特長
Cattle  Rancher社が開発  ・シンプルで簡単
Kubernetes  Google社が開発  ・コンテナのオーケストレーションとスケジュールで実績多数

・高速なフェールオーバー

Mesos  Apacheファウンデーションが開発 ・Apache系の対応ソフトが多い
Swarm  Docker社が開発 ・Dockerとの相性が良い(らしい)

 

・Rancherホストを登録する

インフラストラクチャ→ホスト

Rancherホストを登録する

 

主要なクラウドはマシンドライバーが準備されています。

それ以外も独自にマシンドライバーを開発することが出来ます。

参考:Rancherマシンドライバー採用されました!(まだ資料がUPされていないようです)

 

今回はホスト追加でカスタム(Custom)を選択

Rancherホストを登録する

ホストのIPアドレスを入力し、コマンドをコピーしてホストで実行する

Rancherホストを登録する

 

ホストサーバーが以下のような形で追加される。

Rancherホストを登録する

今回は2台ホストを設定しました。

 

ここまでで、Rancherによってコンテナ管理する為の最小構成が出来ました。

 

次回はスタックの作成とホスト故障時のフェールオーバーについて掲載予定です。

 

 

 

とみなが
サービスクリエーション本部所属

オススメ記事

関連サービス

VPS VPSクラウド