• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
PowerCoder
博客园    首页    新随笔    联系   管理    订阅  订阅

k8s: 配置ingress的会话亲和(转载)

Ingress会话亲和,又称会话保持,粘性会话,指同一客户端的请求在一定时间内会被ingress路由到相同的pod处理. 本文控制器使用的是ingress-nginx

 

  • ingress默认的负载均衡策略是轮询, 验证如下
    1. 使用浏览器连续访问9次ingress
    2. 查看ingress日志, 可看到9次请求被轮询负载到不同pod处理

 

  • 配置会话亲和
    1. 修改ingress, 增加如下内容
      nginx.ingress.kubernetes.io/affinity: cookie # 实现会话亲和的方式,目前只支持cookie
      nginx.ingress.kubernetes.io/affinity-mode: persistent  # 默认是balanced平衡的,伸缩应用时会重新分配一些session, 以确保每个pod处理的会话数均衡;persistent持续的, 保持最大限度的会话亲和
      nginx.ingress.kubernetes.io/session-cookie-hash: sha1  # 
      nginx.ingress.kubernetes.io/session-cookie-name: awesome-java  # 自定义cookie名字, 默认为INGRESSCOOKIE

    2. 使用浏览器连续访问9次ingress

    3. 查看ingress日志, 可看到9次请求被负载到同一个pod处理
    4. 使用curl -i访问可看到awesome-java的cookie

 

  • 其他如cookie的有效时间等设置, 可参考ingress-nginx官方文档: Sticky sessions

 

原文链接

 

posted @ 2024-11-18 15:37  PowerCoder  阅读(240)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3