1セッションの通信は1つのホストで処理
ロードバランサーあるあるな話で、アプリケーションの特性上一貫したセッションの中では同一サーバで処理しないといけないというケース。私の場合、それは何かと言うと、まさにこのブログに対する投稿処理、アプリ更新処理です。
ただ、Kubernetesとしてどうしたらいいのか?というと、ちゃんとServiceリソースに対してもセッションアフィニティの設定があることがわかった。
セッションアフィニティの設定を追加する
というわけで、設定を追加した。
apiVersion: v1
kind: Service
metadata:
name: www1-blog-svc
spec:
type: NodePort
ports:
- nodePort: 32455
port: 8443
protocol: TCP
targetPort: 8443
sessionAffinity: ClientIP
sessionAffinityConfig:
clientIP:
timeoutSeconds: 3600
selector:
app: www-blog
「sessionAffinity」の箇所が該当していて、この設定だとクライアントアドレスでセッションを一貫させるようだ。その期間は3600秒ということで1時間セッションの一貫性を保持してくれるみたいだ。
細かい検証はやってないのだけど、別途リファレンスを参照しながら抑えていきたいなと思っている。
Comments are closed