openstack上のrancherでサービスを提供してみる。
概要
前回作成した、rancherクラスタは内部のネットワークに各インスタンスを配置しているため、外部へサービスの提供ができていない。
今回は新規にfloating IPを割り当てたアクセス用のホストを新規に追加し、外部からアクセスができるような構成を作成する。
目標
wordpress(なんでも良かった)を内部のhostに作成し、外部からアクセスできるようにする。
構成
今回の予定している構成は以下のとおり。
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 | ||
rancher-proxy | 192.168.1.8 | 192.168.11.130 | 今回新規に追加 |
rancher-proxy ノードの作成
proxyインスタンスの作成
openstackでcoreosインスタンスを作成し,キーペア、セキュリティグループ、を設定する。 作成が完了したらfloating ip を割り振っておく。
rancherへhostの追加。
rancher-nodeと同様にhostの追加を実施する。 この時 インフラストラクチャ > ホストの追加 > 3.ラベルの追加 で、わかりやすい名前と値をつけておく。
今回は
- キー:external
- 値:true
とした。
あとは、rancher-proxyノードでdocker run コマンドを実行。
rancherのホスト画面に追加されれば完了。
サービスの作成
rancher-proxyノードが作成できたらカタログからwordpressを選択し追加する。
wordpressがスタックに追加され、稼働するのを待つ。
稼働が完了したあと、どのホストで動いているのかを確認する。(今回はrancher-node01 で動いていた。) rancher-node01で稼働していても、外部からのアクセスができないため、ロードバランサーを追加する。
スタック > wordpress > ロードバランサーを追加 より
名前 wp-lb (適当)
ポートルール
外部に公開するポートを指定し(今回は80)、対象をwordpress、 ポート 80 へ設定。
スケジューリングタブで、先ほど設定したスケジューリングのラベルを指定する。
- キー:external
- 値:true
稼働確認
スタック > wordpress にwp-lb が追加され、rancher-proxyで稼働していることを確認する。
http://192.168.11.130/ へアクセスし、wordpressのtop画面が開くことを確認できた。
あとは元からあるwordpress-lbを削除してしまえばきれいになる。※最初からこっちのスケジューリング変えるだけでも良かった。