Tech Sketch Bucket of Technical Chips by TIS Inc.

RancherOS上でRancherのクラスタを構成してみた

Pocket

昨今、Dockerのエンタープライズ基盤への利用が拡大しつつある。それに対応すべく、DockerをPaaSとして運用する為の製品が多数、開発、提供されており、注目度も非常に高くなっている。
ITmedia社 @IT上で『実際に検証済み!OSS徹底比較』を連載させて頂いているが、その記事としてDokcer PaaS製品の比較検証の記事を執筆した。
その記事執筆にあたり、対象として選定した「Rancher」の評価を行うため、実際にインストールを行った手順を記事としてまとめてみた。評価は2016年9月時点での最新のStable版を使用して評価を行っている。

インストールの為に以下のサイトを参考にさせて頂いている。
Github rancheros readme.md
Github rancher readme.md
【Docker】RancherOSで本格的な自宅サーバーを構築しよう(1) ~ 要件と構成 ~


検証に使用した環境は以下となる。※画像をクリックすると拡大表示

サーバにRancherOSをインストールし、RancherOS上のDocker環境でRancher/serverとRancher/agentを起動してクラスタを構成する。
オールインワンの1台でも動作させることはできるが、オーバーレイネットワークの検証のため、server+agentとagentのみをインストールした2台で環境を構築する。


RancherOSのインストール (server/agent共通)

※IPアドレス、ホスト名は必要に応じて変更する。

1.RancherOSのisoイメージファイルの入手
Github rancherOS releases から最新stable版のisoイメージをダウンロードする。
物理サーバにインストールする場合は、光学メディアや起動可能USBメモリなどにコピーして起動可能な状態にする。

2.RancerOSのインストールメディアからの起動
isoイメージからRancherOSを起動する。物理サーバへのインストールは起動したRancherOS上から "ros" コマンドを使用してインターネット上からOSイメージをダウンロードする形で実施する。
RancherOSが起動したら、user/pass = rancher/rancher でログインする。sudo権限は付与されており、パスワード入力は不要に設定されている。

3.ネットワークインターフェース名を取得
ipアドレスを設定する為にネットワークインターフェース名を取得する。 ※画像をクリックすると拡大表示

4.ipアドレス、デフォルトゲートウェイを設定
DHCPが存在する環境では以下の設定は不要であり、ifconfigで付与されたIPを確認する。
$ sudo ifconfig eth0 10.255.202.91 netmask 255.255.255.0
$ sudo route add default gw 10.255.202.254

5.DNSを設定する
標準設定ではGoogle PublicDNS (8.8.8.8/8.8.4.4)が設定されている。インストールに必須ではないが、今回の検証環境では、検証環境内にDNSサーバを準備している為、変更を行う。
$ sudo vi /etc/resolv.conf

6.github.comへの通信確認
RancherOSのイメージの取得を行う、githubに対して通信が可能かを確認する。 ※画像をクリックすると拡大表示

7.インストール用のyamlファイルを作成
$ vi cloud-config.yml

ssh-rsa以下はRancerOSに対してのSSH接続時のauthorized_keysとして使用される。OpenSSLなどでPRIVATE KEYを作成しておくが必須となる。

8.RancherOSのインストール
以下のコマンドでハードディスク上にRancherOSをインストールする。インストール先のHDDはfdiskコマンド等で事前に確認しておく。
最初にインストールするRancherOSのバージョン確認、インストール終了後に再起動を確認されるが、基本全て "y"で問題ない。
sudo ros install -c cloud-config.yml -d /dev/sda


Docker registoryインストール (server/agent共通)

Docker registoryを使用しない場合は不要であるため、スキップしてよい。

1.Rancher serverにssh接続
準備したPRIVATE KEYでRancher server用のOSにSSHで接続する。
ssh 10.255.202.91 -l rancher -i rancher.pem

2.Docker registryを使用する為のinsecure-registryの情報を設定
Dockerのオプションは "ros config set" コマンドで設定する。設定後にDockerのサービスを再起動することで反映される。
sudo ros config set rancher.docker.args "['daemon','--insecure-registry','10.255.202.0/24']"
sudo ros service restart docker

設定は以下のファイルに反映される。
sudo cat /var/lib/rancher/conf/cloud-config.yml

3.Docker registryを起動 Docker registryを保持するサーバで実施する。基本的にいずれか1台(今回はserver側)で実施する。
sudo docker run -d --restart=always -p 5000:5000 registry:latest


Rancher serverインストール (server側のみ)

1.Rancher serverにssh接続
準備したPRIVATE KEYでRancher server用のOSにSSHで接続する。
ssh 10.255.202.91 -l rancher -i rancher.pem

