3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OpenShift のRouter機能を最大限活用する

Posted at

OpenShiftとは?

コンテナを運用する基盤、KubernetesをEnterprise向けに拡張したものですね。

Routerとは?

OpenShift は Kubernetes のデフォルトの機能に加えて簡単に外部公開する仕組みが整っています。この仕組みをRouterと呼び、yamlで設定を書くことで簡単にアプリケーションを公開できるようになっています。

Routerの実装はha-proxyがベースになっており、コンテナ内部にあるhaproxy-config.templateからhaproxy.configを自動生成する仕組みになっています。

StickySessionの実現

OpenShiftのRouterはデフォルトでStickySessionがONになっています。
ha-proxyの設定で「cookie」という項目がありますが、これがランダムな名前で設定されます。
これをコントロールするには各アプリのRouterの設定yamlにannotationを設定します。
例えばStickySessionに使用するCookieの名称をランダムではなく、固定にしたい場合は~~~/cookie_nameというannotationを設定します。※cookie_nameの前の名称は忘れました。後で追記しときます。

Routerデフォルト動作の変更

Routerはdefaultプロジェクトに作成されている「Router」アプリケーションが実態です。このRouterのPodが起動しているNodeにDNS-RoundRobinで均等に割り振ることで動作しますが、RouterのDeploymentConfigに環境変数を設定することでデフォルト動作を変更することができます。
例えば、StickySessionを使用したくない場合は無効化する環境変数がありますのでこれを設定します。

まとめ

Router機能、仕組をしっかり理解して使いこなすにはha-proxyやDNS等の知識が欲しいところですが、理解できれば非常に便利です。
インフラを高度に抽象化して操作を簡単にした良い仕組と言えると思います。
現在OpenShiftの検証環境を運用しておりますが、今のところ一切Router起因の障害は経験しておらず、安定性も◎かと思います。

補足

適当に20分ほどで思い付きで書いた記事なので後で絵いれたりしれっと改変するかもしれません。

3
3
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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?