LoginSignup
6
2

More than 5 years have passed since last update.

Helion OpenStackの上にRancherでKubernetesクラスタを構築してみる(その2)

Last updated at Posted at 2016-11-25

その1の続きです。
前回書き忘れましたが、5台のノードのうち3台にはFloating IPを振ってあります。

hostname IP Floating IP
rancher-k8s-1 10.0.0.25 FIP1 Rancher Server
rancher-k8s-2 10.0.0.26 FIP2 LBを動かしたい
rancher-k8s-3 10.0.0.27 FIP3 LBを動かしたい
rancher-k8s-4 10.0.0.28
rancher-k8s-5 10.0.0.29

3 サンプルアプリケーションを動かしてみる

3.1 とりあえずカタログからデプロイしてみる

[CATALOG]メニューから、"K8s Example Guestbook"をデプロイしてみます。

5.PNG

フロントがPHP、後ろでredisが動くスタックになっているようです。せっかく5ノードあるので、フロントのレプリカ数を5個にしてみます。

6.PNG

[Launch]を押すと上がってきます。メニューの[KUBERNETES]-[Service]を見ると、

7.PNG

こうなっていて、

  • "frontend"というLoadBalancerタイプのサービスがひとつ
    • Podが5つ(各ノードに分散配置されてますね)
      • 各Podにはコンテナがひとつ

あとバックエンドのサービスとして

8.PNG

redisのMasterとSlaveが動いています。

3.2 LoadBalancerの確認

[KUBERNETES]-[System]で"kubernetes-loadbalancers"を見るとこうなってます。Rancherが作るこのLoadBalancerタイプのサービスは、要するにhaproxyのコンテナです。

9.PNG

わかりやすいですね。でも残念ながらこの10.0.0.28というIPアドレスを持つノード(rancher-k8s-4)はFloating IPを持っていないので、外からはこのサービスにアクセスできません。
なので別途LoadBalancerサービスを作ってみます。

3.3 Hostにラベルをつける

LoadBalancerサービスを作っても、スケジューラがそのコンテナを外部ネットワークに繋がっていない(Floating IPを持っていない)Hostで動かしてしまうと意味がありません。なのでFloating IPを持つHostにlabelをつけて、スケジューリングの条件とします。
[INFRASTRUCTURE]-[Hosts]で、Floating IPを持つHostの[Edit]から

11.PNG

こんな感じで適当にラベルをつけます。

12.PNG

3.4 LoadBalancerサービスをつくる

もちろんまじめにトラフィックの負荷分散を考えると、ハードウェアのロードバランサーを使うとか、それをNeutronのLBaaSに組み込むとか、いろいろ設計が必要になるわけですが、ここでは単純に「2つのFloating IPに入ってくるアクセスをhaproxyで5つのHost上のポートに振り分ける」ということを行います。
[KUBERNETES]-[System]のkubernetes-loadbalancersのところにAdd Load Balancerというメニューがあるので・・・

10.PNG

こんな感じで作ります。GuestBookのフロントのWebはポート31481をListenしてます。2つのHostで動かしたいのでスケールを2とします。

15.PNG

先ほどつけたHost Labelをスケジューリングルールに設定します。

14.PNG

で[Create]を押すと

image

できた。ちゃんとラベルをつけたHostで動いてますね。もともとあったほうは消してしまおう。
で、10.0.0.26 および 10.0.0.27 に対応するFloating IPにブラウザからアクセスしてみると

image

めでたしめでたし。

まだ続くぞよ。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2