2.Rancher serverのコンテナを起動
sudo docker run -d --restart=always -p 8080:8080 rancher/server

3.Rancherのダッシュボードに接続
ブラウザでRacher serverの8080ポートに接続する。接続は http://[IPアドレス]:8080 を使用する。<BR> https でも接続できるが、agentによるHostsの追加にサーバ証明書が必要となるためお勧めしない。
画面が表示されたら Add Host をクリックする。
※画像をクリックすると拡大表示

4.Rancher serverのホストを追加
Add Hostの画面で、Rancer serverのURLを登録する。下図のようにhttpsでブラウザ接続してしまった場合は、Sonething else:を選択し、http://[IPアドレス]:8080を指定する。
※画像をクリックすると拡大表示

5.Rancher agentのホストを追加
Add Hostの次の画面でCustomをクリックする。
※画像をクリックすると拡大表示

6.Rancher agent追加用のコンテナ起動コマンドを取得
画面の下の項番5.にRancher agent起動用のdockerコマンドが表示されるので、コピーして保存後にCloseをクリックする。
※画像をクリックすると拡大表示

7.Rancher agentの起動
Rancher serverのSSH接続画面に戻り、先ほど取得したRancher agent起動用のdockerコマンドを実行する。
※画像をクリックすると拡大表示
sudo docker run -d --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.0.2 http://10.255.202.91:8080/v1/scripts/1F38F6DADEAB743E0EB5:1473930000000:Hsh2IGmYc38p3srqmhmm0g0jM

8.Rancher agentの登録確認
ブラウザ画面に戻り、右上の をクリックしてメニューを表示する。
メニューの INFRASTRUCTURE→Hosts をクリックすると、先ほどagentを実行した端末が追加されている。
※画像をクリックすると拡大表示


Docker registryの登録

Dokcer registryを使用しない場合は本作業は不要。

1.Registriesの登録画面を表示
メニュから INFRASTRUCTURE→Registries をクリックすると登録画面が表示される。
※画像をクリックすると拡大表示

2.Custumを選択
ローカルのDocker registryを使用する為、Custom をクリックする。
※画像をクリックすると拡大表示

3.Dokcer registryの登録
Dokcer registryのURLとメールアドレスを登録する。メールアドレスはダミーでも登録はできる。
※画像をクリックすると拡大表示

4.Dokcer registryの登録確認 Registriesの画面上でDocker registryが登録されていることが確認できる。
※画像をクリックすると拡大表示


Rancer Hostの追加 (agent側のみ)

Rancher Host(agent端末)の追加は以下の手順で行う。この作業はRancher Host 1台登録の都度実施する。

1.Add Hostをクリックする。
メニュkから INFRASTRUCTURE→Hosts をクリックしてHosts画面を表示し、Add Hostをクリックする。
※画像をクリックすると拡大表示

2.Rancher agentのホストを追加
Add Hostの次の画面でCustomをクリックする。
※画像をクリックすると拡大表示

3.Rancher agent追加用のコンテナ起動コマンドを取得
画面の下の項番5.にRancher agent起動用のdockerコマンドが表示されるので、コピーして保存後にCloseをクリックする。
※画像をクリックすると拡大表示

4.Rancher agentにssh接続
準備したPRIVATE KEYでRancher agent用のOSにSSHで接続する。
ssh 10.255.202.92 -l rancher -i rancher.pem

5.Rancher agentの起動
Rancher serverのSSH接続画面に戻り、先ほど取得したRancher agent起動用のdockerコマンドを実行する。
sudo docker run -d --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.0.2 http://10.255.202.91:8080/v1/scripts/1F38F6DADEAB743E0EB5:1473930000000:CE486NeLAXKwOglChwF6Mc9Ou8

6.Rancher agentの登録確認
ブラウザ画面に戻り、右上の をクリックしてメニューを表示する。
メニューの INFRASTRUCTURE→Hosts をクリックすると、先ほどagentを実行した端末が追加されている。
※画像をクリックすると拡大表示


WordPressの起動

1.WordPressのPodを選択 メニューのCatalogを選択し、WordPressのStackを選択する。
※画像をクリックすると拡大表示

2.WordPressのStackを起動
New Stackの画面でNameにユニークな名称を入力し、Launchをクリックする。
※画像をクリックすると拡大表示



3.WordPressのコンテナの起動を確認
しばらく待つと、WordPressのAP用コンテナとDB用コンテナが起動される。
※画像をクリックすると拡大表示

以上で基本的な構築作業と動作確認は完了となる。


エンジニア採用中!私たちと一緒に働いてみませんか?