openstack上に一からrancherクラスタを構築してみる。

概要

openstack環境を構築し、その上にrancherクラスタを作成した。

openstackのインストール手順は別途記録するとして、今回はrancherクラスタを作成するまでの手順を忘れないようにメモ。

目標

今回はrancher-serverとrancher-agent(2台)の併せて3台の構成。osはcoreosを使用。 構成とIPアドレスは以下のとおり。rancherサーバにはfloating ip を割り振る。

host名 private -ip Floating IP
rancher-server 192.168.1.9 192.168.11.110
rancher-node1 192.168.1.12
rancher-node2 192.168.1.5

準備

coreosのイメージ作成

coreosのopenstack用imageを取得。

$ wget https://stable.release.core-os.net/amd64-usr/current/coreos_production_openstack_image.img.bz2
$ bunzip2 coreos_production_openstack_image.img.bz2  

取得したimageをopenstackのglanceへ追加しておく。

キーペアの作成

キーペアを作成する、作成したキーペア名は home-network-key にした。 作成したキーペアはダウンロード後配置しておく。今回は~/.ssh/pemfile以下に配置した。

セキュリティグループの作成

rancher用のセキュリティグループを作成する。

  • TCP:8080 (ダッシュボード用)
  • TCP:3306
  • UDP:500
  • UDP:4500

を追加。

rancher-serverの作成

rancher-server用インスタンスの作成

準備で作成したキーペア・セキュリティグループを指定。 coreosのimageからインスタンスを作成する。

この時に 設定 > コンフィグドライブ のチェックをつける。

これをやらないとsshのキーペアが読み込まれないらしい。

rancher-server立ち上げ

ログインユーザはcoreos

$ ssh -i ~/.ssh/pemfile/home-network-key.pem core@192.168.11.110

dockerのバージョンを確認しておく。

$ docker --version
Docker version 1.12.6, build a82d35e

rancher-server の起動

$ docker run -d --restart=always -p 8080:8080 rancher/server

数分したらプロセスが起動しているはず。

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
ebbadd860326        rancher/server      "/usr/bin/entry /usr/"   16 minutes ago      Up 16 minutes       3306/tcp, 0.0.0.0:8080->8080/tcp   loving_bhaskara

これでrancher-serverのインストールが完了。

http://192.168.11.110:8080/

へアクセスすればdashboardが開く。

dashboardは右下のプルダウンから日本語に変更できるので、英語ができない私は変更しておく。

rancher-agentの作成

インスタンスを作成しておく。

インスタンスを2つ作成。openstackだと本当に簡単

イメージはcoreosを使用。キーペア、セキュリティグループは別で作っても良かったが、今回はそのままrancher-serverと同じものを使用。

rancher の設定

rancher-serverのdashboardを開き インフラストラクチャ > ホスト > ホストの追加 と進む。

ホスト登録URLがhttp://192.168.11.110:8080になっているが、今回agentからはプライベートIPでアクセスするためhttp://192.168.1.9:8080へ変更する。

再度ホストの追加を選択し、⑤のコマンドをagent-nodeの各インスタンスで実行する。

あとは待っていればdashboardにノードが追加される。

最後に

openstackとcoreosを使用すると、とても簡単にrancherのクラスタを構築できた。

もっと良いやり方や、変えたほうが良い箇所があれば、ぜひ教えてください。