[kuberenetes] セッションアフィニティを構成する

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時間セッションの一貫性を保持してくれるみたいだ。

細かい検証はやってないのだけど、別途リファレンスを参照しながら抑えていきたいなと思っている。

PAGE TOP