既存WEBサービスをコンテナ化しKubernetes
で動作させたく調べておりますが
ユーザログイン状態を保持したままで、負荷分散させる際にセッション維持をどの様に実現するのでしょか?
リフト&シフトしたく、まだ全然マイクロサービス化出来ていないモノリシックなサービスです。
その観点で、どのpodにトラフィックルーティングされてもセッション維持を実現したいと考えてます。
その場合の実装としてベストプラクティスが知りたく投稿しました。
- どのpodに誘導されても維持出来る様に、pod間で共有ストレージにセッションを保持する?
- スティッキーセッションで同じユーザは同じpodにルーティングされる?
~~もう一点、負荷分散された各WEBコンテナのhttpログを時系列でマージして一括管理したい場合はどの様な実装になりますでしょか?
~~
宜しくお願いします。
追記
現行システムはLAMPスタック構成で、CookieにセッションIDを保存してセッションを管理しております。(ごくごく一般的な実装)
kubernetesの負荷分散は何を使用されていますか?
現行のモノリシックアプリは誰がどのようにステートを維持されていますか?
現行でも多様な選択肢があるように、k8sにも選択肢があります。
ベストプラクティスと呼べるかは定かではありませんが、コンテナはステートレス化を推奨しています。
また、追加の質問は別の質問として起票をお願いします。
アプリケーション固有の事情があるので、どういう設計になるか?というのは結構変わると思いますよ。
ましてや、モノリシックなもの(レガシーシステム?)となると・・・
ログは kubectl logs で結構いい具合に取れた気はするけど stern 使うのが楽だったような
https://qiita.com/zaki-lknr/items/189bae27d2f5320cdfd2
yurakさん、コメント有難う御座います。
現行ステート管理に関しては追記致しました。
なるほど、ステートレス推奨なのですか・・
マイクロサービス化が前提での発想なのですね。
>追加の質問は別の質問として起票をお願いします。
失礼しました。
今回前段の質問とさせて頂きます。
yoorwmさん、コメント有難う御座います。
そうですね、通常のLAMPスタックを一旦まるっとコンテナオーケストレーションで水平スケールが出来るものも思っておりました。
クラウドネーティブな思考で頭切り替えてアーキテクチャー設計をしないと付け焼き刃では苦労しそうです..